预测分析案例

本文属于李福东《人工智能100讲》原创内容,了解更多请**下载知识星球APP,找“84404036”,**点我获取**数智萤火虫原创精品列表。

内容摘要

回归分析能够理解特征向量之间的关系,减少模型复杂性,从而避免过拟合,还能够评估和预测未来发展趋势,比如影响区域内房价的主要因素,以及未来某个时间段内房价走势。

文章编号:AI-0031-V1.1

所属类别:人工智能

文章正文

回归模型能够预测连续范围内的目标变量,用于理解变量之间的关系、评估发展走向、或者预测未来发展趋势,比如,像未来3个月销售额预测这样的场景。

本文围绕如下5个主题介绍回归模型:

1、数据集探索与可视化;

2、回归模型的不同实现方法;

3、训练对异常值鲁棒的回归模型;

4、评估回归模型并诊断常见问题;

5、为非线性数据拟合回归模型。

一、住房数据集探索

线性回归的目标是建立一个或多个特征与连续目标变量之间关系的模型。

与有监督学习的“分类”不同,回归分析的目标是在连续范围上预测结果,而不是离散的类别标签。

我们首先介绍简单线性回归,从而更好地理解多元线性回归。

1、简单线性回归

对于简单线性回归来说,它包括解释变量(自变量x)和目标变量(因变量y),可以用公式:y=w0+w1X表示。w0为截距值,w1为权重系数。简单线性回归的示例如下图所示:

从上图可以看出,最佳拟合线就是回归线,从回归线到训练样本值之间的垂直线就是偏差或者残差,也就是预测错误值。

2、多元线性回归

简单线性回归只有一个解释变量,是最特殊的线性回归例子,也可以将线性回归模型泛化为多元解释变量(自变量),这个转化过程就是多元线性回归。

采用两个特征的多元线性回归模型拟合的二维超平面,如下图所示:

从上图可以看出,即使是两个自变量和一个目标变量,要实现三维的散点图已经是很有难度了。

本文以住房数据集为例,住房数据集共14列,前13列为解释变量,第14列为目标值。每一列代表的含义如下:

1、CRIM:犯罪率

2、ZN:超过25000平方英尺的住宅用地比例

3、INDUS:城镇非零售商业用地比例

4、CHAS:Charles River伪变量(如果限制地带为1,否则为0)

5、NOX:氮氧化物浓度(百万分之一)

6、RM:每套住宅的平均房间数

7、AGE:1940年以前建造的自有单元占比

8、DIS:到五个波士顿就业中心的加权距离

9、RAD:辐射状公路可达性指标

10、TAX:每10000美元全额物业税税率

11、PTRATIO:按城镇划分的师生比

12、B:按城镇划分的黑人比例

13、LSTAT:较低地位人口百分比

14、MEDV:自有住房的中值(1000美元)

1、最重要特征可视化(散点图、直方图)

通过数据可视化,实现异常值检测,发现数据分布与特征之间的关系。借助散点矩阵,实现不同特征之间关联度的可视化。

住房数据集中5列之间的关系,用散点图和直方图表示,如下所示:

借助散点图,可以发现数据的分布情况,以及数据集中是否包含异常值。例如,从第5行第4列中可以看出,“每套住宅的平均房间数RM”与“房价MEDV”之间是有线性关系的。

2、最重要特征可视化(关联矩阵)

还可以使用关联矩阵,查看特征之间的关系,如下图所示:

从上图可以看出,关联矩阵为我们提供了一种,基于特征之间线性关联的特征选择方法。

3、普通最小二乘法实现线性回归模型

线性回归被理解为借助基于训练样本数据获取最佳拟合直线的方法,然而我们并没有定义“最佳拟合”,也没有探讨过实现“最佳拟合”的技术。

下面我们就OLS(普通最小二乘)方法估计线性回归线参数,实现训练样本垂直距离平方和(残差或者错误)的最小化。

下面采用梯度下降算法,解决回归中回归参数大小问题。从下图中可以看出,在第5个epoch(时期)之后图形开始收敛:

下面我们通过可视化的方法,看看线性回归线拟合训练数据的程度。

可以定义一个简单的帮助函数,绘制训练示例的散点图并添加回归线,可视化结果如下图所示:

从上图可以看出,线性回归线体现了随着房间平均数的增加,房价也相应地上升了。

4、使用sk-learn评估回归模型系数

前面内容我们实现了回归分析的工作模型,然而,在现实应用中,我们对于如何更有效率地实现模型更感兴趣,这时sk-learn就派上用场了。

