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))
希望有所幫助。
添加回答
舉報