随机森林案例含源数据python
时间: 2023-05-12 15:01:23 浏览: 130
随机森林是一种集成学习的方法,它利用多个决策树来进行分类或回归,最终选择结果时,采用投票或平均法得出最终结果。随机森林具有很强的准确性和鲁棒性,适用于解决高维特征的分类和回归问题。
下面我们以一个随机森林分类的例子来介绍如何利用Python进行分析。我们使用的数据集是Iris,它包含了3类共150个样本,每个样本有4个特征,分别是花萼长度、花萼宽度、花瓣长度和花瓣宽度。我们将使用scikit-learn库中的随机森林分类器来进行分类。
首先,我们需要导入必要的包和数据。代码如下:
```
import pandas as pd
import numpy as np
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
# 导入数据集
iris = load_iris()
X = iris.data
y = iris.target
```
接着,我们将数据集划分为训练集和测试集。代码如下:
```
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
```
然后,我们将创建一个随机森林分类器,并使用训练集对其进行训练。代码如下:
```
# 创建随机森林分类器并进行训练
clf = RandomForestClassifier(n_estimators=100, random_state=42)
clf.fit(X_train, y_train)
```
接下来,我们将使用测试集对训练好的模型进行测试,并计算其精度。代码如下:
```
# 在测试集上测试模型并计算其精度
y_pred = clf.predict(X_test)
acc = accuracy_score(y_test, y_pred)
print("Accuracy:", acc)
```
最后,我们可以输出特征重要性来了解哪些特征对分类最具有影响力。代码如下:
```
# 输出特征重要性
feature_importances = pd.Series(clf.feature_importances_, index=iris.feature_names)
print(feature_importances)
```
完整的代码如下:
```
import pandas as pd
import numpy as np
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
# 导入数据集
iris = load_iris()
X = iris.data
y = iris.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# 创建随机森林分类器并进行训练
clf = RandomForestClassifier(n_estimators=100, random_state=42)
clf.fit(X_train, y_train)
# 在测试集上测试模型并计算其精度
y_pred = clf.predict(X_test)
acc = accuracy_score(y_test, y_pred)
print("Accuracy:", acc)
# 输出特征重要性
feature_importances = pd.Series(clf.feature_importances_, index=iris.feature_names)
print(feature_importances)
```
通过以上步骤,我们可以完成一个简单的随机森林分类的案例并了解其源数据和Python实现方法。
阅读全文