1 回答
TA贡献1835条经验 获得超7个赞
事情应该以这种方式完成:
1) 将 X 和 y 拆分为训练集和测试集。您可以使用train_test_split。您可以选择test_size(我以0.33为例)和random_state(这个有助于提高可重复性)。
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)
2) 使用X_train和y_train拟合模型(特此为线性回归)。你有一些特征生成方法(多项式方法),这很棒。将其与训练数据一起使用。
poly_features = PolynomialFeatures(degree=degree)
linreg = LinearRegression()
X_train_poly = poly_features.fit_transform(X_train)
linreg.fit(X_train_poly, y_train)
3) 通过查看拟合模型是否可以正确预测未见过的数据(X_test)来评估拟合模型。为此,您确实可以将mean_squared_error与 model.predict(X_test) 和 y_test 一起使用。请注意,您必须对X_test应用与X_train相同的转换(这就是我们首先使用poly_features.transform 的原因)
X_test_poly = poly_features.transform(X_test)
print(mean_squared_error(linreg.predict(X_test_poly), y_test))
希望有所帮助。
添加回答
举报