随机森林算法python代码并出图的
时间: 2023-08-13 15:35:24 浏览: 284
以下是使用Python实现随机森林算法的示例代码,并绘制出特征重要性排序图:
```python
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
# 生成样本数据
X, y = make_classification(n_samples=1000, n_features=10, n_informative=5, n_redundant=0, random_state=42)
# 分割训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 创建随机森林分类器
rfc = RandomForestClassifier(n_estimators=100, max_depth=None, random_state=42)
# 在训练集上拟合模型
rfc.fit(X_train, y_train)
# 在测试集上进行预测
y_pred = rfc.predict(X_test)
# 计算模型精度
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)
# 绘制特征重要性排序图
importances = rfc.feature_importances_
indices = np.argsort(importances)[::-1]
plt.figure(figsize=(12,6))
plt.title("Feature Importance")
plt.bar(range(X_train.shape[1]), importances[indices])
plt.xticks(range(X_train.shape[1]), indices)
plt.show()
```
在此示例中,使用 `make_classification` 函数生成一个包含1000个样本和10个特征的二分类数据集。然后,使用 `train_test_split` 函数将数据集分割为训练集和测试集。接着,创建一个随机森林分类器,并在训练集上拟合模型,然后在测试集上进行预测。使用 `accuracy_score` 函数计算模型的精度,并输出。最后,使用 `matplotlib` 绘制特征重要性排序图,其中每个条形表示一个特征的重要性,条形按重要性从高到低排列。
阅读全文