python - 在 jupyter ntbk 中运行 reg.predict 时遇到问题说“ValueError”
问题描述
尝试在 python 中学习 sklearn。但是 jupyter ntbk 给出错误消息“ValueError: Expected 2D array, got scalar array instead: array=750. reshape your data or using array.reshape(-1, 1) if your data has a single feature or array.reshape( 1, -1) 如果它包含单个样本。" *但我已经使用 x.values.reshape(-1,1) 将 x 定义为二维数组
您可以在此处找到错误代码的 CSV 文件和屏幕截图 -> https://github.com/CaptainRD/CSV-for-StackOverflow
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
from sklearn.linear_model import LinearRegression
data = pd.read_csv('1.02. Multiple linear regression.csv')
data.head()
x = data[['SAT','Rand 1,2,3']]
y = data['GPA']
reg = LinearRegression()
reg.fit(x,y)r2 = reg.score(x,y)
n = x.shape[0]
p = x.shape[1]
adjusted_r2 = 1-(1-r2)*(n-1)/(n-p-1)
adjusted_r2
reg.predict(1750)
解决方案
正如您在代码中看到的,您的 x 有两个变量,SAT和Rand 1,2,3。这意味着,您需要为您的预测方法提供二维输入。例子:
reg.predict([[1750, 1]])
返回:
>>> array([1.88])
您正面临此错误,因为您没有提供第二个值(对于Rand 1,2,3变量)。请注意,如果此变量不重要,则应将其从 x 数据中删除。
推荐阅读
- c# - 如何更改此数组中的值?C#
- eclipse - xhtml 文件的 Eclipse Oxygen 3A 网页编辑器调色板内容
- php - PDO 全文搜索 - 即使字符串中的部分关键字在 db 列中也能获得结果
- java - 使用单独的线程更新全局 Hashmap 时出现 Nullpointer 异常
- ansible - 当串行参数多于一个时,Ansible 如何处理任务?
- variables - 如何限制捕食者“吃掉”的猎物数量并重新计算残留物?
- javascript - JSON中键中的@符号在访问时出错
- c# - 从数据库中将数据插入到组合框中
- sql - 带有 CASE 语句、多个变量和子变量的 SQL 查询
- mysql - 从 DATETIME 中选择每年每个月的最后插入值