<机器学习笔记-02> (scikit-learn 02)线性回归
摘要:本文是“Mastering Machine Learning With scikit-learn”第二章“线性回归”的学习笔记,对书中源码进行实现,并对书中内容按照知识模块进行整理,尤其是对python函数整理力求做到清晰有条理;
注1:笔记中重在功能实现,对于基本理论理解不深,以后还是需要加强的。
注2:本文第一次使用Pypora软件写成md文件,然后上传到MarkDown页面,在序号排版方面比CSDN自带的要好些,但是快捷键不如CSDN博客方便,而数学公式和图片上传还都不太熟悉;
知识要点总结:
基本概念:
掌握模型:一元/多元线性回归模型,一元多项式回归模型;
理解概念:损失函数、残差;
理解回归拟合模型参数估计,尤其是最小二乘法;理解正则化的常用方法(岭回归法,LASSO法,弹性网);
理解预测结果的方法,尤其是R-Square;
理解梯度下降法;
Python基本功能:
读入库/库中的某个函数,或为其取别名;
掌握terminal输入多行命令的方法;
使用def定义函数
使用print函数输出文本和数字;
掌握for循环使用
掌握用enumerate()获取列表的索引和数值
会用shape()和reshape()对Array的形状进行操作;
掌握list的索引号调用方法;
Matplotlib库
打开Inline显示图片功能;
定义显示图片的文字(大小+字体)、题目、坐标轴(名称+范围)、打开网格;
绘制不同颜色的点、线;
绘制散点分布图;
Numpy库
会求均值、方差、协方差;
会求矩阵的dot,inv,transpose();
使用lstsq()求最小二乘法;
Sklearn库
会基于linear_model.LinearRegression建立一元/多元线性回归模型;会基于LinearRegression和preprocessing.PolynomialFeatures建立一元多次线性回归模型;会基于linear_model.SGDRegressor建立随机梯度下降SGD模型;
使用model.fit()建模,使用model.predict()预测,使用model.score()求测试集的R-Square;
基于cross_validation,会用train_test_split()函数划分训练集和测试集,会用cross_val_score()计算交叉检验的R-Squre结果;
基本概念与理论分析
损失函数(loss function):用来定义模型与观测值的误差;
残差(residuals):模型预测的数值与训练集数据的差异,也叫训练误差(training erros);
LinearRegression类
fit()
学习方法下的一元线性回归模型为: y=a+bx ;
多元线性回归模型为: y=a+b