Saya paling menyukai posting Addison Klinke, sebagai yang paling sederhana, tetapi menggunakan saran Wojciech Moszczyńsk untuk pemfilteran dan pembuatan bagan, tetapi memperluas filter untuk menghindari nilai absolut, jadi berikan matriks korelasi yang besar, filter, bagan, dan kemudian ratakan:
Dibuat, Difilter, dan Dipetakan
dfCorr = df.corr()
filteredDf = dfCorr[((dfCorr >= .5) | (dfCorr <= -.5)) & (dfCorr !=1.000)]
plt.figure(figsize=(30,10))
sn.heatmap(filteredDf, annot=True, cmap="Reds")
plt.show()
Fungsi
Pada akhirnya, saya membuat fungsi kecil untuk membuat matriks korelasi, memfilternya, dan kemudian meratakannya. Sebagai gagasan, itu dapat dengan mudah diperpanjang, misalnya, batas atas dan bawah yang asimetris, dll.
def corrFilter(x: pd.DataFrame, bound: float):
xCorr = x.corr()
xFiltered = xCorr[((xCorr >= bound) | (xCorr <= -bound)) & (xCorr !=1.000)]
xFlattened = xFiltered.unstack().sort_values().drop_duplicates()
return xFlattened
corrFilter(df, .7)