Python使用Scikit-learn随机森林实战
准备工作:
1. 环境搭建: 安装Python和Scikit-learn库。
2. 依赖的类库: numpy, pandas, matplotlib。
数据集介绍:
我们将使用Scikit-learn库中的一个内置的鸢尾花分类数据集(IRIS数据集)。该数据集包含了150条记录,每条记录有4个特征: 萼片长度、萼片宽度、花瓣长度、花瓣宽度。每个记录属于三个类别中的一个: Setosa, Versicolor, Virginica。
代码实现:
# 导入所需的类库
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.ensemble import RandomForestClassifier
from sklearn import datasets
# 加载鸢尾花数据集
iris = datasets.load_iris()
X = iris.data
y = iris.target
# 将数据集分为训练集和测试集
np.random.seed(0)
indices = np.random.permutation(len(X))
X_train = X[indices[:-30]]
y_train = y[indices[:-30]]
X_test = X[indices[-30:]]
y_test = y[indices[-30:]]
# 创建随机森林分类器模型
model = RandomForestClassifier(n_estimators=10)
# 训练模型
model.fit(X_train, y_train)
# 预测
predicted = model.predict(X_test)
# 打印预测结果
print("预测结果:", predicted)
# 打印真实结果
print("真实结果:", y_test)
# 打印准确率
accuracy = np.mean(predicted == y_test)
print("准确率:", accuracy)
代码描述:
1. 首先导入必要的类库。
2. 加载鸢尾花数据集,将特征存储在变量X中,将目标变量存储在变量y中。
3. 使用numpy库的random.permutation函数随机打乱数据集,并将数据集分为训练集和测试集。
4. 创建一个随机森林分类器模型,设置n_estimators参数为10,表示使用10个决策树。
5. 使用训练集数据进行模型训练。
6. 使用测试集数据进行预测。
7. 打印预测结果和真实结果。
8. 计算并打印准确率,准确率表示预测结果与真实结果一致的比例。
总结:
本例使用Scikit-learn库中的随机森林分类器对鸢尾花数据集进行分类。首先导入必要的类库,加载数据集并分为训练集和测试集。然后创建并训练随机森林分类器模型,使用测试集数据进行预测,并计算准确率。最后打印预测结果、真实结果和准确率。随机森林分类器是一种强大的机器学习模型,适用于分类和回归问题。其优点包括可处理大量数据、有较好的准确性、能够处理高维数据等。