集成模型

集成分类模型是综合考量多个分类器的预测结果,从而做出决策。

综合考量的方式大体分为两种:

1.利用相同的训练数据同时搭建多个独立的分类模型,然后通过投票的方式,以少数服从多数的原则作出最终的分类决策。(随机森林分类器)

2.按照一定次序搭建多个分类模型。这些模型之间彼此存在依赖关系。一般而言,每一个后续模型的加入都要对现有集成模型的综合性能有所贡献,进而不断提升更新过后的集成模型的性能。(梯度提升决策树)

代码1:

 #集成模型对泰坦尼克号乘客是否生还的预测

#导入pandas,并且重命名为pd

import pandas as pd

#通过互联网读取泰坦尼克乘客档案,并存储在变量titanic中

titanic=pd.read_csv('http://biostat.mc.vanderbilt.edu/wiki/pub/Main/DataSets/titanic.txt')

#观察前几行数据

print(titanic.head())

#查看数据统计特性

titanic.info()

X=titanic[['pclass','age','sex']]

# print(X)

#对当前选择的特征进行探查

X.info()

y=titanic[['survived']]

# print(y)

#对于缺失的年龄信息,我们使用全体乘客的平均年龄代替,

#填充age缺失值,使用平均数或中位数

X['age'].fillna(X['age'].mean(),inplace=True)

#查看数据特征

X.info()

from sklearn.cross_validation import train_test_split

#随机采样25%的数据用于测试,剩下的75%用于构建训练集合

X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.25,random_state=33)

#对类别型特征进行转换,成为特征向量

from sklearn.feature_extraction import DictVectorizer

vec=DictVectorizer(sparse=False)

X_train=vec.fit_transform(X_train.to_dict(orient='record'))

X_test=vec.transform(X_test.to_dict(orient='record'))

#使用单一决策树

from sklearn.tree import DecisionTreeClassifier

dtc=DecisionTreeClassifier()

dtc.fit(X_train,y_train)

dtc_y_pred=dtc.predict(X_test)

#使用随机森林

from sklearn.ensemble import RandomForestClassifier

rfc=RandomForestClassifier()

rfc.fit(X_train,y_train)

rfc_y_pred=rfc.predict(X_test)

#使用梯度提升决策树进行集成模型的训练以及预测分析

from sklearn.ensemble import GradientBoostingClassifier

gbc=GradientBoostingClassifier()

gbc.fit(X_train,y_train)

gbc_y_pred=gbc.predict(X_test)

#集成模型对泰坦尼克号乘客是否生还的预测性能

#使用模型自带的评估函数进行准确性测评

print('The Accuracy of decision tree is',dtc.score(X_test,y_test))

#从sklearn.metrics里导入classification_report模块

from sklearn.metrics import classification_report

print(classification_report(dtc_y_pred,y_test))

print('The Accuracy of random forest classifier is',rfc.score(X_test,y_test))

print(classification_report(rfc_y_pred,y_test))

print('The Accuracy of gradient tree boosting is',gbc.score(X_test,y_test))

print(classification_report(gbc_y_pred,y_test))

 
 

The Accuracy of decision tree is 0.7811550151975684

precision recall f1-score support

0 0.91 0.78 0.84 236

1 0.58 0.80 0.67 93

avg / total 0.81 0.78 0.79 329

The Accuracy of random forest classifier is 0.7811550151975684

precision recall f1-score support

0 0.91 0.78 0.84 236

1 0.58 0.80 0.67 93

avg / total 0.81 0.78 0.79 329

The Accuracy of gradient tree boosting is 0.790273556231003

precision recall f1-score support

0 0.92 0.78 0.84 239

1 0.58 0.82 0.68 90

avg / total 0.83 0.79 0.80 329

