评估值介绍
越小越好,但是不好用:
mean_absolute_error:平均绝对误差(Mean Absolute Error,MAE)
mean_squared_error:均方差(Mean squared error,MSE)
取值[0,1],保守的方法是使用R2:
r2_score值取值范围是[0,1],越接近于1说明自变量越能解释因变量的方差变化,值越小则说明效果越差。
使用代码
利用sklearn里面的merics模块导出三大函数,直接进行调用计算
from sklearn.metrics import mean_absolute_error
from sklearn.metrics import mean_squared_error
from sklearn.metrics import r2_score #直接调用库函数进行输出R2
print(mean_squared_error(y_test,y_predict))
print(mean_absolute_error(y_test,y_predict))
print(r2_score(y_test,y_predict))
举例:
以鸢尾花的花瓣长度与宽度为例,实现回归
https://blog.csdn.net/weixin_45496778/article/details/105619944?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160256567019725255540516%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=160256567019725255540516&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v3~pc_rank_v2-2-105619944.first_rank_ecpm_v3_pc_rank_v2&utm_term=%E8%AF%84%E4%BB%B7%E7%BA%BF%E6%80%A7%E5%9B%9E%E5%BD%92%E6%A8%A1%E5%9E%8B&spm=1018.2118.3001.4187
报错
原因:
由于没有测试集,误把预测对象的数据当做y_test使用,导致参数数量不一致
解决:把数据分成训练集和测试集,这样我们就可以用分出来的训练集y_test了
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.4, random_state=101)
另外y_pre在这个地方:
predictions = lmScore.predict(X_test)