[机器学习] 集成学习
发布日期: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为防止过拟合,在损失函数中加入惩罚项,限制决策树的叶子节点个数以及决策树叶子节点的值。

上一篇:记一次vue项目局部组件重构历程
下一篇:使用vue-cli 快速构建自己的vue模板

发表评论

最新留言

表示我来过!
[***.240.166.169]2025年04月12日 02时54分25秒