gpt4 book ai didi

python - 获得字典中特征之间的正相关和负相关

转载 作者:行者123 更新时间:2023-11-28 22:15:56 24 4
gpt4 key购买 nike

我有特征之间相关性的 df

             CRIM        ZN     INDUS      CHAS       NOX        RM       AGE  
CRIM 1.000000 -0.199458 0.404471 -0.055295 0.417521 -0.219940 0.350784
ZN -0.199458 1.000000 -0.533828 -0.042697 -0.516604 0.311991 -0.569537
INDUS 0.404471 -0.533828 1.000000 0.062938 0.763651 -0.391676 0.644779
CHAS -0.055295 -0.042697 0.062938 1.000000 0.091203 0.091251 0.086518
NOX 0.417521 -0.516604 0.763651 0.091203 1.000000 -0.302188 0.731470
RM -0.219940 0.311991 -0.391676 0.091251 -0.302188 1.000000 -0.240265
AGE 0.350784 -0.569537 0.644779 0.086518 0.731470 -0.240265 1.000000
DIS -0.377904 0.664408 -0.708027 -0.099176 -0.769230 0.205246 -0.747881

我想要的是 corr() 的字典,其值是 gt(0.5) 和 ne(1) 以及负值 corr() lt(0.5)

我试过了

df.corr()[(df.corr().gt(0.5)) & (df.corr().ne(1))].stack().round(3).to_dict()

这给了我特征 gt(0.5)ne(1) 之间的所有正 corr() 但我还需要强负 corr() le(0.5) 在字典中?

还有什么方法可以获得唯一值?

在结果中我需要唯一值。 ZN - NOXNOX - ZN 应该被视为一个。我在字典中得到了两者?

最佳答案

df.corr()[((df.corr().gt(0.5)) & (df.corr().ne(1))) | ((df.corr().lt(-0.5)) & (df.corr().ne(-1)))].stack().round(3).to_dict()

编辑(更高效和可读):

df_corr = df.corr()

high_positive_corr = (df_corr.gt(0.5)) & (df_corr.ne(1))
low_negative_corr = (df_corr.lt(-0.5)) & (df_corr.ne(-1))

df_corr[high_positive_corr | low_negative_corr].stack().round(3).to_dict()

所以你不用计算相关性 5 次

关于python - 获得字典中特征之间的正相关和负相关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52537432/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com