[机器学习] 集成学习

初识集成学习

通过建立几个模型来解决单一预测问题
随机、有放回抽样

Bagging与随机森林

Bagging
随机采样+学习+集成

随机森林
Bagging+决策树
一次选取一个样本,有放回抽样,重复n次(有重复的样本)
随机选取m个特征,m<< M, 建立决策树

bagging集成优点
bagging+决策树/线性回归/逻辑回归=bagging集成学习方法

api使用-泰坦尼克号

import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.model_selection import GridSearchCV
from sklearn.feature_extraction import DictVectorizer
from sklearn.ensemble import RandomForestClassifier
data = 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为防止过拟合,在损失函数中加入惩罚项,限制决策树的叶子节点个数以及决策树叶子节点的值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

H4ppyD0g

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值