Python机器学习(基础篇---监督学习(集成模型))的更多相关文章

  1. Python机器学习基础教程-第2章-监督学习之决策树集成

    前言 本系列教程基本就是摘抄<Python机器学习基础教程>中的例子内容. 为了便于跟踪和学习,本系列教程在Github上提供了jupyter notebook 版本: Github仓库: ...

  2. Python机器学习基础教程-第2章-监督学习之决策树

    前言 本系列教程基本就是摘抄<Python机器学习基础教程>中的例子内容. 为了便于跟踪和学习,本系列教程在Github上提供了jupyter notebook 版本: Github仓库: ...

  3. Python机器学习基础教程-第2章-监督学习之线性模型

    前言 本系列教程基本就是摘抄<Python机器学习基础教程>中的例子内容. 为了便于跟踪和学习,本系列教程在Github上提供了jupyter notebook 版本: Github仓库: ...

  4. Python机器学习基础教程-第2章-监督学习之K近邻

    前言 本系列教程基本就是摘抄<Python机器学习基础教程>中的例子内容. 为了便于跟踪和学习,本系列教程在Github上提供了jupyter notebook 版本: Github仓库: ...

  5. Python 机器学习实战 —— 无监督学习(上)

    前言 在上篇<Python 机器学习实战 -- 监督学习>介绍了 支持向量机.k近邻.朴素贝叶斯分类 .决策树.决策树集成等多种模型,这篇文章将为大家介绍一下无监督学习的使用.无监督学习顾 ...

  6. Python 机器学习实战 —— 无监督学习(下)

    前言 在上篇< Python 机器学习实战 -- 无监督学习(上)>介绍了数据集变换中最常见的 PCA 主成分分析.NMF 非负矩阵分解等无监督模型,举例说明使用使用非监督模型对多维度特征 ...

  7. Python机器学习基础教程

    介绍 本系列教程基本就是搬运<Python机器学习基础教程>里面的实例. Github仓库 使用 jupyternote book 是一个很好的快速构建代码的选择,本系列教程都能在我的Gi ...

  8. Python机器学习基础教程-第1章-鸢尾花的例子KNN

    前言 本系列教程基本就是摘抄<Python机器学习基础教程>中的例子内容. 为了便于跟踪和学习,本系列教程在Github上提供了jupyter notebook 版本: Github仓库: ...

  9. Python机器学习(基础篇---监督学习(线性分类器))

    监督学习经典模型 机器学习中的监督学习模型的任务重点在于,根据已有的经验知识对未知样本的目标/标记进行预测.根据目标预测变量的类型不同,我们把监督学习任务大体分为分类学习与回归预测两类.监督学习任务的 ...

随机推荐

  1. Windows 循环根据进程名称 存在则删除该进程

    @echo off:Looptasklist | findstr /i "javaw.exe" >nul 2>nul && (taskkill -f / ...

  2. sqlserver存储过程的使用

    参考网址:https://www.cnblogs.com/chaoa/articles/3894311.html(存储过程)    https://www.cnblogs.com/selene/p/4 ...

  3. Asp.net core Identity + identity server + angular 学习笔记 (第三篇)

    register -> login 讲了 我们来讲讲 forgot password -> reset password  和 change password 吧 先来 forgot pa ...

  4. 什么是LDAP?

    LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP.它是基于X.500标准的,但是简单多了并且可以根据需要定制.与X ...

  5. Windows server2008服务器设置多用户登录

    添加用户 右击我的电脑-->管理-->本地用户和组-->新用户 启用远程服务并添加远程用户 启用 右键我的电脑--->属性--->远程设置--->勾上允许远程连接到 ...

  6. 初识Log4Net

    刚刚了解log4net,根据自己的理解翻译了一下比较重要的东西.详细状况请见log4net官方网站 log4net是一种帮助程序员将日志语句输出到各种目标文件的输出工具,有了log4net,就可以在运 ...

  7. 【堆】【洛谷例题】p1090 p1334 p1177

    (都是比较简单的典型的而且都是小根堆的例题) p1090 合并果子[传送门] 算法分析:要尽量使用最小的体力合并完所有果子,那么每次合并的两堆果子应该是这所有堆中最小的一个(因为越先合并的堆要被算的次 ...

  8. Sping AOP Capabilities and Goals

    Spring AOP是用纯的java实现的.不需要任何个性的实现过程.Spring AOP不需要控制类加载器,并且它适用于Servlet容器或者应用服务器. Spring AOP当前只支持方法执行的连 ...

  9. 简易OA漫谈之工作流设计(六,快捷表单和动态表单)

    如果没有表单设计功能,我们一般建物理表,再把表单挂接到流程, 我们可以把外接表单的地址填到表单地址中,地址中会传递一个id. 如果使用外接表单,在审批的时候可能会“不太友好”,因为在审批单上看不到任何 ...

  10. ckeditor5字体颜色,字体背景颜色设置显示

    在config.js中添加相关代码: config.allowedContent=true;//关闭标签过滤, config.colorButton_enableAutomatic = true; c ...