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

Adaboost代码实现-葡萄酒实例

本章会介绍如何使用py进行Adaboost算法

一、导入相关的库

import pandas as pd
from sklearn.preprocessing import LabelEncoder # 标签编码器
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import AdaBoostClassifier # 集成学习,AdaBoost用的决策树
from sklearn.metrics import accuracy_score

二、获取数据集

df_wine = pd.read_csv("wine0501.csv")
print(df_wine.info())
print(df_wine['Class label'].unique()) # [1,2,3] 葡萄酒类别有三种,但是决策树只能识别二叉树

三、数据预处理

3.1 从标签列(class label)中,过滤掉1类别,剩下2,3类别

df_wine  = df_wine[df_wine['Class label'] != 1]
print(df_wine['Class label'].unique())

3.2 获取特征列和标签列

x = df_wine[['Alcohol','Hue']] # 酒精和色泽
y = df_wine['Class label']

3.3 打印数据

print(x[:5])
print(y[:5])

3.4 通过标签编码器,把标签列转换为数值列

le = LabelEncoder()
y = le.fit_transform(y)
print(y) #[2,3] --> [0,1]

3.5 训练集、测试集划分

x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.2,random_state=23,stratify=y) #随机划分有可能出现极端情况,比如测试集里全是类别 1,类别 0 很少,导致测试集不能代表整体数据分布,模型评估结果失真。加上stratify可以保证抽样不会出现这种情况

四、特征工程,此处略

五、模型训练,预测,评估

5.1 场景1:单一决策树,充当弱分类器

# 4.1 创建模型对象
estimator1 = DecisionTreeClassifier(max_depth=3)
# 4.2 训练模型
estimator1.fit(x_train,y_train)
# 4.3 模型预测
y_pred1 = estimator1.predict(x_test)
print(f"单一决策树预测结果:{y_pred1}")
# 4.4 模型评估
print(f'单一决策树预测率{estimator1.score(x_test,y_test)}')
print(f'单一决策树预测率{accuracy_score(y_test,y_pred1)}') #这俩结果是一样的

5.2 场景2:AdaBoost -->集成学习,CART树,200棵

# 4.1 创建模型对象
# 参1:弱分类器(决策树对象),参2:弱分类器个数,参3:学习率,参4:集成算法
estimator2 = AdaBoostClassifier(estimator=estimator1, n_estimators=200,learning_rate=0.1,algorithm='SAMME')
# 4.2 训练模型
estimator2.fit(x_train,y_train)
# 4.3 模型预测
y_pred2 = estimator2.predict(x_test)
print(f"单一决策树预测结果:{y_pred2}")
# 4.4 模型评估
print(f'单一决策树预测率{estimator2.score(x_test,y_test)}')
print(f'单一决策树预测率{accuracy_score(y_test,y_pred2)}') #这俩结果是一样的
http://www.jsqmd.com/news/1051428/

相关文章:

  • 删除 c.的c++代码
  • 库拉莫托振子模型:从同步现象到Python模拟实现
  • 解放你的幻兽世界:3步搞定Palworld存档深度定制
  • Netcat正反向Shell攻防:内网渗透与纵深防御实战解析
  • 终极Avalonia实战指南:5大核心模块深度解析与跨平台UI开发秘籍
  • Windows 11 LTSC终极解决方案:3步快速恢复微软商店完整功能
  • DMA 双缓冲与事件驱动:STM32L4 传感器数据采集的功耗优化
  • 基于决策树算法的感冒预测3(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • Windows本地AI工作流重构:WSL2+OpenClaw+Deepseek-V4-Pro实战指南
  • emWin图表与表格控件实战:GRAPH_SCALE与HEADER深度解析
  • 提升Redux性能:reduce-reducers高级用法与最佳实践指南
  • 嵌入式系统I2C与SD卡接口寄存器级编程实战详解
  • 【防水工艺科普】微创防水施工相比传统砸砖,优势体现在哪些方面 - 青岛防水品牌推荐
  • AI驱动的代码质量流水线:自动Review、修复与测试一体化
  • 嵌入式GUI进阶:emWin抗锯齿、光标与多语言实战优化
  • 从零开始:VeighNa量化交易框架终极指南,新手也能快速上手AI策略开发
  • 智能革新:biliTickerBuy如何重新定义B站会员购抢票体验
  • HC08微控制器编程实战:MCUscribe工具核心功能与避坑指南
  • CANN/ge ToAscendString函数说明
  • CANN/GE图引擎算子列表API
  • useEffectReducer完全指南:让你的React副作用代码更清晰、更可维护
  • 无名杀武将扩展配置完全指南:5分钟打造你的专属三国战场
  • FastRTC:5分钟构建实时音视频AI应用的Python利器
  • 关于comfyui的xformers参数memory_efficient_attention.fa2F是unavailable(flash_attn)
  • 揭秘Bark:如何用Transformer架构实现革命性文本到音频生成
  • 2026多AI工具稳定使用方案:四层隔离架构与故障自愈实践
  • 深度学习图像去雾:物理建模与数据驱动的协同工程
  • Phenaki-PyTorch训练指南:构建自定义文本-视频数据集
  • AppleRa1n:5步免费解锁iOS 15-16设备激活锁的完整指南
  • 5个场景告诉你:为什么你的Windows需要这个“咖啡杯“防休眠神器