天天看點

LinearRegression-Python實作線性回歸

線性回歸算法:尋找一條直線,最大程度的拟合樣本特征和樣本輸出标記之間的關系

衡量線性回歸法的名額:MSE(求差的平方),RMSE(MSE求根号)和MAE(求差的絕對值)

RMSE有放大樣本中預測結果和真實結果中,較大的差距的趨勢;

是直接反應的預測結果和真實結果的差距

from sklearn.metrics import mean_squared_error
from sklearn.metrics import mean_absolute_error
# MSE
mean_squared_errormean_squ (y_test, y_predict)
# MAE
mean_absolute_error(y_test, y_predict)
# 一般選擇MSE,為的是能夠放大誤差
           

最好得衡量名額-R squared

r方小于等于1,r方越大,則其預測效果越好,當我們的預測模型不犯任何錯誤時,r方得到的最大值為1;

當r方值小于0時,說明我們學習到的模型還不如基準模型;

此時,很有可能我們的資料不存在任何線性關系

r方原理:用自己的模型産生的錯誤,除以用baseline模型産生的錯誤,最終的模型其實就是衡量了我們的模型拟合産生的錯誤

而用1-其式子,就表示了最終的模型拟合沒有産生錯誤的程度

# 簡單線性模型
from playML.SimpleLinearRegression import SimpleLinearRegression

reg = SimpleLinearRegression()
reg.fit(x_train, y_train)

reg.a_
reg.b_
y_predict = reg.predict(x_test)
           
# R Square
from sklearn.metrics import r2_score

r2_score(y_test, y_predict)
           
# 線性回歸
from sklearn.linear_model import LinearRegression

lin_reg = LinearRegression()
lin_reg.fit(X_train, y_train)
           
lin_reg.coef_
lin_reg.intercept_
lin_reg.score(X_test, y_test)
           

繼續閱讀