Python与机器学习之相关性(一)
在机器学习应用过程中,遇到复杂的机器学习系统,往往是一个人或者一个团队去研究优化某个部分。而Andrew Ng不止一次的提到,有些公司花六个月去解决一开始就错的问题(Eg. High variance but try more training examples),最后发现该部分根本不影响整体。
如何避免?
其中一种方法:先用简单的数据分析去描述问题,研究问题和特征的相关性。
引申到今天我要分享的一种描述性统计——相关性分析
Pearson相关系数概念
- 定义——分析变量之间线性相关程度的强弱,并用统计指标表示。
公式——当我们关心这两组数据是否相关,相关程度多少,用协方差(COV)和相关系数(CORRCOEF)来衡量相关程度:
也可以表示为:
分析——相关系数r的取值范围:-1≤r≤1
如何应用?
- Plot
参考——Python与机器学习之数据可视化
这一步非常重要,很多时候想办法把数据画出来,能体会其中的关联。Andrew Ng亦推荐。
- Numpy分析
参考——Python与机器学习之常用的Numpy操作
参考——Python Numpy快速入门
参考——Python Numpy进阶
而对于Pearson相关系数,Numpy已经封装好:
from numpy import array, cov, corrcoef
data = array([data1, data2])
#计算两组数的协方差
#参数bias=1表示结果需要除以N,否则只计算了分子部分
#返回结果为矩阵,第i行第j列的数据表示第i组数与第j组数的协方差。对角线为方差
cov(data, bias=1)
#计算两组数的相关系数
#返回结果为矩阵,第i行第j列的数据表示第i组数与第j组数的相关系数。对角线为1
corrcoef(data)
总结
描述性统计是容易操作,直观简洁的数据分析手段。
如果您看到这篇文章有收获或者有不同的意见,欢迎点赞或者评论。
python群:190341254
丁。
附录
Matplotlib
Numpy