亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

計算傳入的模型的 mse

計算傳入的模型的 mse

當年話下 2022-08-25 15:53:44
我正在嘗試繪制數據的均方誤差,但我有點難以弄清楚如何做到這一點。我知道你需要“真實”值和“預測”值才能得到mse,但是我的項目的布局方式非常混亂。我有一個方法,其中我生成一個模型,如下所示:def fit_curve(X, y, degree):    poly_features = PolynomialFeatures(degree = degree)    x_poly = poly_features.fit_transform(X)    linreg = LinearRegression()    model = linreg.fit(x_poly, y)    return model這將返回已訓練的模型。然后,我應該找到所述模型的均方誤差。我不確定我應該如何執行此操作,因為模型已經在沒有返回預測值的情況下進行了訓練。現在我計算mse的方法是:def mse(X, y, degree, model):    poly_features = PolynomialFeatures(degree = degree)    linreg = LinearRegression()    x_poly = poly_features.fit_transform(X)    linreg.fit(x_poly, y)    y_predict = linreg.predict(x_poly)    mse = mean_squared_error(y_predict, y)    return mse我覺得與.不幸的是,指南說這是我需要這樣做的方式(采取,,和。msefit_curvemseXydegreemodel我認為還值得注意的是,我目前的工作正常,直到大約13-14度,它在圖表上生成的答案與我給出的解決方案不匹配。我不確定為什么它不能完美地工作,因為我認為這是正確的想法。mse
查看完整描述

1 回答

?
qq_花開花謝_0

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))

希望有所幫助。


查看完整回答
反對 回復 2022-08-25
  • 1 回答
  • 0 關注
  • 124 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號