ValueError: shapes (993,228) and (1,228) not aligned: 228 (dim 1) != 1 (dim 0)
ValueError: shapes (993,228) and (1,228) not aligned: 228 (dim 1) != 1 (dim 0)
我在 python 中创建了一个 OLS 线性回归模型,当我预测特定值时出现错误。
我的代码如下:
df=pd.read_csv("smatrix.csv",index_col=0)
import statsmodels.api as sm
x=df.iloc[:,:-1]
y=df.Rating
est = sm.OLS(y.astype(float), x.astype(float))
results=est.fit()
op=list()
for i in df.columns:
if 'bad' == i:
op.append(1)
else:
op.append(0)
op=op[:-1]
X5=np.array(op).reshape(1,-1)
y1=est.predict(X5)
我得到的错误是
ValueError: shapes (993,228) and (1,228) not aligned: 228 (dim 1) != 1 (dim 0)
X5的形状是(1, 228)
x 的形状是 (993, 228)
y的形状是(993,)
est.predict()
期望第一个参数为 params (more here),但您传递的是形状 1、128 的 X[5]。当模型尝试乘法时会抛出错误消息带参数的 X(在本例中为 X[5])。
X -> (993, 128)
params -> (1, 128)
这两个矩阵(X, params) 无法相乘,因为X(128) 的列与params(1) 的行不对齐。
解决方案
使用通过拟合方法学习的参数。
y1=est.predict(results.params, X5)
我在 python 中创建了一个 OLS 线性回归模型,当我预测特定值时出现错误。
我的代码如下:
df=pd.read_csv("smatrix.csv",index_col=0)
import statsmodels.api as sm
x=df.iloc[:,:-1]
y=df.Rating
est = sm.OLS(y.astype(float), x.astype(float))
results=est.fit()
op=list()
for i in df.columns:
if 'bad' == i:
op.append(1)
else:
op.append(0)
op=op[:-1]
X5=np.array(op).reshape(1,-1)
y1=est.predict(X5)
我得到的错误是
ValueError: shapes (993,228) and (1,228) not aligned: 228 (dim 1) != 1 (dim 0)
X5的形状是(1, 228)
x 的形状是 (993, 228)
y的形状是(993,)
est.predict()
期望第一个参数为 params (more here),但您传递的是形状 1、128 的 X[5]。当模型尝试乘法时会抛出错误消息带参数的 X(在本例中为 X[5])。
X -> (993, 128)
params -> (1, 128)
这两个矩阵(X, params) 无法相乘,因为X(128) 的列与params(1) 的行不对齐。
解决方案
使用通过拟合方法学习的参数。
y1=est.predict(results.params, X5)