第5章【思考与练习1】 延续回归模型的性能评估,计算使用全部数据学习得到的回归模型linreg在测试集上的性能。从例5-2训练集中取出前100条、200条样本,学习得到回归模型,并在测试集上预测分析

P96思考与练习1

1. 延续回归模型的性能评估,计算使用全部数据学习得到的回归模型linreg在测试集上的性能,与只使用训练集的模型linregTr进行比较,并对结果进行分析。

#1
#模型linreg
import pandas as pd
data = pd.read_csv('data/advertising.csv',index_col = 0)
x = data.iloc[: ,0:3].values.astype(float)
y = data.iloc[: ,3].values.astype(float)
from sklearn.linear_model import LinearRegression
linreg = LinearRegression()
linreg.fit(x,y)
print(linreg.intercept_,linreg.coef_)

#模型linregTr
from sklearn import model_selection
x_train,x_test,y_train,y_test = model_selection.train_test_split(x,y,test_size = 0.35,random_state = 1)
linregTr = LinearRegression()
linregTr.fit(x_train,y_train)
print(linregTr.intercept_,linregTr.coef_)

#将模型linregTr运用到测试集
from sklearn import metrics
y_test_pred1 = linregTr.predict(x_test)
test_err1 = metrics.mean_squared_error(y_test,y_test_pred1)
print('The mean squar error of test are:{:.3f}'.format(test_err1))
predict_score1 = linregTr.score(x_test,y_test)
print('The decision coeficient is:{:.3f}'.format(predict_score1))

#将模型linreg运用到测试集
y_test_pred2 = linreg.predict(x_test)
test_err2 = metrics.mean_squared_error(y_test,y_test_pred2)
print('The mean squar error of test are:{:.3f}'.format(test_err2))
predict_score2 = linreg.score(x_test,y_test)
print('The decision coeficient is:{:.3f}'.format(predict_score2))

分析:使用全部数据学习得出的回归模型linreg在测试集上的决定系数为0.916,大于只使用训练集的模型linregTr的决定系数0.913。由于 决定系数越大,预测效果越好。所以回归模型linreg在测试集上的预测效果要好些。

2. 从例5-2训练集中取出前100条、200条样本,学习得到回归模型,在测试集上计算这些模型的预测性能,并进行分析比较。( _第2道题目 有些歧义 ,样本总共就200条,例5-2中的训练集也不过是130条,从130条中取200条?。_所以第2题按照老书第一版的描述来:

从例5-1中取出前100条样本,学习回归模型linregHalf;在练习1的测试集上计算该模型预测性能,并与使用200条样本学习的模型比较。

#2
#此处仅取出前100条样本,前200条样本即是全部的样本数,在第1题中已计算过
import pandas as pd
data = pd.read_csv('data/advertising.csv',index_col = 0)
x1 = data.iloc[:100,0:3]
y1 = data.iloc[:100,3]
from sklearn.linear_model import LinearRegression
linregHalf = LinearRegression()
linregHalf.fit(x1,y1)
print(linregHalf.intercept_,linregHalf.coef_)

#将模型linregHalf运用到测试集
y_test_pred3 = linregHalf.predict(x_test)
test_err3 = metrics.mean_squared_error(y_test,y_test_pred3)
print('The mean squar error of test are:{:.3f}'.format(test_err3))
predict_score3 = linregHalf.score(x_test,y_test)
print('The decision coeficient is:{:.3f}'.format(predict_score3))

分析: 由练习1可知,200条样本学习的模型在测试集上的决定系数为 0.916,而模型linregHalf的为 0.915,决定系数高的预测效果要好,所以200条数据的模型在测试集上的预测效果较好一些, 差别不大,预测效果基本相同。

Original: https://blog.csdn.net/m0_51474486/article/details/124143582
Author: 是学数据分析的阿龙
Title: 第5章【思考与练习1】 延续回归模型的性能评估,计算使用全部数据学习得到的回归模型linreg在测试集上的性能。从例5-2训练集中取出前100条、200条样本,学习得到回归模型,并在测试集上预测分析

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/629993/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球