当前位置: 首页 > news >正文

AI人工智能机器学习之监督学习和集成学习

1、概要

  本篇学习AI人工智能机器监督学习框架下的集成学习,以鸢尾花iris数据集、随机森林模型和梯度提升为示例,从代码层面测试和讲述监督学习和集成学习能。

2、监督学习和集成学习 - 简介

监督学习和集成学习是机器学习领域中的两个重要概念。

  • 监督学习是一种机器学习任务,其中模型在已标记的数据集上进行训练。
  • 集成学习是一种通过结合多个模型来提高模型性能的技术。利用多个模型的预测结果,通过某种方式进行组合,从而得到比单一模型更好的预测结果。

本篇,以两个示例讲述监督学习框架下集成学习(ensemble learning)的使用方法:

  • 示例1:Random Forest, 随机森林是决策树的集成学习方法,通过构建多个决策树并进行投票来提高预测的准确性
  • 示例2:Gradient Boosting, 梯度提升机是一种强大的集成学习算法,它通过迭代地训练决策树来最小化损失函数,从而提高模型的预测性能

本篇相关资料代码参见:AI人工智能机器学习相关知识资源及使用的示例代码

3、集成学习

3.1、安装依赖

python安装机器学习库: pip install scikit-learn

3.2、示例1: 随机森林
from sklearn.datasets import load_iris, make_classification
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier, GradientBoostingClassifier
from sklearn.metrics import accuracy_score, classification_report

# 1. 加载数据集, 特征矩阵X, 目标向量y
data = load_iris()
X, y = data.data, data.target

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

# 3. 创建随机森林分类器实例
model = RandomForestClassifier(n_estimators=100)  # n_estimators表示树的数量

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

# 5. 进行预测
y_pred = model.predict(X_test)

# 6. 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"准确率为: {accuracy:.2f}")

运行上述代码,您将得到如下输出:

准确率为: 1.00
3.3、示例2:梯度提升机
from sklearn.datasets import load_iris, make_classification
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier, GradientBoostingClassifier
from sklearn.metrics import accuracy_score, classification_report

# 生成模拟数据集
X, y = make_classification(n_samples=100, n_features=3, n_redundant=1, n_classes=2, random_state=42)

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

# 创建梯度提升机分类器实例
model = GradientBoostingClassifier(n_estimators=100, learning_rate=0.1, random_state=42)

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

# 进行预测
y_pred = model.predict(X_test)

# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"准确率为: {accuracy:.2f}")

运行上述代码,您将得到如下输出:

准确率为: 0.93

通过以上两个监督学习框架下集成学习的示例,总结一下监督学习需要的过程:

  1. 数据收集:收集训练用的数据集,同时对数据打上标签。
  2. 数据预处理:清洗和准备数据,例如处理缺失值、归一化等。
  3. 模型选择:选择适合的算法,例如线性回归、支持向量机、决策树等。
  4. 训练模型:使用训练数据训练模型,使其能够识别输入与输出之间的关系。
  5. 模型评估:使用测试数据集评估模型的性能,通常使用指标如准确率、精确率、召回率等。
  6. 模型优化:根据评估结果对模型进行调优,以提高预测性能。

集成学习,常常在监督学习的框架下使用。在机器学习库sklearn.ensemble中封装了大部分集成学习方法,包括Bagging(自助法)、Boosting(提升法)、Staking(堆叠法)

4、 总结

本篇以鸢尾花iris数据集、随机森林模型和梯度提升为示例,从代码层面讲述监督学习和集成学习的相关知识。

相关文章:

  • W803|联盛德|WM IoT SDK2.X测试|(1)开箱:开发板及说明
  • Java Junit框架
  • 【11】RUST使用cargo组织crate
  • 物理先验+数据增强的蛋白-小分子亲和力打分模型 EquiScore 评测
  • 示例:JAVA调用deepseek
  • 机试刷题_674. 最长连续递增序列【python】
  • DevSecOps普及:安全与开发运维的深度融合
  • vllm的使用方式,入门教程
  • 技术速递|.NET 9 网络优化
  • [已解决]dify设置本地模型deepseek报错[Error 111]
  • vue深拷贝:1、使用JSON.parse()和JSON.stringify();2、使用Lodash库;3、使用深拷贝函数(采用递归的方式)
  • MemoryCache内存缓存数据
  • 算法仿真平台搭建1-FFMPEG+RtspSever快速搭建一个RTSP服务器
  • 【苍穹外卖】问题笔记
  • Pytorch框架06-现有网络模型(修改/使用/保存/加载)
  • Ubuntu 安装 Nginx并配置反向代理
  • 工作中遇到的设计模式整理
  • Uniapp 小程序接口封装与使用
  • 使用 Postman 访问 Keycloak 端点
  • 强化学习演进:GRPO 从何而来
  • 中方会否公布铁线礁的领海基线?外交部:中方执法活动旨在反制菲方侵权挑衅
  • 民生访谈|宝妈宝爸、毕业生、骑手……上海如何为不同人群提供就业保障
  • 国家发改委答澎湃:将指导限购城市针对长期摇号家庭和无车家庭等重点群体定向增发购车指标
  • 央视曝光假进口保健品:警惕!保税仓发货不等于真进口
  • 来论|如何看待韩企在美申请“饺子”专利
  • 最高法知产庭年度报告:民事案件二审发回重审率持续下降