
[机器学习] 集成学习
发布日期:2021-05-07 06:19:33
浏览次数:20
分类:精选文章
本文共 1748 字,大约阅读时间需要 5 分钟。
文章目录
初识集成学习
通过建立几个模型来解决单一预测问题
随机、有放回抽样Bagging与随机森林
Bagging
随机采样+学习+集成随机森林
Bagging+决策树 一次选取一个样本,有放回抽样,重复n次(有重复的样本) 随机选取m个特征,m<< M, 建立决策树bagging集成优点
bagging+决策树/线性回归/逻辑回归=bagging集成学习方法api使用-泰坦尼克号
import pandas as pdimport numpy as npfrom sklearn.model_selection import train_test_splitfrom sklearn.model_selection import GridSearchCVfrom sklearn.feature_extraction import DictVectorizerfrom sklearn.ensemble import RandomForestClassifierdata = pd.read_csv("E:\\a.txt")data.head()# 确定特征值,目标值x = data[["pclass", "age", "sex"]]y = data["survived"]# 缺失值处理x["age"].fillna(value=data["age"].mean(), inplace=True)# 数据集划分x_train, x_test, y_train, y_test = train_test_split(x, y, random_state=22, test_size=0.2)# 特征工程(字典特征提取)x_train = x_train.to_dict(orient="records")x_test = x_test.to_dict(orient="records")transfer = DictVectorizer()x_train = transfer.fit_transform(x_train)x_test = transfer.fit_transform(x_test)estimator = RandomForestClassifier()param_grid = { "n_estimators":[120,200,300,500,800,1200], "max_depth":[5,8,15,25,30] }estimator = GridSearchCV(estimator, param_grid=param_grid, cv=3)estimator.fit(x_train, y_train)estimator.score(x_test, y_test)estimator.best_estimator_
Boosting
AdaBoost构造过程

bagging集成与boosting集成的区别
数据方面 Bagging:对数据进行采样训练; Boosting:根据前一-轮学习结果调整数据的重要性。 投票方面 Bagging:所有学习器平权投票; Boosting:对学习器进行加权投票。 学习顺序 Bagging的学习是并行的,每个学习器没有依赖关系; Boosting学习是串行,学习有先后顺序。 主要作用 Bagging主要用于提高泛化性能(解决过拟合,也可以说降低方差) Boosting主要用于提高训练精度(解决欠拟合, 也可以说降低偏差)api
from sklearn.ensemble import AdaBoostClassifier
XGBoost
XGBoost=二阶泰勒展开+boosting+决策树+正则化Boosting: XGBoost使 用Boosting提升思想对多个弱学习器进行迭代式学习
二阶泰勒展开:每-轮学习中,XGBoost对损失函数进行二阶泰勒展开,使用一阶和二阶梯度进行优化。 决策树:在每- -轮学习中,XGBoost使用决策树算法作为弱学习进行优化。 正则化:在优化过程中XGBoost为防止过拟合,在损失函数中加入惩罚项,限制决策树的叶子节点个数以及决策树叶子节点的值。发表评论
最新留言
表示我来过!
[***.240.166.169]2025年04月12日 02时54分25秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Redis (三)——Linux 上安装 Redis
2021-05-07
java 重写(override)和重载(overload)区别
2021-05-07
java 多态类型转换
2021-05-07
常用正则表达式
2021-05-07
XML:采用XHTML和CSS设计可重用可换肤的WEB站点
2021-05-07
Java判断字符串是否为金额
2021-05-07
angr学习笔记(7)(malloc地址单元符号化)
2021-05-07
树状数组 模板总结
2021-05-07
结构型设计在工作中的一些经验总结
2021-05-07
如何提升员工体验 助力企业业务增长?这个棘手的问题终于被解决了!
2021-05-07
2020 AI 产业图谱启动,勾勒中国 AI 技术与行业生态
2021-05-07
Netty4服务端入门代码示例
2021-05-07
Spring源码:prepareBeanFactory(beanFactory);方法
2021-05-07
AcWing 828. 模拟栈
2021-05-07
(20200328已解决)从docker容器内复制文件到宿主机
2021-05-07
理解Docker ulimit参数
2021-05-07
OpenAI Gym简介及初级实例
2021-05-07
int 转 CString
2021-05-07
Edit编辑框自动换行与长度
2021-05-07
Java面向对象
2021-05-07