方差分析(F检验)又称ANOVA,方差齐性检验,是一种用来捕捉每个特征变量与响应变量之间线性关系的过滤方法,实现路径是针对两个及两个以上分组的样本均值进行差异显著性检验,基本思想是将不同分组的样本均值之间的差异归结于两个方面:一是组间差异,也就是不同分组之间的均值差异,用变量在各组的均值与总均值的偏差平方和的总和表示,记为SSA,如果有r个分组,则其自由度为r-1;二是组内差异,也就是同一分组内部样本之间的差异,用变量在各组的均值与该组内变量值的偏差平方和的总和表示,记为SSE,如果有一共n个样本、r个分组,则其自由度为n-r。
基于上述思想可以构建起F统计量:
可以发现F值越大,则说明组间差异越大,也就是说据此把样本进行分类是有意义的。因此,我们在机器学习特征选择时也可以基于这一标准,即F值越大,特征的作用就越大,就越倾向于被选择用来预测或分类。F检验可以用于分类问题的特征选择,也可以用于回归问题的特征选择。
在Python实现方面,当响应变量为离散型变量时,为分类问题,应使用feature_selection.f_classif(F检验分类);当响应变量为连续型变量时,为回归问题,应使用feature_selection.f_regression(F检验回归)。F检验在数据服从正态分布时效果稳定,使用F检验过滤特征,最好将数据转化为服从正态分布。
在使用feature_selection.f_classif(F检验分类)或feature_selection.f_regression(F检验回归)时,会返回F值和P值两个统计量。其中特征变量的F值越大,就越倾向于选择该特征变量;而P值则是与F值相对应的统计量,特征变量的P值越小,就越倾向于选择该特征变量,P值的参照标准一般为0.05。
方差分析(F检验)的Python代码示例如下:
运行结果如图所示。
其中上面的array数组为各个特征变量的F统计量值,下面的array数组为各个特征变量的P统计量值,可以发现所有特征变量的P值都小于0.05,都是比较显著的。我们可以根据这一原则来过滤特征变量,也可以与前面介绍的卡方检验类似,用SelectKBest()挑选F值最大的前N个变量:
运行结果为:
,可以发现第3个、第6个、第7个特征变量的F值是最大的。
X.columns# 查看特征变量集的各列名称
运行结果为:Index(['age', 'education', 'workyears', 'resideyears', 'income', 'debtratio', 'creditdebt', 'otherdebt'],dtype='object')。可以发现第3个、第6个、第7个特征变量分别为workyears、debtratio、creditdebt。
运行结果如图所示。
上述内容节选自《Python数据科学应用从入门到精通》(张甜 杨维忠 著 2023年11月新书 清华大学出版社)。
针对数据分析或机器学习推荐两本入门级的图书:《Python机器学习原理与算法实现》(杨维忠 张甜 著 2023年2月新书 清华大学出版社)《Python数据科学应用从入门到精通》(张甜 杨维忠 著 2023年11月新书 清华大学出版社)。这两本书的特色是在数据分析、机器学习各种算法的介绍方面通俗易懂,较少涉及数学推导,对数学基础要求相对不高,在python代码方面讲的很细致,看了以后根据自身需要选取算法、优化代码、科学调参。都有配套免费提供的源代码、数据文件和视频讲解,也有PPT、思维导图、习题等。
为什么说这两本书值得?首先说《Python机器学习原理与算法实现》(杨维忠 张甜 著 2023年2月新书 清华大学出版社),内容非常详实,包含了Python和机器学习,相当于一次获得了两本书。在讲解各类机器学习算法时,逐一详解用到的各种Python代码,针对每行代码均有恰当注释(这一点基本上是大多数书目做不到的)。恒丰银行总行副行长郑现中,山东大学经济学院教学实验中心主任 副教授 韩振,德勤华永会计师事务所 华文伟 合伙人,首创证券深圳分公司机构业务部 樊磊 总经理 中国准精算师,山东省农村信用社联合社数据管理项目组 郝路安 总监等一众大牛联袂推荐。这本书在出版之前曾开发成9次系列课程,在恒丰银行全行范围类开展培训,490人跟随杨维忠老师上课学习(课程限报490人),培训完成后课程在知鸟平台上回放超过3万人次。很多银行员工通过这些学习一下子就学会了Python,并且用于工作中开展数据分析、机器学习、数据可视化等,这本书也被多家商业银行选做数字化人才培训教材,成为银行员工的一本网红书。
《Python数据科学应用从入门到精通》一书,旨在教会读者实现全流程的数据分析,并且相对《Python机器学习原理与算法实现》一书增加了很多概念性、科普性的内容,进一步降低了学习难度。国务院发展研究中心创新发展研究部第二研究室主任杨超 ,山东大学经济学院金融系党支部书记、副主任、副教授、硕士生导师张博,山东管理学院信息工程学院院长 袁锋 教授、硕士生导师,山东大学经济学院刘一鸣副研究员、硕士生导师,得厚投资合伙人张伟民等一众大牛联袂推荐。书中全是干活,买这一本书相当于一下子得到了5本书(Python基础、数据清洗、特征工程、数据可视化、数据挖掘与建模),而且入门超级简单,不需要编程基础,也不需要过多数学推导,非常适用于零基础学生。全书内容共分13章。其中第1章为数据科学应用概述,第2章讲解Python的入门基础知识,第3章讲解数据清洗。第4~6章介绍特征工程,包括特征选择、特征处理、特征提取。第7章介绍数据可视化。第8~13章介绍6种数据挖掘与建模方法,分别为线性回归、Logistic回归、决策树、随机森林、神经网络、RFM分析。从数据科学应用和Python的入门,再到数据清洗与特征工程,最终完成数据挖掘与建模或数据可视化,从而可以为读者提供“从拿到数据开始,一直到构建形成最终模型或可视化报告成果”的一站式、全流程指导。
两本书随书赠送的学习资料也很多,包括全部的源代码、PPT、思维导图,还有10小时以上的讲解视频,每一章后面还有练习题及参考答案,还有学习群,相对于只看网络上的视频,一方面更加系统、高效,另一方面照着书一步步操作学起来也事半功倍。全网热销中,当当、京东等平台搜索“Python机器学习 杨维忠”“Python数据科学 杨维忠”即可。
《Python机器学习原理与算法实现》(杨维忠、张甜著,2023年2月,清华大学出版社),适用于学习Python/机器学习
《Python数据科学应用从入门到精通》(张甜 杨维忠 著 2023年11月新书 清华大学出版社)适用于学习数据分析、数据科学、数据可视化等。
创作不易,恳请多多点赞,感谢您的支持!也期待大家多多关注我,让我共同学习数据分析知识。