Я пытаюсь визуализировать корреляцию столбца Result
с каждым другим столбцом.
A_B A_C B_C Result
0 0.318182 0.925311 0.860465 91
1 -0.384030 0.991803 0.996344 12
2 -0.818182 0.411765 0.920000 53
3 0.444444 0.978261 0.944444 64
A_B = (A-B)/(A+B)
соответственно все остальные значения.
, который работает для меньших нет.столбцов, но если я увеличу нет.столбцов то нет.строк в Heatmap продолжает накапливаться. Есть какой-нибудь компактный способ представить его.
Следующий код будет воспроизводить вывод -
import pandas as pd
import seaborn as sns
data = {'A':[232,243,12,546,67,12,78,11,245],
'B':[120,546,120,210,56,120,56,89,12],
'C':[9,1,5,6,7,43,7,12,64],
'Result':[91,12,53,64,71,436,74,123,641],
}
df = pd.DataFrame(data,columns=['A','B','C','Result'])
#Responsible for (A-B)/(A+B) ,(A-C)/(A+C) and similarly
colnames = df.columns.tolist()[:-1]
for i,c in enumerate(colnames):
if i!=len(colnames):
for k in range(i+1,len(colnames)):
df[c+'_'+colnames[k]]=(df[c]-df[colnames[k]])/(df[c]+df[colnames[k]])
newdf = df[['A_B','A_C','B_C','Result']].copy()
#Plotting A_B,A_C,B_C by ignoring the output of result of itself
plot = pd.DataFrame(newdf.corr().iloc[:-1,-1])
sns.heatmap(plot,annot=True)
Техника, которую я слышал, но не смог найти какой-либоsource, представляет каждый коэффициент корреляции в мини-прямоугольниках, как Так, согласно этому, рассматривая данную карту как матрицу 3 * 3 и (0,0), начиная с левого нижнего угла,A_B будет представлен в (1,1) A_C в (2,1), B_C в (2,2).Но я не понимаю, как это сделать?