采用sk-learn实现回归分析的可视化效果如下图所示:

从上图可以看出,采用sk-learn实现回归模型的效果与梯度下降法是类似的。

5、使用RANSAC拟合鲁棒的回归模型

线性回归模型受异常值的影响很大,在特定情况下,数据中一个小的子集对模型的系数都会产生很大的影响。

然而,清除异常值不仅要依赖于数据科学家自身的判断,同样也需要我们具备丰富的领域知识。

清除异常值实现回归分析的鲁棒方法是RANSAC(随机样本一致性),RANSAC将回归模型拟合到数据的子集,即所谓的内点(正确数据)。

RANSAC算法实现过程如下:

1、选择一个随机数量的样例作为内点并拟合模型;

2、测试与拟合模型不符的其余数据点,增加落在给定容忍度范围的数据点;

3、使用全部内点再次拟合模型;

4、评估与内点相对的拟合模型的误差;

5、如果性能满足特定用户定义的阈值,或者达到固定迭代次数,则终止算法,否则返回到步骤1;

下面我们将线性模型与RANSAC算法合并,再为内点选择恰当的值。

缺省是sk-learn使用MAD(中位数绝对偏差)评估选择内点阈值,MAD则代表目标值的中位数绝对偏差。

然而,为内点阈值选择合适的值是需要具体问题具体分析的,这是RANSAC的不足之处,目前已经有很多自动选择内点阈值的更好方法。

一旦完成RANSAC模型的拟合,就可以从已经拟合的RANSAC线性回归模型中确定内点和外点。如下图所示:

从上图可以清晰地看出数据样本中的内点(正确的点)和外点(异常值)。

二、线性回归模型性能评估

使用RANSAC(随机样本一致性)已经降低了外点的潜在影响,但是我们并不清楚是否这种方法对于未知数据是否具有正面积极的影响。

下面我们采用数据集切分的方法,评估模型的泛化性能。由于使用了多个解释变量(自变量),我们无法在二维空间中可视化线性回归线,但是我们可以使用残差(实际值和预测值之间的差异)可视化的方法来诊断回归模型。

残差可视化是用于诊断回归模型的一个常用图形化工具,它可以帮助我们检测非线性程度和外点(异常值),并且检测错误是否是随机分布的。

我们采用预测值减去实际目标变量的方法,实现残差的可视化,如下图所示:

对于完美的预测,残差值为0,虽然现实中不存在这样的情况。然而,对于好的回归模型,我们期望错误是随机分布的,残差随机分布在中心线周围。

我们也可以使用残差图检测外点(异常值),外点就是那些远离中心线的点。

另外一个实现模型性能评价的量化手段是均方误差(MSE)。MSE借助网格搜索和交叉验证,用于比较实现超参调优的不同的回归模型。

三、使用正则化方法实现回归分析

正则化方法的原理是,通过缩小模型参数值的方式进行补偿,降低了模型复杂性,从而解决了模型过拟合问题。

典型的通过正则化实现线性回归的方法包括:岭回归(Ridge Regression)、套索(LASSO)、弹性网(elastic Net)

岭回归属于正则化L2补偿模型,它简单地在最小二乘法成本函数之上,增加了权重平方和。通过增加超级参数值,增加了正则化的强度,因此降低了模型的权重。

另外一种可以实现稀疏模型的方法是套索(LASSO)法,LASSO依赖于正则化的强度,特定权值可以变为0,这使得LASSO成为有监督学习的一种特征选择技术。

然而,如果训练样本的数量等于特征的数量,则会发生模型饱和,这是一种过度参数化的形式。

因此,饱和模型总是能够很好地拟合训练数据,但它仅仅是实现插补的一种形式,无法具备好的泛化能力。

岭回归和LASSO回归的这种是弹性网回归,弹性网具有产生稀疏的L1补偿和L2补偿,因此可以用于选择超过N个特征。

以上3个正则化回归模型在sk-learn中都有实现,可以使用超参值设置正则化强度,使用K折交叉验证法进行优化。

四、多项式回归:将线性回归模型转换为曲线

前面我们假设解释变量(自变量)和响应变量(因变量)之间的线性关系,一种解释线性假设冲突的方法是在多形式回归模型上增加多样式项目。

下面我们看一下sk-learn是如何通过增加多项式项目到现有数据集,实现多项式回归模型拟合的。

使用sk-learn增加多项式项目,具体步骤如下:

1、增加二次多样式项目;

2、拟合简单的线性回归模型;

3、基于转化的特征拟合多项式回归模型,以实现多样式回归;

4、可视化拟合结果。

