MachineLearning—集成学习(Ensemble Learning)

集成学习是提高模型鲁棒性的重要方法,在数据、特征处理之后的阶段,如果在算法方面没有提升,可以尝试在模型集成方面发力,可以收到意想不到的结果。但并不是使用集成学习方法就一定会提高结果。例如stacking方法,理论讲其结果渐进等价于第一层最优子模型结果,使用stacking至少不会大幅度降低模型效果。

一、投票方法

常用的有软投票和硬投票两种,例如,支持向量机可以输出各个样本属于某一类的概率,将多个模型的这种结果进行加权,便得到软投票的集成结果。硬投票更简单,直接多数服从少数即可。

二、Bagging

最常用的莫过于随机森林方法,其思想在随机森林原理这篇文章中有详细介绍。在构建模型的过程中,随机有放回的采样部分样本训练基学习器,最后将基学习器的结果进行融合就是bagging的最终结果。

三、Boosting

提升方法在boosting原理这篇文章中有较为详细的介绍。Boosting算法可以并行处理,而Boosting的思想是一种迭代的方法,每一次训练的时候都更加关心分类错误的样例,给这些分类错误的样例增大权重,下一次迭代的目标就是能够更容易辨别出上一轮分类错误的样例。最终将这些弱分类器进行加权。

四、Stacking

接下来重点介绍一下Stacking方法。

这里写图片描述

 

df = pd.read_csv('C:/Users/Titanic/train.csv')
test = df.sample(frac=0.1)
test.to_csv('C:/Users/Titanic/test.csv')

train = df[~df.PassengerId.isin(test.PassengerId)]
train.to_csv('C:/Users/Titanic/train.csv')

In [43]:

import pandas as pd
usedColumnFeature = ['PassengerId','Pclass','Sex','Age','SibSp','Parch','Fare','Embarked','Survived']
train = pd.read_csv('C:/Users/Titanic/train.csv', usecols=usedColumnFeature)
train.dropna(subset=['Age'],how='any',axis=0,inplace=True)
test = pd.read_csv('C:/Users/Titanic/test.csv', usecols=usedColumnFeatur
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值