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共享引用(多个变量引用)示例代码
Dec 04 Python
Linux环境下MySQL-python安装过程分享
Feb 02 Python
python使用multiprocessing模块实现带回调函数的异步调用方法
Apr 18 Python
分数霸榜! python助你微信跳一跳拿高分
Jan 08 Python
python数据封装json格式数据
Mar 04 Python
Python+OpenCV采集本地摄像头的视频
Apr 25 Python
对django的User模型和四种扩展/重写方法小结
Aug 17 Python
在django admin详情表单显示中添加自定义控件的实现
Mar 11 Python
Python unittest单元测试框架及断言方法
Apr 15 Python
安装多个版本的TensorFlow的方法步骤
Apr 21 Python
python else语句在循环中的运用详解
Jul 06 Python
关于PySnooper 永远不要使用print进行调试的问题
Mar 04 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
Windows中安装Apache2和PHP4权威指南
2006/11/18 PHP
PHP中的gzcompress、gzdeflate、gzencode函数详解
2014/07/29 PHP
php获取服务器操作系统相关信息的方法
2016/10/08 PHP
Yii遍历行下每列数据的方法
2016/10/17 PHP
JavaScript中的eval()函数详解
2013/08/22 Javascript
js实现连续英文字符自动换行兼容ie6 ie7和firefox
2013/09/06 Javascript
jQuery filter函数使用方法
2014/05/19 Javascript
分享使用AngularJS创建应用的5个框架
2015/12/05 Javascript
详解javascript传统方法实现异步校验
2016/01/22 Javascript
Javascript 函数的四种调用模式
2016/11/05 Javascript
vue中如何实现变量和字符串拼接
2017/06/19 Javascript
jsonp跨域获取数据的基础教程
2018/07/01 Javascript
JS解惑之Object中的key是有序的么
2019/05/06 Javascript
JavaScript创建表格的方法
2020/04/13 Javascript
JavaScript闭包原理与用法学习笔记
2020/05/29 Javascript
原生js实现购物车功能
2020/09/23 Javascript
详细解读Python的web.py框架下的application.py模块
2015/05/02 Python
Django中使用CORS实现跨域请求过程解析
2019/08/05 Python
使用CSS3来制作消息提醒框
2015/07/12 HTML / CSS
HTML5中实现拖放效果无须借助javascript
2012/12/26 HTML / CSS
使用canvas来完成线性渐变和径向渐变的功能的方法示例
2019/07/25 HTML / CSS
德国最大的网上鞋店之一:Schuhe24.de
2017/06/10 全球购物
美国高级工作服品牌:Carhartt
2018/01/25 全球购物
WebSphere 应用服务器都支持哪些认证
2013/12/26 面试题
Internal修饰符有什么含义
2013/07/10 面试题
27个经典Linux面试题及答案,你知道几个?
2013/01/10 面试题
电信专业毕业生推荐信
2013/11/18 职场文书
电脑销售顾问自荐信
2014/01/29 职场文书
小学生竞选班长演讲稿
2014/04/24 职场文书
平安家庭示范户事迹
2014/06/02 职场文书
装饰工程师岗位职责
2014/06/08 职场文书
应届生自荐书
2014/06/23 职场文书
党员群众路线对照检查材料思想汇报
2014/09/17 职场文书
交通事故协议书范文
2014/10/23 职场文书
学生检讨书范文
2015/01/27 职场文书
CSS3点击按钮圆形进度打钩效果的实现代码
2021/03/30 HTML / CSS