“这是我参与更文挑战的第14天,活动详情查看: 更文挑战”
1.R-squared
要想理解R-squared,得先了解3组新的概念:整体平方和TSS、残差平方和RSS、解释平方和ESS,它们的关系如下图所示。其中Yi为实际值,Yfitted为预测值,Ymean为所有散点的平均值(为了让图的内容更简洁,这里没有绘制散点),R2为R-squared值。
对于一个拟合程度较高的线性回归模型,我们希望其实际值要尽可能落在拟合曲线上,即残差平方和RSS尽可能小,根据R-squared的计算公式R2=1-(RSS/TSS),也就是希望R-squared尽可能大。当RSS趋向于0时,说明实际值基本都落在了拟合曲线上,模型的拟合程度非常高,那么此时R-squared趋向于1,所以在实战当中,R-squared越接近1,模型的拟合程度越高。不过拟合程度也不是越高越好,拟合程度过高可能会导致过拟合现象。
过拟合与欠拟合
如下图所示,过拟合即过度拟合,是指模型在训练样本中拟合程度过高,虽然它很好地贴合了训练集数据,但是丧失了泛化能力,不具有推广性,也就是说,如果换了训练集以外的数据就达不到较好的预测效果。与过拟合相对应的概念是欠拟合,欠拟合是指模型拟合程度不高,数据距离拟合曲线较远,或指模型没有很好地捕捉到数据特征,不能很好地拟合数据。
2.Adj.R-squared
Adj.R-squared是R-squared的改进版,其目的是为了防止选取的特征变量过多而导致虚高的R-squared。每新增一个特征变量,线性回归背后的数学原理都会导致R-squared增加,但是这个新增的特征变量可能对模型并没有什么帮助。为了限制过多的特征变量,引入了Adj.R-squared的概念,它在R-squared的基础上额外考虑了特征变量的数量这一因素,其公式如下。
其中n为样本数量,k为特征变量数量。从上述公式可以看出,特征变量数量k越大,其实会对Adj.R-squared产生负影响,从而告诫数据建模者不要为了追求高R-squared值而添加过多的特征变量。当考虑了特征变量数量后,Adj.R-squared就能够更准确地反映线性模型的拟合程度。
3.P值
P值涉及统计学里假设检验中的概念,其原假设为特征变量与目标变量无显著相关性,P值是当原假设为真时所得到的样本观察结果或更极端结果出现的概率。如果该概率越大,即P值越大,原假设为真的可能性就越大,即无显著相关性的可能性越大;如果该概率越小,即P值越小,原假设为真的可能性就越小,即有显著相关性的可能性越大。所以P值越小,显著相关性越大。通常以0.05为阈值,当P值小于0.05时,就认为特征变量与目标变量有显著相关性。对于本书的学习来说,了解以上知识就足够了。
eg:
from sklearn.preprocessingimport PolynomialFeatures
poly_reg = PolynpmialFeatures(degree = 2)
X_ = poly_reg.fit_transform(X)
import statsmodels.api as sm
X2 = sm.add_constant(X_)
est = sm.OLS(Y,X2).fit()
print(est.summary())