【Python实例第2讲】特征提取集成方法
机器学习训练营——机器学习爱好者的自由交流空间(入群联系qq:2279055353)
在现实场景的例子里,有很多从数据集提取特征的方法。通常,将几种特征提取方法组合使用会收到更好的效果。本例显示怎样使用函数FeatureUnion
组合特征。这里要用到scikit-learn自带数据集——“鸢尾花数据集”。
数据集介绍
“鸢尾花(Iris)数据集”位于datasets
里,是由著名统计学家Sir Ronald Fisher在1936年收集整理的数据集,作为机器学习算法的基准数据集而闻名。它包括3个品种的鸢尾花(Iris setosa, Iris virginica and Iris versicolor), 每个品种50个样本。每个样本有4个特征,分别是
Sepal.Length(花萼长度)
Sepal.Width(花萼宽度)
Petal.Length(花瓣长度)
Petal.Width(花瓣宽度)
特征值是正浮点数,单位是厘米。目标变量是鸢尾花的类别(Iris Setosa(山鸢尾)、Iris Versicolour(杂色鸢尾),Iris Virginica(维吉尼亚鸢尾))。
下面,让我们在python环境下载入Iris数据集,看一下它的数据形态。
from sklearn.datasets import load_iris
iris = load_iris()
print(iris.feature_names)
print(iris.target_names)
print(iris.data)
print(iris.target)
下面显示Iris的一部分特征数据
target数据
实例详解
首先,从scikit-learn
里导入必需的模块与函数。
from sklearn.pipeline import Pipeline, FeatureUnion
from sklearn.model_selection import GridSearchCV
from sklearn.svm import SVC
from sklearn.datasets import load_iris
from sklearn.decomposition import PCA
from sklearn.feature_selection import SelectKBest
第一步:数据加载
加载Iris数据集,并且将特征数据和目标数据分成两个对象。
iris = load_iris()
X, y = iris.data, iris.target
第二步:特征提取
主成分法
建立包括两个主成分的主成分对象pca
. 主成分是一种重要的线性降维方法,它的基本原理是通过对数据进行奇异值分解(Singular Value Decomposition), 实现将高维数据投影到低维空间,从而降低了特征的维数。
pca = PCA(n_components=2)
最大分数法
建立最大分数特征选择器selection
. 它的基本原理是根据方差分析计算类标签与特征之间的F值,进而选择F值最大的特征。
selection = SelectKBest(k=1)
集成方法
组合pca与单变量选择器,建立特征选择估计量。
combined_features = FeatureUnion([("pca", pca), ("univ_select", selection)])
参数是元组(tuples)型的,在每一个元组里,前一半是转换器的名字,后一半是转换器。建立估计量后,使用它的组合特征转换数据集。
X_features = combined_features.fit(X, y).transform(X)
建立线性核函数的C-支持向量分类器。
svm = SVC(kernel="linear")
建立combined_features和svm转换器的管道(pipeline), 最终得到一个估计量。在管道里,连续地应用转换。管道的中间步必须是转换,即执行拟合与估计方法。最终的估计量仅仅需要执行估计。使用参数memory
存储管道里的转换器。建立管道的目的是把不同的步骤集合起来,经设置不同的参数,一并进行交叉验证。
pipeline = Pipeline([("features", combined_features), ("svm", svm)])
最后,在三种特征提取方法上做网格搜索。
param_grid = dict(features__pca__n_components=[1, 2, 3],features__univ_select__k=[1, 2],svm__C=[0.1, 1, 10])grid_search = GridSearchCV(pipeline, param_grid=param_grid, verbose=10)
grid_search.fit(X, y)
print(grid_search.best_estimator_)
精彩内容,请关注微信公众号:统计学习与大数据
【Python实例第2讲】特征提取集成方法相关推荐
- 用Python增强Excel的3大集成方法及用途
没有人能躲过Microsoft Excel --你要不就很爱它,要不就是很讨厌它.也许在大学毕业之前,Excel只是考试周才会见几面的朋友,关系仅限脸熟.但当工作进入企业之后,你会发现假如Excel消 ...
- Python编程系列教程第12讲——属性和方法
视频地址:http://v.youku.com/v_show/id_XNTgyOTg4NjQ4.html 普及网络安全知识,推动信息技术发展. 为祖国的网络安全撑起一片蓝天,为网络安全爱好者构建一方家 ...
- python装饰器实例-基于Python 装饰器装饰类中的方法实例
title: Python 装饰器装饰类中的方法 comments: true date: 2017-04-17 20:44:31 tags: ['Python', 'Decorate'] categ ...
- python机器学习库sklearn——集成方法(Bagging、Boosting、随机森林RF、AdaBoost、GBDT)
分享一个朋友的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!大家可以看看是否对自己有帮助:点击打开 docker/kubernetes入门视频教程 全栈工程师开发手册 (作者:栾鹏) pyth ...
- python文件对象提供了3个读方法、分别是-Python读写文件模式和文件对象方法实例详解...
本文实例讲述了Python读写文件模式和文件对象方法.分享给大家供大家参考,具体如下: 一. 读写文件模式 利用open() 读写文件时,将会返回一个 file 对象,其基本语法格式如: open ( ...
- python list列表排序的两种方法及实例讲解
对List进行排序,Python提供了两个方法 方法1.用List的内建函数list.sort进行排序 list.sort(func=None, key=None, reverse=False) Py ...
- 什么是python中子类父类_零基础入门:python中子类继承父类的__init__方法实例
前言: 今天为大家带来的内容是零基础入门:python中子类继承父类的__init__方法实例!具有不错的参考意义,希望在此能够帮助到各位!(喜欢的话记得点赞转发关注不迷路哦) 使用Python写过面 ...
- python调用公共方法_common: 这是一个Python的公共工具类,集成了各种主要的python常用方法...
common 介绍 这是一个Python的公共工具类,集成了各种主要的python常用方法. 本人是做java开发的,学习python很多情况下是把他当做一个脚本来使用,在使用的过程中,发现很多的功能 ...
- python怎么模拟浏览器交互_干货分享:python爬虫模拟浏览器的两种方法实例分析(赶紧收藏)...
今天为大家带来的内容是:干货分享:python爬虫模拟浏览器的两种方法实例分析(赶紧收藏) 文章主要介绍了python爬虫模拟浏览器的两种方法,结合实例形式分析了Python爬虫模拟浏览器的两种常见操 ...
- Python将绝对路径转换为相对路径方法实例
本篇文章主要讲解,python绝对路径转换为相对路径的方法 作者:任聪聪 通过python转换为相对路径,实际上是有多种方法的,一般可以通过正则替换盘符,replace进行替换等等. 本次主要讲解利用 ...
最新文章
- 百度编辑器(1.4.3—net版)上传图片路径及其他配置
- 使用Google 官方的控件SwipeRefreshLayout实现下拉刷新功能
- spring aop实现log 日志跟踪
- H5Stream播放RTSP流视频
- Codeforces Round #535 (Div. 3) [codeforces div3 难度测评]
- 并发编程(原子性、可见性、一致性)
- python统计程序运行时间-如何方便地统计 Python 程序每一个函数、每一行代码执行所花的时间?...
- kindle刷机ttl_亚马逊卡大树kindle voyage修复刷机救砖KV死机变砖忘记密码维修
- 天骄辅助外挂制作,寻求合作
- C语言快速 入门 一篇就够
- linux系统如何安装mtk驱动程序,模块编译问题 给MTK芯片的wifi网卡编译linux驱动 系统是mint...
- win10便签常驻桌面_出奇的好用!聊聊被习惯性忽视的Win10“便笺”
- 中英文切换遇到的坑-总结
- 电脑端破解之破解注册码
- xcode 快速生成代码块
- 华红兵:2019带你探索“共享服务模式”
- 支付宝的架构到底有多牛逼?
- 一文速学数模-时序预测模型(四)二次指数平滑法和三次指数平滑法详解+Python代码实现
- 软考高级系统分析师知识点整理
- 关于css3border-radius及transfrom样式的学习及简单尝试运用.