网站 数据库 sql 导入数据库文件,wordpress 媒体库,建立网站专业公司,做网站放视频Bagging#xff1a; 方法#xff1a;集成n个base learner模型#xff0c;每个模型都对原始数据集进行有放回的随机采样获得随机数据集#xff0c;然后并行训练。 回归问题#xff1a;n个base模型进行预测#xff0c;将得到的预测值取平均得到最终结果。 分类问题#xf… Bagging 方法集成n个base learner模型每个模型都对原始数据集进行有放回的随机采样获得随机数据集然后并行训练。 回归问题n个base模型进行预测将得到的预测值取平均得到最终结果。 分类问题n个base模型进行预测投票选择出n个分类结果中出现次数最对的结果作为最终分类结果 代表模型随机森林是Bagging的一个代表。它基于自助采样法从原始数据集中抽取多个样本子集 并在每个子集上训练一个决策树最后通过投票或平均的方式得到最终的预测结果。 随机森林在鸢尾花数据集的分类实现代码可直接运行数据集在文章顶部免费下载 # 导入所需的库
import pandas as pd
from matplotlib import pyplot as plt
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, confusion_matrix
from sklearn.preprocessing import StandardScaler
import seaborn as sns# 加载鸢尾花数据集
data pd.read_excel(../data/鸢尾花分类数据集/Iris花分类.xlsx)
X data.iloc[:, :4].values # 选取前4列作为特征
y data.iloc[:, 4:].values.ravel() # 选取最后1列作为标签# 特征缩放标准化
scaler StandardScaler()
X_scaled scaler.fit_transform(X)# 将数据集划分为训练集和测试集
# 通常我们使用80%的数据作为训练集20%的数据作为测试集
X_train, X_test, y_train, y_test train_test_split(X_scaled, y, test_size0.2, random_state66)# 创建随机森林分类器实例
# n_estimators表示森林中树的数量可以调整以获得更好的性能
randomForest RandomForestClassifier(n_estimators100, random_state42)# 使用训练数据来拟合训练随机森林模型
randomForest.fit(X_train, y_train)# 使用训练好的模型对测试集进行预测
y_pred randomForest.predict(X_test)# 计算预测结果的准确度
accuracy accuracy_score(y_test, y_pred)# 打印出准确度
print(随机森林分类精度为: {:.4f}%.format(accuracy * 100))# 获取特征重要性
feature_importances randomForest.feature_importances_
# 获取特征名称
feature_names data.columns[:4].tolist()
# 打印特征重要性
print(特征重要性:)
for feature, importance in zip(feature_names, feature_importances):print(f{feature}: {importance:.4f})
# 可视化特征重要性
# 创建一个DataFrame来存储特征重要程度
importances_df pd.DataFrame({Feature: feature_names, Importance: feature_importances})# 按重要程度降序排序
importances_df importances_df.sort_values(byImportance, ascendingFalse)# 绘制条形图
plt.rcParams[font.sans-serif] [SimHei]
plt.figure(figsize(10, 5))
plt.bar(importances_df[Feature], importances_df[Importance])
plt.title(Feature Importances)
plt.ylabel(Importance)
plt.xlabel(Feature)
plt.show()# 计算混淆矩阵
cm confusion_matrix(y_test, y_pred)# 绘制混淆矩阵图
plt.figure(figsize(7, 5))
sns.heatmap(cm, annotTrue, fmt.0f, linewidths.5, squareTrue, cmapBlues)
plt.ylabel(实际标签, fontpropertiesSimHei, size14)
plt.xlabel(预测标签, fontpropertiesSimHei, size14)
plt.title(随机森林分类器混淆矩阵, fontpropertiesSimHei, size15)
plt.show()结果为