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的Supervisor进行进程监控以及自动启动
May 29 Python
Python操作Word批量生成文章的方法
Jul 28 Python
Python基于回溯法子集树模板解决0-1背包问题实例
Sep 02 Python
Python实现简单遗传算法(SGA)
Jan 29 Python
python2.x实现人民币转大写人民币
Jun 20 Python
python 遍历列表提取下标和值的实例
Dec 25 Python
opencv python Canny边缘提取实现过程解析
Feb 03 Python
From CSV to SQLite3 by python 导入csv到sqlite实例
Feb 14 Python
python实现超级马里奥
Mar 18 Python
python实现单张图像拼接与批量图片拼接
Mar 23 Python
虚拟机下载python是否需要联网
Jul 27 Python
Python办公自动化之教你如何用Python将任意文件转为PDF格式
Jun 28 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
php中使用Curl、socket、file_get_contents三种方法POST提交数据
2011/08/12 PHP
PHP使用header()输出图片缓存实例
2014/12/09 PHP
静态html文件执行php语句的方法(推荐)
2016/11/21 PHP
PHP利用Socket获取网站的SSL证书与公钥
2017/06/18 PHP
javascript Demo模态窗口
2009/12/06 Javascript
jQuery $.each遍历对象、数组用法实例
2015/04/16 Javascript
js仿黑客帝国字母掉落效果代码分享
2020/11/08 Javascript
jQuery简单实现tab选项卡切换效果
2016/06/20 Javascript
ES6正则表达式扩展笔记
2017/07/25 Javascript
详解webpack + react + react-router 如何实现懒加载
2017/11/20 Javascript
详解基于vue-cli配置移动端自适应
2018/01/13 Javascript
vue技术分享之你可能不知道的7个秘密
2018/04/09 Javascript
js实现移动端轮播图
2020/12/21 Javascript
js定义类的方法示例【ES5与ES6】
2019/07/30 Javascript
详解为element-ui的Select和Cascader添加弹层底部操作按钮
2020/02/07 Javascript
基于JS实现计算24点算法代码实例解析
2020/07/23 Javascript
wxPython学习之主框架实例
2014/09/28 Python
python映射列表实例分析
2015/01/26 Python
Python功能键的读取方法
2015/05/28 Python
python中的代码编码格式转换问题
2015/06/10 Python
Python3 伪装浏览器的方法示例
2017/11/23 Python
python 视频逐帧保存为图片的完整实例
2019/12/10 Python
Flask中endpoint的理解(小结)
2019/12/11 Python
浅谈keras的深度模型训练过程及结果记录方式
2020/01/24 Python
浅谈cv2.imread()和keras.preprocessing中的image.load_img()区别
2020/06/12 Python
Python 爬虫批量爬取网页图片保存到本地的实现代码
2020/12/24 Python
matplotlib grid()设置网格线外观的实现
2021/02/22 Python
python 求两个向量的顺时针夹角操作
2021/03/04 Python
英国亚马逊官方网站:Amazon.co.uk
2019/08/09 全球购物
什么是Smarty变量操作符?如何使用Smarty变量操作符
2014/07/18 面试题
类、抽象类、接口的差异
2016/06/13 面试题
仓库理货员岗位职责
2013/12/18 职场文书
学校个人对照检查材料
2014/08/26 职场文书
第二批党的群众路线教育实践活动总结报告
2014/10/30 职场文书
学生检讨书范文
2015/01/27 职场文书
大学生如何逃脱“毕业季创业队即散伙”魔咒?
2019/08/19 职场文书