我们如何才能在热图中仅显示相关超过特定阈值的特征?
How can we show ONLY features that are correlated over a certain threshold in a heatmap?
数据框中的特征太多。我试图仅绘制相关超过某个阈值的特征,比方说超过 80%,并在热图中显示这些特征。我将一些代码放在一起,它 运行s,但我仍然看到一些白线,它们没有数据,因此没有相关性。此外,我看到相关性远低于 80% 的事物。这是我试过的代码。
import seaborn
c = newdf.corr()
plt.figure(figsize=(10,10))
seaborn.heatmap(c, cmap='RdYlGn_r', mask = (np.abs(c) >= 0.8))
plt.show()
当我运行那个的时候,我看到了这个。
这里有什么问题?
我正在做一个小更新,有一些新发现。
这只会得到 corr>.8.
corr = newdf.corr()
kot = corr[corr>=.8]
plt.figure(figsize=(12,8))
sns.heatmap(kot, cmap="Reds")
这似乎行得通,但它仍然让我白了很多!我认为应该有一种方法可以只包含具有一定数量相关性的项目。也许您必须将那些具有 >.8 个项目的项目复制到一个新的数据框中,并从该对象建立相关性。我不确定这是如何工作的。
以下代码将强相关特征(相关性幅度超过 0.8)分组为组件,并分别绘制每组组件的相关性。如果它与您想要的不同,请告诉我。
components = list()
visited = set()
print(newdf.columns)
for col in newdf.columns:
if col in visited:
continue
component = set([col, ])
just_visited = [col, ]
visited.add(col)
while just_visited:
c = just_visited.pop(0)
for idx, val in corr[c].items():
if abs(val) > 0.999 and idx not in visited:
just_visited.append(idx)
visited.add(idx)
component.add(idx)
components.append(component)
for component in components:
plt.figure(figsize=(12,8))
sns.heatmap(corr.loc[component, component], cmap="Reds")
数据框中的特征太多。我试图仅绘制相关超过某个阈值的特征,比方说超过 80%,并在热图中显示这些特征。我将一些代码放在一起,它 运行s,但我仍然看到一些白线,它们没有数据,因此没有相关性。此外,我看到相关性远低于 80% 的事物。这是我试过的代码。
import seaborn
c = newdf.corr()
plt.figure(figsize=(10,10))
seaborn.heatmap(c, cmap='RdYlGn_r', mask = (np.abs(c) >= 0.8))
plt.show()
当我运行那个的时候,我看到了这个。
这里有什么问题?
我正在做一个小更新,有一些新发现。
这只会得到 corr>.8.
corr = newdf.corr()
kot = corr[corr>=.8]
plt.figure(figsize=(12,8))
sns.heatmap(kot, cmap="Reds")
这似乎行得通,但它仍然让我白了很多!我认为应该有一种方法可以只包含具有一定数量相关性的项目。也许您必须将那些具有 >.8 个项目的项目复制到一个新的数据框中,并从该对象建立相关性。我不确定这是如何工作的。
以下代码将强相关特征(相关性幅度超过 0.8)分组为组件,并分别绘制每组组件的相关性。如果它与您想要的不同,请告诉我。
components = list()
visited = set()
print(newdf.columns)
for col in newdf.columns:
if col in visited:
continue
component = set([col, ])
just_visited = [col, ]
visited.add(col)
while just_visited:
c = just_visited.pop(0)
for idx, val in corr[c].items():
if abs(val) > 0.999 and idx not in visited:
just_visited.append(idx)
visited.add(idx)
component.add(idx)
components.append(component)
for component in components:
plt.figure(figsize=(12,8))
sns.heatmap(corr.loc[component, component], cmap="Reds")