采用增加多样式项目的方式,实现多项式回归的可视化结果,如下图所示:

从上图可以看出,多项式拟合(黄色直线)比线性拟合(蓝色虚线)在捕获解释变量(自变量)和响应变量(因变量)之间的关系方面做得更好。

五、基于住房数据的非线性关系的建模

前面我们介绍了如何构建多项式特征,拟合非线性关系,下面我们看一个具体的实例,将前面所用的方法应用到对住房数据集的建模分析之中。

采用二次(平方)和三次(立方)多样式与线性拟合对比的方法,可以实现房价与LSTAT(较低地位人口的占比)之间的关系的建模。建模结果如下所示:

从上图可以看出,立方(三次)更好地拟合了房价和LSTAT之间的关系。然而,也应当看到,多样式特征越多,模型复杂度越高,相应地也增加了过拟合的概率。

因此,在实际应用中,推荐基于单独的测试数据集评价模型的性能,以便评估模型的泛化能力。

此外,多样式特征并不总是实现非线性关系建模的最佳选择,两者之间更像是指数的关系。上述假设的测试结果如下图所示:

六、随机森林解决非线性关系问题

与我们前面讨论的全局线性和多项式回归模型对比,随机森林是多个决策树的集成,可以理解为分段线性函数的总和。换句话说,借助决策树算法,我们就是将输入空间分割为更小的区域,从而变得更可管可控。

1、决策树回归

决策树算法的优点是它并不像处理非线性数据那样需要任何特征转化,因为决策树一次分析一个特征,而不是考虑权重的合并。同样,决策树也不需要特征正则化和标准化。

决策树深度为3的可视化结果,如下图所示:

从上图可以看出,决策树捕获了数据的总体趋势,然而,这种模型局限性是它并不捕获所期望的预测结果的连续性与差异性。

决策树深度的选择是需要认真考量的,以便不要出现过拟合或者欠拟合的情况。

2、随机森林回归

由于随机森林的随机性,它比单个决策树有更好的泛化性能,因此可以帮助我们降低模型的方差。

随机森林的另外一个优点是它对于外点(异常值)并不敏感,无需更多的参数实现模型调优,随机森林中唯一的参数是集成模型中决策树的个数。

用于回归的随机森林算法基本上与用于分类的随机森林算法是一样的,唯一的区别是我们使用MSE(均方误差)标准增加单个决策树,并且预期的目标变量作为基于全部决策树之上的一个平均的预测。

从y轴方向的外点可以看出,训练数据比测试数据拟合的更好。而且残差好像并非完全围绕着0中心点随机分布,意味着模型并不能捕获所有的探索性信息。

然而,残差图比线性模型还是有很大的改进。可视化结果如下图所示:

理想情况下,我们的模型错误应当是随机或者不可预测的,也就是错误的预测不应当与包含在解释变量中的任何信息关联在一起,而且它应当表达现实世界的分布或者模式的随机性。

例如,如果我们在预测错误中发现模式,意味着残差图包含可预测的信息,产生这种现象的原因是解释信息正在渗入到这些残差之中。

不幸的是,这并非一个处理残差图中非随机性的放之四海而皆准的方法,需要借助于实验才行。基于我们的可用数据,我们可以通过转化变量改进模型,调优学习算法中的超级参数,选择更简单或者更复杂的模型,清除外点,或者纳入新的变量。

七、本文内容总结

我们学习了简单线性回归分析,建模了单一解释变量和连续响应变量之间的联系,然后讨论了一种有用的解释性数据分析技术,发现数据中的模式和异常,这是完成可预测建模任务的重要的第一步。

我们用梯度优化方法实现线性回归模型,构建了第一个模型。如何利用sk-learn线性模型实现回归,也实现了一个鲁棒的回归技术(RANSAC),作为一种对付外点的方法。

为了评估回归模型的可预测性能力,我们计算了均方误差和,以及相关的R2指标。此外,我们也介绍了一种诊断回归模型问题的图形化方法:残差图。

介绍完如何将正则化应用于回归模型,以减少模型复杂性并避免过拟合,还介绍了几个建模非线性关系的方法,包括多项式特征转化和随机森林回归。

前面的内容,我们介绍了有监督学习的分类与回归分析,下面介绍机器学习的无监督学习,看看无监督学习实如何使用集群分析技术,在没有目标变量参与的情况下,发现数据背后隐藏的规律。

八、本文相关名词术语

Epoch:时期,1个训练周期

simple linear regression:简单线性回归

multiple linear regression:多元线性回归

inliers:内点/正常数据

outliers:外点/异常数据

