机器学习训练营——机器学习爱好者的自由交流空间(入群联系qq:2279055353)

这是一个单变量特征选择的例子。这个例子将无信息的噪因特征添加到iris数据集里。对于每一个特征,我们画出单变量特征选择的p-value和一个SVM对应的权重。结果显示:有信息的特征具有更大的权值。

在整个的特征集里,仅仅有4个是显著的,它们具有最高的单变量特征选择分数。SVM同时也选择了很多无信息的特征。在SVM之前应用单变量特征选择,能够增加显著的特征的权值,这样也改善了分类的效果。

实例代码

import numpy as np
import matplotlib.pyplot as pltfrom sklearn import datasets, svm
from sklearn.feature_selection import SelectPercentile, f_classif# #############################################################################
# Import some data to play with# The iris dataset
iris = datasets.load_iris()# Some noisy data not correlated
E = np.random.uniform(0, 0.1, size=(len(iris.data), 20))# Add the noisy data to the informative features
X = np.hstack((iris.data, E))
y = iris.targetplt.figure(1)
plt.clf()X_indices = np.arange(X.shape[-1])# #############################################################################
# Univariate feature selection with F-test for feature scoring
# We use the default selection function: the 10% most significant features
selector = SelectPercentile(f_classif, percentile=10)
selector.fit(X, y)
scores = -np.log10(selector.pvalues_)
scores /= scores.max()
plt.bar(X_indices - .45, scores, width=.2,label=r'Univariate score ($-Log(p_{value})$)', color='darkorange',edgecolor='black')# #############################################################################
# Compare to the weights of an SVM
clf = svm.SVC(kernel='linear')
clf.fit(X, y)svm_weights = (clf.coef_ ** 2).sum(axis=0)
svm_weights /= svm_weights.max()plt.bar(X_indices - .25, svm_weights, width=.2, label='SVM weight',color='navy', edgecolor='black')clf_selected = svm.SVC(kernel='linear')
clf_selected.fit(selector.transform(X), y)svm_weights_selected = (clf_selected.coef_ ** 2).sum(axis=0)
svm_weights_selected /= svm_weights_selected.max()plt.bar(X_indices[selector.get_support()] - .05, svm_weights_selected,width=.2, label='SVM weights after selection', color='c',edgecolor='black')plt.title("Comparing feature selection")
plt.xlabel('Feature number')
plt.yticks(())
plt.axis('tight')
plt.legend(loc='upper right')
plt.show()

精彩内容,请关注微信公众号:统计学习与大数据

【Python实例第33讲】单变量特征选择相关推荐

  1. 单变量特征选择:Univariate feature selection

    sklearn中的单变量特征选择 单变量的特征选择是通过基于一些单变量的统计度量方法来选择最好的特征,比如卡方检测等.Scikit-learn 将单变量特征选择的学习器作为实现了 transform方 ...

  2. 特征选择-单变量特征选择

    1.SelectKBest可以依据相关性对特征进行选择,保留k个评分最高的特征. ①方差分析 分类问题使用f_classif,回归问题使用f_regression. f_classif:分类任务 跟目 ...

  3. 使用通用的单变量选择特征选择提高Kaggle分数

    Kaggle 是全球首屈一指的数据科学网,Kaggle 现在每月提供表格竞赛,为像我这样的新手提供提高该领域技能的机会.因为 Kaggle 提供了一个很好的机会来提高我的数据科学技能,所以我总是期待着 ...

  4. python中可选参数的特征_sklearn特征选择方法及参数

    本文结合sklearn中的特征选择的方法,讲解相关方法函数及参数的含义. 1. 移除低方差特征 方差越大的特征,可以认为是对目标变量越有影响的特征,是我们需要研究的特征.可以利用 VarianceTh ...

  5. python 私有和保护成员变量如何实现?—— 单下划线 开始的成员变量叫做保护变量,意思是只有类实例和子类实例能访问到这些变量; 双下划线 开始的是私有成员,意思是只有类对象自己能访问...

    默认情况下,Python中的成员函数和成员变量都是公开的(public),在python中没有类似public,private等关键词来修饰成员函数和成员变量. 在python中定义私有变量只需要在变 ...

  6. Python实例:使用Scipy求解单变量方程的根

    为什么80%的码农都做不了架构师?>>>    #coding:utf-8 ''' 单变量方程求解 ''' import scipy from scipy import optimi ...

  7. python两个乘号_Python小白入门:第一讲||变量和简单数据类型

    在第一讲中,你将学习: 如何使用变量: 如何创建描述性变量名以及如何消除名称错误和语法错误: 字符串是什么,以及如何使用小写.大写和首字母大写方式显示字符串: 使用空白来显示整洁的输出,以及如何剔除字 ...

  8. python数据科学-单变量数据分析

    总第85篇 01|背景: 我们在做机器学习之前,需要自己先对数据进行深入的了解(这些数据是什么类型,总共有多少数据,有没有缺失值,均值是多少之类的),只有自己对数据足够了解了,才能够更好地利用机器学习 ...

  9. 1-线性回归之单变量线性回归基本原理的python实现

    文章目录 单变量线性回归基本原理的python实现 1大环境准备 2jupyter工作路径的更改 3单变量线性回归 2.1数据读取 2.2特征构造 2.3其他准备 2.4线性回归主体 2.4.1计算代 ...

  10. Python零基础速成班-第2讲-Python基础(上),运算、变量、数据类型、输入输出

    Python零基础速成班-第2讲-Python基础(上),运算.变量.数据类型.输入输出 学习目标 使用print输出结果 运算及运算符 变量 数据类型(4种最常用的) 输入输出 课后作业(4必做+1 ...

最新文章

  1. Android源码大全
  2. SpringBootStarter种类
  3. layui给select下拉框赋值
  4. 使用C++版本Mxnett进行预测的注意事项
  5. lambda表达式优化反射_反射选择器表达式
  6. Mongo数据库搭建
  7. [js] innerHTML有什么缺点?
  8. JS-Demo1:JavaScript实现表格列拖动
  9. 关于Content-Type: multipart/form-data的支持
  10. DLM - stackglue 层
  11. java 读取office文件,java读取office文件
  12. [转] SQL Server中各个系统表的作用
  13. DataGridView突出
  14. Thinking in java Java编程思想 该不该读
  15. simscape做一个简单倒立摆
  16. 以太坊搭建私链(4)——新建账户、查看账户信息、转账、挖矿、添加节点等操作
  17. 联盛德 HLK-W806 (四): 软件SPI和硬件SPI驱动ST7735液晶LCD
  18. pid上限问题,linux进程pid达到最大值,linux进程数最大值修改方法
  19. 学生党matlab哪个版本最好用,学生党福音!仅4个GPU打造自己的BigGAN,PyTorch代码已开源...
  20. class ts 扩展方法_ts各种类型和用法

热门文章

  1. 方维分享系统修改,本地安装失败,后台无法登陆
  2. Tomcat详解(四)——Tomcat配置详解
  3. iStack详解(一)——iStack基本原理
  4. Linux通过源码编译安装程序;yum和源码安转软件包的区别
  5. HDOJ--1269--迷宫城堡
  6. 中国“互联网+酒店”专题研究报告2015
  7. 安装ESXI 5.5卡在LSI_MR3.V00解决方案
  8. DM***+GET***测试
  9. Linux下elasticsearch的安装与使用
  10. python的本质是什么意思_python生成器指的是什么意思