如何用Python计算两个列表之间的相关系数?
- 内容介绍
- 文章标签
- 相关推荐
本文共计456个文字,预计阅读时间需要2分钟。
目录
1.方法0:调用第三方库实现
+ 1.1 调用第三方库实现2. 方法1:编写函数计算实现 + 2.1 编写函数计算实现
3. 测试样例结果输出 + 3.1 测试样例结果输出
1. 方法0:调用第三方库实现 + 1.1 调用第三方库实现 from pandas import Series def calc_corr1(a): # 代码实现 pass
目录
1、方法①:调用第三方库实现
2、方法②:编写函数计算实现
3、测试样例结果输出
1、方法①:调用第三方库实现
from pandas import Seriesdef calc_corr1(a, b):
s1 = Series(a)
s2 = Series(b)
return s1.corr(s2)
2、方法②:编写函数计算实现
def calc_corr2(a, b):a_avg = sum(a) / len(a)
b_avg = sum(b) / len(b)
# 计算分子,协方差————按照协方差公式,本来要除以n的,由于在相关系数中上下同时约去了n,于是可以不除以n
cov_ab = sum([(x - a_avg) * (y - b_avg) for x, y in zip(a, b)])
# 计算分母,方差乘积————方差本来也要除以n,在相关系数中上下同时约去了n,于是可以不除以n
sq = (sum([(x - a_avg) ** 2 for x in a]) * sum([(x - b_avg) ** 2 for x in b])) ** 0.5
corr_factor = cov_ab / sq
return corr_factor
3、测试样例结果输出
if __name__ == '__main__':m1 = [254, 0, 1032, 633, 140, 136, 4, 3, 4266, 5639, 4354, 3093]
m2 = [10798, 0, 3233, 1739, 300, 113, 114, 159, 975, 2257, 16376, 8581]
print(calc_corr1(m1, m2)) # 0.40126106164889785
print(calc_corr2(m1, m2)) # 0.40126106164889797 【文章原创作者:美国站群多ip服务器 www.558idc.com/mgzq.html
本文共计456个文字,预计阅读时间需要2分钟。
目录
1.方法0:调用第三方库实现
+ 1.1 调用第三方库实现2. 方法1:编写函数计算实现 + 2.1 编写函数计算实现
3. 测试样例结果输出 + 3.1 测试样例结果输出
1. 方法0:调用第三方库实现 + 1.1 调用第三方库实现 from pandas import Series def calc_corr1(a): # 代码实现 pass
目录
1、方法①:调用第三方库实现
2、方法②:编写函数计算实现
3、测试样例结果输出
1、方法①:调用第三方库实现
from pandas import Seriesdef calc_corr1(a, b):
s1 = Series(a)
s2 = Series(b)
return s1.corr(s2)
2、方法②:编写函数计算实现
def calc_corr2(a, b):a_avg = sum(a) / len(a)
b_avg = sum(b) / len(b)
# 计算分子,协方差————按照协方差公式,本来要除以n的,由于在相关系数中上下同时约去了n,于是可以不除以n
cov_ab = sum([(x - a_avg) * (y - b_avg) for x, y in zip(a, b)])
# 计算分母,方差乘积————方差本来也要除以n,在相关系数中上下同时约去了n,于是可以不除以n
sq = (sum([(x - a_avg) ** 2 for x in a]) * sum([(x - b_avg) ** 2 for x in b])) ** 0.5
corr_factor = cov_ab / sq
return corr_factor
3、测试样例结果输出
if __name__ == '__main__':m1 = [254, 0, 1032, 633, 140, 136, 4, 3, 4266, 5639, 4354, 3093]
m2 = [10798, 0, 3233, 1739, 300, 113, 114, 159, 975, 2257, 16376, 8581]
print(calc_corr1(m1, m2)) # 0.40126106164889785
print(calc_corr2(m1, m2)) # 0.40126106164889797 【文章原创作者:美国站群多ip服务器 www.558idc.com/mgzq.html

