线性回归算法:寻找一条直线,最大程度的拟合样本特征和样本输出标记之间的关系
衡量线性回归法的指标: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)