R 语言是为数学研究工作者设计的一种数学编程语言,主要用于统计分析、绘图、数据挖掘。 机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。
还是线性回归
项目实操——线性回归(二)
线性拟合常用函数:
使用predict()函数可以用拟合模型对新的数据集进行预测
直接使用plot()函数可以对拟合结果进行绘图:
plot(fit)
会生成四幅图:残差拟合图、正态分布qq图、大小位置图以及残差影响图
Abline()函数可以绘制出拟合曲线,但这个命令属于低级绘图命令,必须在高级绘图的基础上完成,我们先绘制身高与体重的散点图:
plot(women$height,women$weight) >abline(fit)
最小二乘法的原理就是找到一条直线(拟合直线),使残差平方和最小
一般拟合曲线很少是直线,大部分都是曲线,也就是多项式的回归
还是women这个数据集,我们用多项式回归试一下:
先定义一个fit2变量
将体重作为因变量,身高与身高的平方作为自变量
fit2<-lm(weight~height+I(height^2),data=women)
可以对比两次回归的曲线差异
plot(women$height,women$weight) abline(fit)
这次使用lines()函数,这个函数能把点连成线,横坐标是身高数据,纵坐标是根据拟合模型的得出的预测值,为了增加比较的差异性,我们给第二个曲线增加颜色:
lines(women$height,fitted(fit2),col="red")
对比很明显,带有二次项的回归模型能够更好的拟合数据,使得更多的点落在曲线上
那么,三次项的回归模型效果是不是更好呢?我们再来拟合一下
fit3<-lm(weight~height+I(height^2)+I(height^3),data=women) plot(women$height,women$weight) abline(fit) >lines(women$height,fitted(fit2),col="red") >lines(women$height,fitted(fit3),col="blue")
拟合结果如图:
结果表明,继续增加多项式可以提高拟合度,但是其实没有必要,因为用于拟合的数据集,只是用于建模的数据集,不一定适合真实的数据,过多的拟合也是纸上谈兵。