value线性回归中的误差预测:“ValueError:shapes(1,1)和(132,132)未对齐:1(dim 1)!= 132(dim 0)”

时间:2018-04-03 19:31:22

标签: python python-3.x machine-learning scikit-learn linear-regression

我是机器学习和线性回归的新手可以帮助我解决这个价值错误问题

“ValueError:形状(1,1)和(132,132)未对齐:1(暗淡1)!= 132(暗淡0)”

import matplotlib
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from sklearn.linear_model import LinearRegression

# Laod the data
load_csv = pd.read_csv("Gdp_Vs_Life_Dataset.csv")
gdp = np.c_[load_csv["GDP"]]
life = np.c_[load_csv["LIFE"]]

print (load_csv.shape)
print (gdp)
print (life)
print(gdp.size)
print(life.size)

# Visualize the data
plt.scatter(gdp,life)
plt.xlabel('GDP PER CAPITA')
plt.ylabel('LIFE SATISFACTION')
plt.title("Data year 2016")
plt.show()

# Select a linear model
model = LinearRegression()

#Train the model
model.fit(gdp.reshape(1, -1), life.reshape(1, -1))

# Make a prediction
X_ = [[5989]]
print(model.predict(X_))

当我运行此代码时出现错误:

追踪(最近一次通话):   文件“linear_reg.py”,第33行,in     打印(model.predict(X_))   文件“/usr/lib/python3/dist-packages/sklearn/linear_model/base.py”,第200行,预测     return self._decision_function(X)   _decision_function中的文件“/usr/lib/python3/dist-packages/sklearn/linear_model/base.py”,第185行     dense_output = True)+ self.intercept_   在safe_sparse_dot中输入文件“/usr/lib/python3/dist-packages/sklearn/utils/extmath.py”,第184行     return fast_dot(a,b) ValueError:形状(1,1)和(132,132)未对齐:1(暗淡1)!= 132(暗淡0)

2 个答案:

答案 0 :(得分:1)

您的要素尺寸输入X_应为132;现在,它是1(标量)。

答案 1 :(得分:0)

我也是,我遇到了同样的错误。

但是使用

reg.predict(np.array([[5989]]))

代替先分配

X_ = [[5989]]
print(model.predict(X_))

因此直接使用:

reg.predict(np.array([[5989]]))

问题已经解决。