1、概要
本篇学习AI人工智能机器监督学习框架下的集成学习,以鸢尾花iris数据集、随机森林模型和梯度提升为示例,从代码层面测试和讲述监督学习和集成学习能。
2、监督学习和集成学习 - 简介
监督学习和集成学习是机器学习领域中的两个重要概念。
- 监督学习是一种机器学习任务,其中模型在已标记的数据集上进行训练。
- 集成学习是一种通过结合多个模型来提高模型性能的技术。利用多个模型的预测结果,通过某种方式进行组合,从而得到比单一模型更好的预测结果。
本篇,以两个示例讲述监督学习框架下集成学习(ensemble learning)的使用方法:
- 示例1:Random Forest, 随机森林是决策树的集成学习方法,通过构建多个决策树并进行投票来提高预测的准确性
- 示例2:Gradient Boosting, 梯度提升机是一种强大的集成学习算法,它通过迭代地训练决策树来最小化损失函数,从而提高模型的预测性能
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
通过以上两个监督学习框架下集成学习的示例,总结一下监督学习需要的过程:
- 数据收集:收集训练用的数据集,同时对数据打上标签。
- 数据预处理:清洗和准备数据,例如处理缺失值、归一化等。
- 模型选择:选择适合的算法,例如线性回归、支持向量机、决策树等。
- 训练模型:使用训练数据训练模型,使其能够识别输入与输出之间的关系。
- 模型评估:使用测试数据集评估模型的性能,通常使用指标如准确率、精确率、召回率等。
- 模型优化:根据评估结果对模型进行调优,以提高预测性能。
集成学习,常常在监督学习的框架下使用。在机器学习库sklearn.ensemble中封装了大部分集成学习方法,包括Bagging(自助法)、Boosting(提升法)、Staking(堆叠法)
4、 总结
本篇以鸢尾花iris数据集、随机森林模型和梯度提升为示例,从代码层面讲述监督学习和集成学习的相关知识。