inlier threshold:内部阈值

explanatory variable:解释变量,自变量

target variables:目标变量

response variable:响应变量,因变量

univariate case:单变量情况

intercept:截距

weight coefficient:权重系数

residual:残差,实际观察值与估计值(拟合值)之间的差

multiple linear regression:多元线性回归分析

Exploratory data analysis:探索性数据分析

Pair-wise:成对的

correlation matrix:相关矩阵

scatterplots:散点图

histograms:直方图

ordinary least squares linear regression model:普通最小二乘线性回归模型

Adaptive Linear Neuron:自适应线性神经元

stochastic gradient descent:随机梯度下降

sum of squared errors(SSE):误差平方和

Quadratic fit:二次拟合

normal equation:正态方程

median absolute deviation:中位数绝对偏差

Random Sample Consensus(RANSAC):随机样本一致性

Residual plots:残差图

mean squared error (MSE):均方误差

coefficient of determination:决定系数

Ridge Regression:岭回归

least absolute shrinkage and selection operator(LASSO):收缩和选择算子(套索)

elastic Net:弹性网

within-node variance:节点内方差

variance reduction:方差减少

如需获取实现代码,请进入本文作者知识星球下载(下载知识星球APP,找“84404036”)。

了解更多关于大数据、人工智能、数字化转型的相关内容,请**微信公号:李福东频道。

人工智能 100讲 系列文章

以蒸汽机、电力、计算机、机器人等代表的四次工业革命,以及人工智能时代的到来

人工智能应用在中国遍地开花,助力千行百业转型升级

美国在人工智能技术与应用方面不断创新突破

为什么机器能够产生智能?揭开机器智能的神秘面纱

机器学习在人工智能体系架构中的定位及其学习方式

机器是怎样学习的?机器学习的方法与步骤

鸢尾花分类,一个经典的机器学习教科书案例

机器学习第2步:数据预处理的归一化、标准化等方法

机器学习第3步:特征工程的PCA降维法

机器学习第3步:特征工程的线性判别分析LDA降维法

机器学习第3步:特征工程的主成分分析KPCA降维法

机器学习第4步:模型选择的机器学习过程管道化

机器学习第4步:模型选择的Holdout交叉验证法

机器学习第4步:模型选择的K折交叉验证法

机器学习第4步:模型选择的学习曲线调测法

机器学习第4步:模型选择的验证曲线调测法

机器学习第4步:模型选择的网格搜索法

机器学习第5步:模型评估的嵌套交叉验证法

机器学习第5步:模型评估的性能度量指标

机器学习第5步:模型评估的ROC曲线法

机器学习第5步:模型评估的多级分类与类失衡问题

机器学习第5步:模型评估的集成学习多数投票法

机器学习第5步:模型评估的集成学习套袋法

机器学习第5步:模型评估的集成学习自适应法

机器学习应用案例:基于客户评价的情绪预测方法

机器学习应用案例:非核心学习法解决情绪预测中计算效率的问题

机器学习应用案例:如何实现客户评价文档主题的预测?

机器学习应用案例:算法模型的在线存取方法

机器学习应用案例:在线学习模型更新与Web发布方法

数智萤火虫

愿景目标:致力于为学员提供以大数据、人工智能、数字化转型为核心,从技术到产品,从战略到运营的系统化、高品质知识服务,培养专家型、应用型、实战型人才。

服务内容:会按需延伸至企业架构、产品经理、区块链、5G、AR、VR等领域,帮助您掌握最新的理念、思维、方法、技术与工具,与时俱进,创新发展。

交付理念:起步于技术、聚焦于产品、深耕于运营、决胜于战略,帮助学员实现从点到线,再从面到体的蜕变式修炼与进阶。

交付形式:文章、PPT、音频、视频、微信群、直播、沙龙、答疑、考评等多种形式,多媒体、多触点、线上线下相融合,切实解决工作与学习中遇到困难和问题,提升实战能力。

加入知识星球,您将至少获得:

1、高薪职位推荐。星球帮助学员存放简历,免费对接优选岗位。

2、职业规划指导。帮助学员少走弯路,快速平滑晋级、晋升。

3、精品内容尝鲜。每周至少分享1篇原创精编长文。

4、PPT干货下载。定期推送最新培训、项目、公开课资料。

5、精美礼物赠送。小礼品、红包、作者签名书等。

6、在线问题答疑。72小时内答复个性化问题。

本星球属于你我共同成长的家园,希望我们有缘相聚,共同拥抱数字化时代的新浪潮、新机遇,不负韶华、共创共赢!

选择精品,高效进阶