![](/img/trans.png)
[英]ValueError: matmul: Input operand 1 has a mismatch in its core dimension 0, with gufunc signature (n?,k),(k,m?)->(n?,m?) (size 1 is different from 3)
[英]ValueError: matmul: Input operand 1 has a mismatch in its core dimension 0, with gufunc signature (n?,k),(k,m?)->(n?,m?) (size 13 is different from 1)
我正在使用 sklearn 通过线性回归解决波士顿房价问题。 途中出现了这样的错误:
ValueError: matmul: 输入操作数 1 在其核心维度 0 中存在不匹配,具有 gufunc 签名 (n?,k),(k,m?)->(n?,m?)(大小 13 与 1 不同)
代码:
import numpy as np
import pandas as pd
from sklearn.datasets import load_boston
from sklearn.linear_model import LinearRegression
X = boston.data
y = boston.data
dfX = pd.DataFrame(X, columns = boston.feature_names)
dfy = pd.DataFrame(y, columns = ["Price"] )
df = pd.concat([dfX,dfy],axis =1)
reg = LinearRegression()
reg.fit(X,y)
x_12 = np.array(dfX["LSTAT"]).reshape(-1,1) # 12th data in boston.data
y = np.array(dfy["Price"]).reshape(-1,1)
predict = reg.predict(x_12) > Error code
错误似乎是由于LinearRegression
的函数fit
用于load_boston
数据集的所有 13 个特征,但在使用predict
,您只使用 1 个特征( LSTAT
)。 这似乎会导致训练模型和predict
输入数据之间发生冲突。 您可能需要更新您的fit
函数,以便它只接受LSTAT
特征,这样在使用predict
时它只会期望一个特征作为输入数据
import numpy as np
import pandas as pd
from sklearn.datasets import load_boston
from sklearn.linear_model import LinearRegression
boston = load_boston()
X, y = load_boston(return_X_y=True)
# X will now have only data from "LSTAT" column
X = X[:, np.newaxis, boston.feature_names.tolist().index("LSTAT")]
dfX = pd.DataFrame(X, columns = ["LSTAT"] )
dfy = pd.DataFrame(y, columns = ["Price"] )
df = pd.concat([dfX,dfy],axis =1)
reg = LinearRegression()
reg.fit(X, y)
x_12 = np.array(dfX["LSTAT"]).reshape(-1, 1) # 12th data in boston.data
y = np.array(dfy["Price"]).reshape(-1, 1)
predict = reg.predict(x_12)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.