欢迎访问宙启技术站
智能推送

使用sklearn.ensemble构建随机森林分类器

发布时间:2023-12-27 19:23:13

随机森林是一种集成学习方法,它包含多个决策树来进行分类任务。每个决策树独立地对输入数据进行分类,最终通过多数投票进行预测,这种集成的方式可以减少过拟合的风险,并提高模型的泛化能力。

在sklearn库中,可以使用ensemble模块的RandomForestClassifier类来构建随机森林分类器。下面我们通过一个例子来演示如何使用该类进行分类。

首先,我们需要导入相关的库和数据集。我们将使用sklearn中的load_iris数据集,该数据集包含了150个不同类型的鸢尾花样本,每个样本有4个特征。

from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# 加载数据集
iris = load_iris()
X, y = iris.data, iris.target

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

接下来,我们可以初始化并训练一个随机森林分类器。我们可以设置一些参数来影响模型的性能,比如n_estimators表示构建多少棵决策树,默认值为100,max_depth表示每棵决策树的最大深度,默认值为None(表示不限制深度)。

# 初始化随机森林分类器
rf = RandomForestClassifier(n_estimators=100, random_state=42)

# 训练模型
rf.fit(X_train, y_train)

训练完成后,我们可以使用训练好的模型来进行预测,并评估模型的性能。

# 预测测试集
y_pred = rf.predict(X_test)

# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print("准确率: %.2f%%" % (accuracy * 100))

随机森林分类器除了可以进行预测外,还可以获取一些重要的特征信息。我们可以使用feature_importances_属性来获取每个特征的重要程度。

# 获取特征重要性
feature_importance = rf.feature_importances_
for i, importance in enumerate(feature_importance):
    print("特征%d重要性:%.2f%%" % (i+1, importance*100))

以上就是使用sklearn.ensemble构建随机森林分类器的简单例子。通过调整参数和增加特征工程,我们可以进一步提高模型的性能和泛化能力。