python - 如何在 python 中绘制图形,如 R 中的 varImpPlot() 方法图,用于绘制随机森林中的重要变量?

标签 python r matplotlib machine-learning random-forest

我有包含大约 370 个特征的数据,并且我建立了一个随机森林模型来获取重要特征,但是当我绘制时我无法弄清楚要考虑的特征,因为 370 个特征在 x 轴上看起来非常笨拙。
谁能帮我在python中绘制图形,就像varImpPlot()绘制的图形一样在 R 中绘图。

最佳答案

在 R 中的 randomForest 包中,varImpPlot() 绘制了最重要的前 30 个变量,您可以在 Python 中使用 sklearn help page 中的示例进行同样的操作。 :

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import make_classification
from sklearn.ensemble import RandomForestClassifier

X, y = make_classification(n_samples=1000,
                           n_features=370,
                           n_informative=16,
                           n_classes=2,
                           random_state=0)

forest = RandomForestClassifier(random_state=0)
forest.fit(X, y)
为了绘制它,我们可以将重要性分数放入 pd.Series 并绘制前 30 个:
importances = pd.Series(forest.feature_importances_,index=X.columns)
importances = importances.sort_values()
importances[-30:].plot.barh()
enter image description here

关于python - 如何在 python 中绘制图形,如 R 中的 varImpPlot() 方法图,用于绘制随机森林中的重要变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46210371/

相关文章:

javascript - 从服务器部分刷新 R Shiny session

python - 使用 os.walk() 循环文件并打开它们

python - Pandas 索引中值而不是值中值

python - 如何创建一个字典,将点添加到文本文件中的名称?

r - 如何检查一组列是否是 R 中数据框的超键?

R:向量 a 的元素和向量 b 的元素之间的最小距离

python - 如何在 Python 中将 3D 数据绘制为 2D 网格颜色图?

python - “PathCollection”不可迭代 - 创建可拖动的散点图

python - python 3 的 matplotlib 中的曲线不连续

python - 为什么我在 Django 中的模板标签不起作用?