机器学习训练营——机器学习爱好者的自由交流空间(入群联系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讲】特征提取集成方法相关推荐

  1. 用Python增强Excel的3大集成方法及用途

    没有人能躲过Microsoft Excel --你要不就很爱它,要不就是很讨厌它.也许在大学毕业之前,Excel只是考试周才会见几面的朋友,关系仅限脸熟.但当工作进入企业之后,你会发现假如Excel消 ...

  2. Python编程系列教程第12讲——属性和方法

    视频地址:http://v.youku.com/v_show/id_XNTgyOTg4NjQ4.html 普及网络安全知识,推动信息技术发展. 为祖国的网络安全撑起一片蓝天,为网络安全爱好者构建一方家 ...

  3. python装饰器实例-基于Python 装饰器装饰类中的方法实例

    title: Python 装饰器装饰类中的方法 comments: true date: 2017-04-17 20:44:31 tags: ['Python', 'Decorate'] categ ...

  4. python机器学习库sklearn——集成方法(Bagging、Boosting、随机森林RF、AdaBoost、GBDT)

    分享一个朋友的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!大家可以看看是否对自己有帮助:点击打开 docker/kubernetes入门视频教程 全栈工程师开发手册 (作者:栾鹏) pyth ...

  5. python文件对象提供了3个读方法、分别是-Python读写文件模式和文件对象方法实例详解...

    本文实例讲述了Python读写文件模式和文件对象方法.分享给大家供大家参考,具体如下: 一. 读写文件模式 利用open() 读写文件时,将会返回一个 file 对象,其基本语法格式如: open ( ...

  6. python list列表排序的两种方法及实例讲解

    对List进行排序,Python提供了两个方法 方法1.用List的内建函数list.sort进行排序 list.sort(func=None, key=None, reverse=False) Py ...

  7. 什么是python中子类父类_零基础入门:python中子类继承父类的__init__方法实例

    前言: 今天为大家带来的内容是零基础入门:python中子类继承父类的__init__方法实例!具有不错的参考意义,希望在此能够帮助到各位!(喜欢的话记得点赞转发关注不迷路哦) 使用Python写过面 ...

  8. python调用公共方法_common: 这是一个Python的公共工具类,集成了各种主要的python常用方法...

    common 介绍 这是一个Python的公共工具类,集成了各种主要的python常用方法. 本人是做java开发的,学习python很多情况下是把他当做一个脚本来使用,在使用的过程中,发现很多的功能 ...

  9. python怎么模拟浏览器交互_干货分享:python爬虫模拟浏览器的两种方法实例分析(赶紧收藏)...

    今天为大家带来的内容是:干货分享:python爬虫模拟浏览器的两种方法实例分析(赶紧收藏) 文章主要介绍了python爬虫模拟浏览器的两种方法,结合实例形式分析了Python爬虫模拟浏览器的两种常见操 ...

  10. Python将绝对路径转换为相对路径方法实例

    本篇文章主要讲解,python绝对路径转换为相对路径的方法 作者:任聪聪 通过python转换为相对路径,实际上是有多种方法的,一般可以通过正则替换盘符,replace进行替换等等. 本次主要讲解利用 ...

最新文章

  1. 百度编辑器(1.4.3—net版)上传图片路径及其他配置
  2. 使用Google 官方的控件SwipeRefreshLayout实现下拉刷新功能
  3. spring aop实现log 日志跟踪
  4. H5Stream播放RTSP流视频
  5. Codeforces Round #535 (Div. 3) [codeforces div3 难度测评]
  6. 并发编程(原子性、可见性、一致性)
  7. python统计程序运行时间-如何方便地统计 Python 程序每一个函数、每一行代码执行所花的时间?...
  8. kindle刷机ttl_亚马逊卡大树kindle voyage修复刷机救砖KV死机变砖忘记密码维修
  9. 天骄辅助外挂制作,寻求合作
  10. C语言快速 入门 一篇就够
  11. linux系统如何安装mtk驱动程序,模块编译问题 给MTK芯片的wifi网卡编译linux驱动 系统是mint...
  12. win10便签常驻桌面_出奇的好用!聊聊被习惯性忽视的Win10“便笺”
  13. 中英文切换遇到的坑-总结
  14. 电脑端破解之破解注册码
  15. xcode 快速生成代码块
  16. 华红兵:2019带你探索“共享服务模式”
  17. 支付宝的架构到底有多牛逼?
  18. 一文速学数模-时序预测模型(四)二次指数平滑法和三次指数平滑法详解+Python代码实现
  19. 软考高级系统分析师知识点整理
  20. 关于css3border-radius及transfrom样式的学习及简单尝试运用.

热门文章

  1. 服务器保持与Mysql的连接
  2. Unity3D之Assetbundle
  3. ASP.NET程序中 抛出Thread was being aborted. 异常(转)
  4. 思科路由器RIP路由汇总
  5. HCIE Security 防火墙转发流程及相关知识点 备考笔记(幕布)
  6. 有关STL使用上的一些注意事项。关于某些函数的参数问题。
  7. Broadleaf概念
  8. 为何AI也学会了种族和性别歧视?
  9. GNU make manual 翻译(六十六)
  10. 最常用的四种设计模式