Python进行特征提取的示例代码


Posted in Python onOctober 15, 2020
#过滤式特征选择
#根据方差进行选择,方差越小,代表该属性识别能力很差,可以剔除
from sklearn.feature_selection import VarianceThreshold
x=[[100,1,2,3],
  [100,4,5,6],
  [100,7,8,9],
  [101,11,12,13]]
selector=VarianceThreshold(1) #方差阈值值,
selector.fit(x)
selector.variances_ #展现属性的方差
selector.transform(x)#进行特征选择
selector.get_support(True) #选择结果后,特征之前的索引
selector.inverse_transform(selector.transform(x)) #将特征选择后的结果还原成原始数据
                         #被剔除掉的数据,显示为0
                         
#单变量特征选择
from sklearn.feature_selection import SelectKBest,f_classif
x=[[1,2,3,4,5],
  [5,4,3,2,1],
  [3,3,3,3,3],
  [1,1,1,1,1]]
y=[0,1,0,1]
selector=SelectKBest(score_func=f_classif,k=3)#选择3个特征,指标使用的是方差分析F值
selector.fit(x,y)
selector.scores_ #每一个特征的得分
selector.pvalues_
selector.get_support(True) #如果为true,则返回被选出的特征下标,如果选择False,则
              #返回的是一个布尔值组成的数组,该数组只是那些特征被选择
selector.transform(x)
 
 
#包裹时特征选择
from sklearn.feature_selection import RFE
from sklearn.svm import LinearSVC #选择svm作为评定算法
from sklearn.datasets import load_iris #加载数据集
iris=load_iris()
x=iris.data
y=iris.target
estimator=LinearSVC()
selector=RFE(estimator=estimator,n_features_to_select=2) #选择2个特征
selector.fit(x,y)
selector.n_features_  #给出被选出的特征的数量
selector.support_   #给出了被选择特征的mask
selector.ranking_   #特征排名,被选出特征的排名为1
 
#注意:特征提取对于预测性能的提升没有必然的联系,接下来进行比较;
from sklearn.feature_selection import RFE
from sklearn.svm import LinearSVC
from sklearn import cross_validation
from sklearn.datasets import load_iris
 
#加载数据
iris=load_iris()
X=iris.data
y=iris.target
#特征提取
estimator=LinearSVC()
selector=RFE(estimator=estimator,n_features_to_select=2)
X_t=selector.fit_transform(X,y)
#切分测试集与验证集
x_train,x_test,y_train,y_test=cross_validation.train_test_split(X,y,
                  test_size=0.25,random_state=0,stratify=y)
x_train_t,x_test_t,y_train_t,y_test_t=cross_validation.train_test_split(X_t,y,
                  test_size=0.25,random_state=0,stratify=y)
 
 
clf=LinearSVC()
clf_t=LinearSVC()
clf.fit(x_train,y_train)
clf_t.fit(x_train_t,y_train_t)
print('origin dataset test score:',clf.score(x_test,y_test))
#origin dataset test score: 0.973684210526
print('selected Dataset:test score:',clf_t.score(x_test_t,y_test_t))
#selected Dataset:test score: 0.947368421053
 
import numpy as np
from sklearn.feature_selection import RFECV
from sklearn.svm import LinearSVC
from sklearn.datasets import load_iris
iris=load_iris()
x=iris.data
y=iris.target
estimator=LinearSVC()
selector=RFECV(estimator=estimator,cv=3)
selector.fit(x,y)
selector.n_features_
selector.support_
selector.ranking_
selector.grid_scores_

#嵌入式特征选择
import numpy as np
from sklearn.feature_selection import SelectFromModel
from sklearn.svm import LinearSVC
from sklearn.datasets import load_digits
digits=load_digits()
x=digits.data
y=digits.target
estimator=LinearSVC(penalty='l1',dual=False)
selector=SelectFromModel(estimator=estimator,threshold='mean')
selector.fit(x,y)
selector.transform(x)
selector.threshold_
selector.get_support(indices=True)
 
#scikitlearn提供了Pipeline来讲多个学习器组成流水线,通常流水线的形式为:将数据标准化,
#--》特征提取的学习器————》执行预测的学习器,除了最后一个学习器之后,
#前面的所有学习器必须提供transform方法,该方法用于数据转化(如归一化、正则化、
#以及特征提取
#学习器流水线(pipeline)
from sklearn.svm import LinearSVC
from sklearn.datasets import load_digits
from sklearn import cross_validation
from sklearn.linear_model import LogisticRegression
from sklearn.pipeline import Pipeline
def test_Pipeline(data):
  x_train,x_test,y_train,y_test=data
  steps=[('linear_svm',LinearSVC(C=1,penalty='l1',dual=False)),
      ('logisticregression',LogisticRegression(C=1))]
  pipeline=Pipeline(steps)
  pipeline.fit(x_train,y_train)
  print('named steps',pipeline.named_steps)
  print('pipeline score',pipeline.score(x_test,y_test))
  
