获取形状未对齐错误 sklearn 。

Posted

技术标签:

【中文标题】获取形状未对齐错误 sklearn 。【英文标题】:Getting shape not aligned error sklearn . 【发布时间】:2018-08-09 16:22:30 【问题描述】:
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
Dataset = pd.read_csv('Salary_Data.csv')
Salary , YearsExperience = Dataset['Salary'] ,Dataset['YearsExperience'] 
X_train, X_test, y_train, y_test = train_test_split(YearsExperience , 
Salary, test_size=0.33, random_state=42)
Regressor = LinearRegression()
Regressor.fit(X_train.values.reshape(1,-1),y_train.values.reshape(1,-1))    
y_pred = Regressor.predict(X_test.values.reshape(1,-1))

所以我写了这段代码做一个线性回归。但是我在错误显示的 .predict 行上收到错误

ValueError: shapes (1,10) and (20,20) not aligned: 10 (dim 1) != 20 (dim 0)

但是当我将 test_size 保持为 0.5 时,不会发生错误。你能解释为什么会这样吗?我该怎么办 ?

【问题讨论】:

将变量的形状(即 Dataset.shape、X_train.shape 等)添加到您的问题中 【参考方案1】:

如果你根本不重塑你的数据,sklearn 会给你一个提示:

Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.

由于您的数据具有单一特征,因此您必须将其重塑为 (-1, 1) 而不是 (1, -1)

【讨论】:

以上是关于获取形状未对齐错误 sklearn 。的主要内容,如果未能解决你的问题,请参考以下文章

OLS回归python中的形状未对齐错误

在 SciKit 线性回归中获取“ValueError:形状未对齐”

线性回归预测中的值错误:“ValueError:形状(1,1)和(132,132)未对齐:1(dim 1)!= 132(dim 0)”

ValueError:形状(240000,28,28)和(2,512)未对齐:28(dim 2)!= 2(dim 0)

ValueError:形状(100,784)和(4,6836)未对齐:784(dim 1)!= 4(dim 0)

线性回归器无法预测一组值;错误:ValueError:形状(100,1)和(2,1)未对齐:1(dim 1)!= 2(dim 0)