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使用pygame模块编写俄罗斯方块游戏的代码实例
Dec 08 Python
5种Python单例模式的实现方式
Jan 14 Python
Python实现XML文件解析的示例代码
Feb 05 Python
django session完成状态保持的方法
Nov 27 Python
对python多线程SSH登录并发脚本详解
Feb 14 Python
scrapy-redis的安装部署步骤讲解
Feb 27 Python
Python Pandas分组聚合的实现方法
Jul 02 Python
python3实现斐波那契数列(4种方法)
Jul 15 Python
安装完Python包然后找不到模块的解决步骤
Feb 13 Python
Python bytes string相互转换过程解析
Mar 05 Python
python求numpy中array按列非零元素的平均值案例
Jun 08 Python
Python中logging日志记录到文件及自动分割的操作代码
Aug 05 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
mysql,mysqli,PDO的各自不同介绍
2012/09/19 PHP
PHP检测用户语言的方法
2015/06/15 PHP
php workerman定时任务的实现代码
2018/12/23 PHP
JQuery 学习笔记 选择器之四
2009/07/23 Javascript
获取HTML DOM节点元素的方法的总结
2009/08/21 Javascript
基于jquery的direction图片渐变动画效果
2010/05/24 Javascript
JavaScript中的细节分析
2012/06/30 Javascript
JS删除数组元素的函数介绍
2013/03/27 Javascript
js简单实现根据身份证号码识别性别年龄生日
2013/11/29 Javascript
Angularjs基础知识及示例汇总
2015/01/22 Javascript
使用OpenLayers3 添加地图鼠标右键菜单
2015/12/29 Javascript
微信小程序 富文本转文本实例详解
2016/10/24 Javascript
原生JavaScript实现精美的淘宝轮播图效果示例【附demo源码下载】
2017/05/27 Javascript
纯js实现画一棵树的示例
2017/09/05 Javascript
js中实例与对象的区别讲解
2019/01/21 Javascript
微信小程序停止其他视频播放当前视频的实例代码
2019/12/25 Javascript
JavaScript隐式类型转换代码实例
2020/05/29 Javascript
Python的组合模式与责任链模式编程示例
2016/02/02 Python
Python的requests网络编程包使用教程
2016/07/11 Python
Python 2.7中文显示与处理方法
2018/07/16 Python
使用python采集脚本之家电子书资源并自动下载到本地的实例脚本
2018/10/23 Python
Python XML转Json之XML2Dict的使用方法
2019/01/15 Python
python @propert装饰器使用方法原理解析
2019/12/25 Python
基于SpringBoot构造器注入循环依赖及解决方式
2020/04/26 Python
预订从美国飞往印度的机票:MyTicketsToIndia
2017/05/19 全球购物
草莓网化妆品澳大利亚站:Strawberrynet AU
2017/12/18 全球购物
Jar包的作用是什么
2014/03/30 面试题
SQL Server里面什么样的视图才能创建索引
2015/04/17 面试题
金蝶的一道SQL笔试题
2012/12/18 面试题
运动会广播稿80字
2014/01/23 职场文书
会计专业毕业自荐书范文
2014/02/08 职场文书
"9.18"国耻日演讲稿范文
2014/09/14 职场文书
班子成员四风问题自我剖析材料
2014/09/29 职场文书
乡村教师党员四风问题对照检查材料思想汇报
2014/10/08 职场文书
七年级作文之环保作文
2019/10/17 职场文书
纯CSS3实现div按照顺序出入效果
2021/07/15 HTML / CSS