• python-计算数据的相关性


    先解释下什么叫数据的相关性:

    计算两个数组的平均值,如果两个数组中的两个值都大于平均值或者都小于平均值,则得到true. 如果一个大于平均值一个小于平均值,则得到false.最后计算true和false的个数.

    比如,两个数组[1, 2, 3, 4] and [4, 5, 6, 7] , 得到 (4, 0). 因为 1 和 4 都低于他们所在数组的平均值, 2 和 5 也都低于他们所在数组的平均值, 3 和 6 都高于他们所在数组的平均值, 4 和 7 也都高于他们所在数组的平均值.所以计算结果为true的有4个,false的为0.

    如果数组是[1, 2, 3, 4] and [7, 6, 5, 4], 那结果就是 (0, 4). 因为 1 低于他所在数组的平均值而 7 高于们所在数组的平均值, 其它几项也类似...

    一个栗子:

    比如有如下数据,20个城市的人均寿命和城市的gdp,计算寿命和gdp的相关性就是,计算是否寿命较高的城市,gdp也会较高,寿命较低,gdp也较低...就是说,gdp和寿命,是否相关...如果计算得到的true比较多,那就是表示是相关的,如果得到的false比较多,那就表示不相关.

    
    
    countries = ['Albania', 'Algeria', 'Andorra', 'Angola', 'Antigua and Barbuda',
                 'Argentina', 'Armenia', 'Australia', 'Austria', 'Azerbaijan',
                 'Bahamas', 'Bahrain', 'Bangladesh', 'Barbados', 'Belarus',
                 'Belgium', 'Belize', 'Benin', 'Bhutan', 'Bolivia']
    
    life_expectancy_values = [74.7,  75. ,  83.4,  57.6,  74.6,  75.4,  72.3,  81.5,  80.2,
                              70.3,  72.1,  76.4,  68.1,  75.2,  69.8,  79.4,  70.8,  62.7,
                              67.3,  70.6]
    
    gdp_values = [ 1681.61390973,   2155.48523109,  21495.80508273,    562.98768478,
                  13495.1274663 ,   9388.68852258,   1424.19056199,  24765.54890176,
                  27036.48733192,   1945.63754911,  21721.61840978,  13373.21993972,
                    483.97086804,   9783.98417323,   2253.46411147,  25034.66692293,
                   3680.91642923,    366.04496652,   1175.92638695,   1132.21387981]
    
    

      life_expectancy = pd.Series(life_expectancy_values)

    gdp = pd.Series(gdp_values)

    # 计算相关性的函数
    def
    variable_correlation(pd_1, pd_2): pd_1_mean = pd_1.mean() pd_2_mean = pd_2.mean()
    # 都高于平均值或都低于平均值的,得到true,一个高一个低的,得到false
       result_series
    = ((pd_1 > pd_1_mean) & (pd_2 > pd_2_mean)) | ((pd_1 < pd_1_mean) & (pd_2 < pd_2_mean))
    # 计算true的个数 num_same_direction
    = result_series.sum() # 计算false的个数
       num_different_direction
    = len(result_series) - num_same_direction return (num_same_direction,num_different_direction) print(variable_correlation(life_expectancy,gdp))

    # 结果
    (17,3)

    说明寿命和gdp是相关的.

  • 相关阅读:
    内存溢出和内存泄漏的区别
    各种集合类的区别以及原理
    如何设置java虚拟机参数
    [机器学习] 简单的机器学习算法和sklearn实现
    [机器视觉] SIFT特征-尺度不变特征理解
    [学习笔记] Markdown语法备忘
    [学习总结] python语言学习总结 (三)
    [学习笔记]Linux下mysql的基础操作
    [学习笔记] C++ 历年试题解析(三)--小补充
    [学习总结] python语言学习总结 (二)
  • 原文地址:https://www.cnblogs.com/liulangmao/p/9162045.html
Copyright © 2020-2023  润新知