机器学习:Python实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

6.6 数据属性的相关性

数据属性的相关性是指数据的两个属性是否互相影响,以及这种影响是什么方式的等。非常通用的计算两个属性的相关性的方法是皮尔逊相关系数,皮尔逊相关系数是度量两个变量间相关程度的方法。它是一个介于1和-1之间的值,其中,1表示变量完全正相关,0表示无关,-1表示完全负相关。在自然科学领域中,该系数广泛用于度量两个变量之间的相关程度。在机器学习中,当数据的关联性比较高时,有些算法(如linear、逻辑回归算法等)的性能会降低。所以在开始训练算法前,查看一下算法的关联性是一个很好的方法。当数据特征的相关性比较高时,应该考虑对特征进行降维处理。下面通过使用DataFrame的corr()方法来计算数据集中数据属性之间的关联关系矩阵。代码如下:

    from pandas import read_csv
    from pandas import set_option
    # 显示数据的相关性
    filename='pima_data.csv'
    names=['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age',
    'class']
    data=read_csv(filename, names=names)
    set_option('display.width', 100)
    # 设置数据的精确度
    set_option('precision', 2)
    print(data.corr(method='pearson'))

执行之后会得到一个每个属性相互影响的矩阵。执行结果如图6-3所示。

图6-3