Python机器学习(基础篇---监督学习(集成模型))
集成模型
集成分类模型是综合考量多个分类器的预测结果,从而做出决策。
综合考量的方式大体分为两种:
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机器学习(基础篇---监督学习(集成模型))的更多相关文章
- Python机器学习基础教程-第2章-监督学习之决策树集成
		
前言 本系列教程基本就是摘抄<Python机器学习基础教程>中的例子内容. 为了便于跟踪和学习,本系列教程在Github上提供了jupyter notebook 版本: Github仓库: ...
 - Python机器学习基础教程-第2章-监督学习之决策树
		
前言 本系列教程基本就是摘抄<Python机器学习基础教程>中的例子内容. 为了便于跟踪和学习,本系列教程在Github上提供了jupyter notebook 版本: Github仓库: ...
 - Python机器学习基础教程-第2章-监督学习之线性模型
		
前言 本系列教程基本就是摘抄<Python机器学习基础教程>中的例子内容. 为了便于跟踪和学习,本系列教程在Github上提供了jupyter notebook 版本: Github仓库: ...
 - Python机器学习基础教程-第2章-监督学习之K近邻
		
前言 本系列教程基本就是摘抄<Python机器学习基础教程>中的例子内容. 为了便于跟踪和学习,本系列教程在Github上提供了jupyter notebook 版本: Github仓库: ...
 - Python 机器学习实战 —— 无监督学习(上)
		
前言 在上篇<Python 机器学习实战 -- 监督学习>介绍了 支持向量机.k近邻.朴素贝叶斯分类 .决策树.决策树集成等多种模型,这篇文章将为大家介绍一下无监督学习的使用.无监督学习顾 ...
 - Python 机器学习实战 —— 无监督学习(下)
		
前言 在上篇< Python 机器学习实战 -- 无监督学习(上)>介绍了数据集变换中最常见的 PCA 主成分分析.NMF 非负矩阵分解等无监督模型,举例说明使用使用非监督模型对多维度特征 ...
 - Python机器学习基础教程
		
介绍 本系列教程基本就是搬运<Python机器学习基础教程>里面的实例. Github仓库 使用 jupyternote book 是一个很好的快速构建代码的选择,本系列教程都能在我的Gi ...
 - Python机器学习基础教程-第1章-鸢尾花的例子KNN
		
前言 本系列教程基本就是摘抄<Python机器学习基础教程>中的例子内容. 为了便于跟踪和学习,本系列教程在Github上提供了jupyter notebook 版本: Github仓库: ...
 - Python机器学习(基础篇---监督学习(线性分类器))
		
监督学习经典模型 机器学习中的监督学习模型的任务重点在于,根据已有的经验知识对未知样本的目标/标记进行预测.根据目标预测变量的类型不同,我们把监督学习任务大体分为分类学习与回归预测两类.监督学习任务的 ...
 
随机推荐
- 关于Ocelot和Consul 实现GateWay(网关)   服务注册  负载均衡等方面
			
Ocelot 路由 请求聚合 服务发现 认证 鉴权 限流熔断 内置负载均衡器 Consul 自动服务发现 健康检查 通过Ocelot搭建API网关 服务注册 负载均衡 1. ...
 - 一步一步搭建vue项目
			
1 安装步骤 创建一个目录,我们这里定义为Vue 在Vue目录打开dos窗体,输入如下命令:vue create myproject 选择自定义 4. 先选择要安装的项目,我们这里选择4个 5 ...
 - PCA和PCoA
			
讲解很详细:http://blog.genesino.com/2016/10/PCA/ PCA分析一般流程: 中心化(centering, 均值中心化,或者中位数中心化),定标(scale,如果数据没 ...
 - 8.4 GOF设计模式三: 外观模式 Facade
			
GOF设计模式三: 外观模式 Facade  “现有系统”功能强大.复杂,开发“新系统”需要用到其中一部分,但又要增加一部 分新功能,该怎么办?4.1 Facade Pattern: Key Fea ...
 - IDEA(添加类注释以及方法注释)
			
添加类注释: File---Setting----Editor----Code Style-----File and Code Templates--------Class #if (${PA ...
 - weblogic安装部署ODM下jrules-res-xu-WL10.rar出现Can't find com.ibm.rules.res.xu.messages bundle异常
			
Windows: weblogic用户新建域文件夹里面,bin目录下找到setDomainEnv.cmd文件 在set JAVA_OPTIONS=%JAVA_OPTIONS% 后面添加: " ...
 - 102. Binary Tree Level Order Traversal二叉树层序遍历
			
网址:https://leetcode.com/problems/binary-tree-level-order-traversal/ 参考:https://www.cnblogs.com/grand ...
 - recyclerview 主活动里监听点击事件
			
记性真的不行啊...贴上来有时间多复习复习 主活动 package com.example.com.webtext; import android.content.Intent; import and ...
 - js里面的Object基本
			
属性名必须是字符串,非字符串对象不能用来作为一个对象属性的键,任何非字符串对象,包括number,可通过toString()方法,类型转换成一个字符串1 1,Object基本格式 <script ...
 - 【转】IIS请求筛选模块被配置为拒绝超过请求内容长度的请求
			
HTTP错误404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求,原因是Web服务器上的请求筛选被配置为拒绝该请求,因为内容长度超过配置的值(IIS 7 默认文件上传大 ...