回归分析是广泛应用的统计分析方法,可用于分析自变量和因变量的影响搞关系(通过自变量求因变量),也可以分析自变量对因变量的影响方向(正影响还是负影响)。回归分析的主要应用场景是进行预测和控制,例如计划制定,KPI制定,目标制定等,也可基于预测数据与实际数据进行比对和分析,确定事件发展程度并给未来行动提供方向性指导。
常用的回归算法包括线性回归、二项式回归、对数回归、指数回归、核SVM、岭回归、Lasso等。
本文注重的是如何用Python实现最简单的一元线性回归,其中包含的统计学知识不做介绍。
1.简单的线性回归分析
问题:探讨学习时间长短与学习成绩之前的关系是否符合线性回归
下面看如何用Python实现
大致顺序:1.读取或建立原始数据集→2.数据清洗(本案例不需要)→3.提取特征和标签→4.特征与标签的相关关系→5.建立训练数据集和测试数据集→6.导入线性回归算法、创建模型、训练模型→7.模型评估
(不知道第3步和第4步是不是算作特征工程)
1.1导入相关的包,并建立数据集
注:Python3.7版本中字典dictionary是有序的,不需要OrderDic函数转化为有序字典
1.2提取特征和标签,并绘制散点图
1.3利用相关系数,了解两个变量每单位的相关性程度
以对角线为分界线,只需看对角线左侧(或右侧)的数据
1.4提取特征和标签、建立训练数据集和测试数据集并绘制散点图
思考题:如何选取训练数据和测试数据?
1.5导入线性回归算法→创建模型→训练模型
sklearn要求输入的特征必须是二维数组的类型,但是因为我们目前只有1个特征,所以需要用reshape转行成二维数组的类型。如果reshape的参数是-1,就会根据所给的行数或列数(取决于-1是在括号中行的位置还是列的位置),自动按照原始数组的大小形成新数组。
1.6得到最佳拟合曲线并绘图
1.7模型评估并绘图
注:模型评估要用测试数据来计算,评估内容为决定系数R的平方