【发布时间】:2023-03-12 14:20:01
【问题描述】:
我正在尝试在 sklearn 中做一个线性模型,因此我想测试我使用一些错误函数实现的模型。
首先,我为X 和y 轴选择了功能。
#Predict the average parking rates per month
X = df[['Number of weekly riders', 'Price per week',
'Population of city', 'Monthly income of riders']]
y = df['Average parking rates per month']
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
#only 20% test size because we are working with a small dataset
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=101)
lm = LinearRegression()
lm.fit(X_train, y_train)
在我拟合模型后,我尝试使用来自 sklearn 的 metrics 包中的一些错误函数
但显然我不能使用任何功能,因为没有等量的测试和训练数据
print('Mean Absolute Error:', metrics.mean_absolute_error(y_test, y_train))
print('Mean Squared Error:', metrics.mean_squared_error(y_test, y_train))
print('Root Mean Squared Error:', np.sqrt(metrics.mean_squared_error(y_test, y_train)))
ValueError: Found input variables with inconsistent numbers of samples: [6, 21]
为了运行误差函数,您需要相同大小的训练数据和测试数据,这是真的吗?
【问题讨论】:
-
你想用
metrics实现什么?如果你想测试模型的性能,你需要做mse(lm.predict(X_test), y_test),而不是在训练和测试标签之间。 -
@Chris 我怀疑重点是比较训练和测试的指标
标签: python machine-learning scikit-learn linear-regression