pandas一行代码计算相关性矩阵的条件概率
程序员文章站
2022-03-08 16:46:27
...
pandas一行代码计算相关性矩阵的条件概率
计算A列各属性发生时B列各属性发生的概率
一行代码:
pB_A = pd.crosstab(df['A'], df['B'], margins=True).apply(lambda x:x/x[-1], axis=1)
下面举个例子帮助理解
例子:
计算:P(B|A) = P(AB)/P(A)
import pandas as pd
# 创建数据集
data=[
[0,1],
[0,1],
[1,2],
[1,2],
[2,3],
[2,3],
[0,3],
]
df = pd.DataFrame(data, columns=['A', 'B'])
#计算类别的先验概率,可以计算P(A),或者P(B)
pA = df['A'].value_counts()/df['A'].size
print(pA)
输出pA,即P(A):
0 0.428571
2 0.285714
1 0.285714
# 计算条件概率只需要下面一行
# 比如计算事件A发生时B各属性值发生的概率,P(B|A)
pB_A = pd.crosstab(df['A'], df['B'], margins=True).apply(lambda x:x/x[-1], axis=1)
print(pB_A)
输出P(B|A):
B 1 2 3 All
A
0 0.666667 0.000000 0.333333 1.0
1 0.000000 1.000000 0.000000 1.0
2 0.000000 0.000000 1.000000 1.0
All 0.285714 0.285714 0.428571 1.0
上一篇: java 异常嵌套报错, 打印 源异常信息 异常链信息
下一篇: dubbo 集成restful协议