天津品牌网站建设是什么,八大电商平台是哪几家,网站html源码,内容营销什么意思文章目录 1.作者介绍2#xff0e;关于理论方面的知识介绍2.1 背景介绍2.1.1基本概念2.1.2算法步骤2.1.3优势2.1.4劣势2.1.5应用场景2.1.6随机森林的重要变体2.1.7相关理论 2.2随机森林算法架构2.2.1 数据预处理与采样2.2.2构建决策树2.2.3决策树的训练2.2.4集成模型2.2.5 模型… 文章目录 1.作者介绍2关于理论方面的知识介绍2.1 背景介绍2.1.1基本概念2.1.2算法步骤2.1.3优势2.1.4劣势2.1.5应用场景2.1.6随机森林的重要变体2.1.7相关理论 2.2随机森林算法架构2.2.1 数据预处理与采样2.2.2构建决策树2.2.3决策树的训练2.2.4集成模型2.2.5 模型输出 2.3鲍鱼数据集介绍 3关于实验过程的介绍完整实验代码测试结果3.1数据集处理3.1.1安装需要导入的模块3.1.2数据集划分3.1.3训练参数设置3.1.4运行代码输出结果 3.2问题分析 4. 附录(完整代码)5.参考文献 1.作者介绍
郝浩男西安工程大学电子信息学院2023级研究生 研究方向输电线路绝缘子缺陷检测 电子邮件2606801894qq.com
孙思伟男西安工程大学电子信息学院2023级研究生 研究方向机器视觉与人工智能 电子邮件sunsiwei0109163.com
2关于理论方面的知识介绍
2.1 背景介绍
随机森林Random Forest是一种集成学习方法广泛应用于分类和回归任务。它是由Leo Breiman和Adele Cutler在2001年提出的是基于决策树Decision Tree的组合模型。以下是随机森林算法的详细背景介绍
2.1.1基本概念
随机森林通过构建多个决策树并结合其预测结果来提高模型的整体性能。它属于**BaggingBootstrap Aggregating**方法的范畴。具体而言随机森林通过以下两个主要步骤来创建多个不同的决策树 Bootstrap采样从原始训练集中有放回地随机抽取多个子集。 特征随机选择在每个决策树的节点分裂时随机选择一个特征子集进行最佳分裂而不是使用所有特征。
2.1.2算法步骤
数据准备从原始数据集创建多个Bootstrap样本每个样本的大小与原始数据集相同。构建决策树对每个Bootstrap样本构建一棵决策树。在构建过程中节点的分裂仅在一个随机选择的特征子集上进行。集成模型将所有决策树的预测结果进行平均回归任务或投票分类任务以得到最终预测。
2.1.3优势
减少过拟合单个决策树容易过拟合训练数据而随机森林通过集成多个决策树来减少这种风险。 高准确性由于结合了多个决策树的预测随机森林通常比单个决策树更准确。 处理高维数据随机选择特征使得它能有效处理高维数据集。 内置特征重要性评估随机森林可以提供每个特征的重要性评分有助于特征选择。
2.1.4劣势
计算开销较大训练多个决策树和预测时的集成计算会耗费更多的资源。 解释性较差相比单个决策树随机森林的模型结构更为复杂难以解释。
2.1.5应用场景
随机森林在许多领域有广泛的应用包括但不限于 金融领域信用评分、股票市场预测 医疗领域疾病预测、基因数据分析 市场营销客户分类、销售预测 计算机视觉图像分类、对象检测
2.1.6随机森林的重要变体
极端随机树Extremely Randomized Trees, ExtraTrees除了随机选择特征还随机选择分裂点。 随机森林回归Random Forest Regression应用于回归任务。
2.1.7相关理论
Bagging通过自助采样Bootstrap生成多个训练集并对这些训练集分别训练模型然后综合这些模型的预测结果。 决策树一种树状结构的模型利用特征的条件来进行数据分类或回归。 通过结合多个决策树随机森林能够提高模型的泛化能力和稳定性成为机器学习中非常重要且广泛应用的算法之一。
2.2随机森林算法架构
随机森林算法是一种集成学习方法其架构由多棵独立的决策树组成。以下是随机森林算法的详细架构介绍
2.2.1 数据预处理与采样
数据准备 原始数据集包含特征输入变量和标签输出变量。Bootstrap采样 从原始数据集中有放回地随机抽取多个子集Bootstrap样本每个子集的大小与原始数据集相同。
2.2.2构建决策树
特征选择 在每个节点进行分裂时从全部特征中随机选择一个特征子集通常是总特征数的平方根进行最佳分裂。构建过程 对于每个Bootstrap样本构建一棵决策树。 在构建过程中使用特征子集来决定每个节点的分裂。
2.2.3决策树的训练
每棵决策树独立训练不进行剪枝Pruning以确保每棵树的深度最大化从而捕捉到训练数据中的更多模式。
2.2.4集成模型
集成预测 对于分类任务每棵决策树进行投票预测最终结果为投票数最多的类别。 对于回归任务每棵决策树进行数值预测最终结果为所有树预测值的平均值。
2.2.5 模型输出
最终模型由多棵决策树组成集成了所有决策树的预测结果从而提高整体模型的稳定性和准确性。
2.3鲍鱼数据集介绍
鲍鱼数据集可以从 UC Irvine 数据仓库中获得其 URL:abalone.data。 此数据集数据以逗号分隔没有列头。每个列的名字存在另外一个文件中。建立预测模型所需的数据包括性别、长度、直径、高度、整体重量、去壳后重量、脏器重量、壳的重量、环数。最后一列“环数”是十分耗时采获得的需要锯开壳然后在显微镜下观察得到。这是一个有监督机器学习方法通常需要的准备工作。基于一个已知答案的数据集构建预测模型然后用这个预测模型预测不知道答案的数据。 本实验用Sklearn模块RandomForestRegressor类的对鲍鱼数据建立随机森林回归模型然后用训练完成的模型测试一部分数据。 本示例采用鲍鱼数据集abalone.csv。本数据集有4178行9列。前8列表示特征最后一列是鲍鱼的环数量即是标签。部分数据如下表所示 数据集应用场景 鲍鱼数据集常用于以下机器学习任务 回归分析预测鲍鱼的年龄环数。 分类任务将鲍鱼按年龄分组进行分类。 特征选择和工程用于测试特征选择方法和工程技术。 算法评估作为基准数据集评估机器学习算法的性能。 鲍鱼数据集因其简单且包含多种类型特征成为机器学习入门和算法研究的理想选择。
3关于实验过程的介绍完整实验代码测试结果
3.1数据集处理
3.1.1安装需要导入的模块
import pandas as pd
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_squared_error, r2_score3.1.2数据集划分
# 分割数据集为训练集和测试集
X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.2, random_state42)3.1.3训练参数设置
# 初始化随机森林模型
rf RandomForestRegressor(random_state42)# 定义参数网格
param {n_estimators: [10, 20, 30, 40], max_depth: [25, 35, 45]}# 初始化 GridSearchCV减少折数
gc GridSearchCV(rf, param_gridparam, cv3)3.1.4运行代码输出结果
C:\Software\anaconda3\envs\py310\python.exe D:\JupetyCode\machinelearning\鲍鱼年龄.py
Best Parameters: {max_depth: 25, n_estimators: 40}
Best Score: 0.5344924150868674
Mean Squared Error: 5.25
R^2 Score: 0.52Actual Predicted Actual Age Predicted Age
866 9 12.075 10.5 13.575
1483 8 9.325 9.5 10.825
599 16 13.825 17.5 15.325
1702 9 10.650 10.5 12.150
670 14 13.075 15.5 14.575进程已结束退出代码为 03.2问题分析
有时在自己找代码的时候有些代码在加载数据集路径时提示需要csv格式的文件也就是excel文件此时我们需要把数据集data文件word文件格式转变并且csv文件需要我们手动添加鲍鱼特征类别如下图所示否则代码运行时会识别不到特征类别。本文中直接用data文件即可。
4. 附录(完整代码)
import pandas as pd
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_squared_error, r2_score# 模拟加载数据
abalone_data_url https://archive.ics.uci.edu/ml/machine-learning-databases/abalone/abalone.data
abalone_column_names [Sex, Length, Diameter, Height, Whole weight, Shucked weight, Viscera weight, Shell weight, Rings]
abalone pd.read_csv(abalone_data_url, namesabalone_column_names)# 将 Sex 列的分类变量映射为数值变量
abalone[Sex] abalone[Sex].map({M: 0, F: 1, I: 2})# 分离特征和目标
X abalone.drop(Rings, axis1)
y abalone[Rings]# 分割数据集为训练集和测试集
X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.2, random_state42)# 标准化特征值
scaler StandardScaler()
X_train scaler.fit_transform(X_train)
X_test scaler.transform(X_test)# 初始化随机森林模型
rf RandomForestRegressor(random_state42)# 定义参数网格
param {n_estimators: [10, 20, 30, 40], max_depth: [25, 35, 45]}# 初始化 GridSearchCV减少折数
gc GridSearchCV(rf, param_gridparam, cv3)# 进行网格搜索
gc.fit(X_train, y_train)# 输出最佳参数和最佳得分
print(fBest Parameters: {gc.best_params_})
print(fBest Score: {gc.best_score_})# 使用最佳模型进行预测
best_model gc.best_estimator_
y_pred best_model.predict(X_test)# 评估模型性能
mse mean_squared_error(y_test, y_pred)
r2 r2_score(y_test, y_pred)print(fMean Squared Error: {mse:.2f})
print(fR^2 Score: {r2:.2f})# 查看预测结果和实际结果的对比
comparison pd.DataFrame({Actual: y_test, Predicted: y_pred})# 计算实际年龄和预测年龄
comparison[Actual Age] comparison[Actual] 1.5
comparison[Predicted Age] comparison[Predicted] 1.5# 打印对比结果
print(comparison.head())5.参考文献
Breiman, L. (2001). Random forests. Machine learning, 45(1), 5-32.Ho, T. K. (1995). Random decision forests. In Proceedings of the 3rd international conference on document analysis and recognition (Vol. 1, pp. 278-282). IEEE.