if __name__=='__main__':
  data=load_digits()
  x=data.data
  y=data.target
  test_Pipeline(cross_validation.train_test_split(x,y,test_size=0.25,
                  random_state=0,stratify=y))

以上就是Python进行特征提取的示例代码的详细内容,更多关于Python 特征提取的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python多线程编程简单介绍
Apr 13 Python
python定时器(Timer)用法简单实例
Jun 04 Python
Python中的命令行参数解析工具之docopt详解
Mar 27 Python
Python3实现发送QQ邮件功能(文本)
Dec 15 Python
Python3.5.3下配置opencv3.2.0的操作方法
Apr 02 Python
python 矩阵增加一行或一列的实例
Apr 04 Python
PYQT5设置textEdit自动滚屏的方法
Jun 14 Python
Python3简单爬虫抓取网页图片代码实例
Aug 26 Python
Python可变参数会自动填充前面的默认同名参数实例
Nov 18 Python
使用Python脚本从文件读取数据代码实例
Jan 19 Python
Python合并多张图片成PDF
Jun 09 Python
Python爬虫基础之简单说一下scrapy的框架结构
Jun 26 Python
Python通过递归函数输出嵌套列表元素
Oct 15 #Python
Python安装第三方库攻略(pip和Anaconda)
Oct 15 #Python
Python return语句如何实现结果返回调用
Oct 15 #Python
python 进程池pool使用详解
Oct 15 #Python
python 输入字符串生成所有有效的IP地址(LeetCode 93号题)
Oct 15 #Python
Python3使用 GitLab API 进行批量合并分支
Oct 15 #Python
10款最佳Python开发工具推荐,每一款都是神器
Oct 15 #Python
You might like
如何限制访问者的ip(PHPBB的代码)
2006/10/09 PHP
提升PHP执行速度全攻略(上)
2006/10/09 PHP
php 在文件指定行插入数据的代码
2010/05/08 PHP
详解php的魔术方法__get()和__set()使用介绍
2012/09/19 PHP
php中\r \r\n \t的区别示例介绍
2014/02/08 PHP
php抓取网站图片并保存的实现方法
2015/10/29 PHP
IE7提供XMLHttpRequest对象为兼容
2007/03/08 Javascript
JQuery浮动DIV提示信息并自动隐藏的代码
2010/08/29 Javascript
jQuery对象数据缓存Cache原理及jQuery.data方法区别介绍
2013/04/07 Javascript
js替换字符串的所有示例代码
2013/07/23 Javascript
jQuery实现tag便签去重效果的方法
2015/01/20 Javascript
jQuery语法小结(超实用)
2015/12/31 Javascript
bootstrap与Jquery UI 按钮样式冲突的解决办法
2016/09/23 Javascript
JS只能输入正整数的简单实例
2016/10/07 Javascript
angularjs中ng-bind-html的用法总结
2017/05/23 Javascript
node使用promise替代回调函数
2018/05/07 Javascript
如何实现一个webpack模块解析器
2018/10/24 Javascript
vue路由切换之淡入淡出的简单实现
2019/10/31 Javascript
[31:33]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS DT 第一场
2014/05/23 DOTA
[04:10]DOTA2英雄梦之声_第11期_圣堂刺客
2014/06/21 DOTA
python单例模式实例分析
2015/04/08 Python
Python调用SQLPlus来操作和解析Oracle数据库的方法
2016/04/09 Python
Django学习笔记之Class-Based-View
2017/02/15 Python
python字符串循环左移
2019/03/08 Python
python Matplotlib底图中鼠标滑过显示隐藏内容的实例代码
2019/07/31 Python
Python实现简单的猜单词小游戏
2020/10/28 Python
amazeui树节点自动展开折叠面板并选中第一个树节点的实现
2020/08/24 HTML / CSS
德国街头和运动文化高品质商店:BSTN Store
2017/08/26 全球购物
台湾旅游网站:灿星旅游
2018/10/11 全球购物
Nike加拿大官网:Nike.com (CA)
2019/04/09 全球购物
如何反序的迭代一个序列?how do I iterate over a sequence in reverse order
2012/02/04 面试题
3.15国际消费者权益日主题活动活动总结
2014/03/16 职场文书
中等生评语大全
2014/05/04 职场文书
个人授权委托书范本格式
2014/10/12 职场文书
2015年国际护士节演讲稿
2015/03/18 职场文书
Z-Order加速Hudi大规模数据集方案分析
2022/03/31 Servers