本篇内容介绍了“Python中怎么使用sklearn进行特征降维”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
0维 标量
1维 向量
2维 矩阵
概念
降维是指在某些限定条件下,降低随机变量(特征)个数,得到一组“不相关”主变量的过程
注:正是因为在进行训练的时候,我们都是使用特征进行学习,如果特征本身存在问题或者特征之间相关性较强,对于算法学习预测会影响较大
降维的两种方式:
特征选择主成分分析(可以理解为一种特征提取的方式)
①定义
数据中包含冗余或相关变量(或称特征、属性、指标等),旨在从原有特征中找出主要特征。
②方法
Filter(过滤式):主要探究特征本身特点、特征与特征和目标值之间关联
方差选择法:低方差特征过滤
相关系数
Embedded(嵌入式):算法自动选择特征(特征与目标值之间的关联)
决策树:信息熵、信息增益
正则化:L1、L2
深度学习:卷积等
③模块
sklearn.feature_selection
删除低方差的一些特征
特征方差小:某个特征很多样本的值比较相近
特征方差大:某个特征很多样本的值都有差别
API
sklearn.feature_selection.VarianceThreshold(threshold=0.0)
-删除所有低方差特征
-Variance.fit_transform(X)
X:numpy array格式的数据[n_samples,n_features]
返回值:训练集差异低于threshold的特征将被删除。默认值是保留所有非零方差特征,即删除所有样本中具有相同值的特征
代码演示
from sklearn.feature_selection import VarianceThreshold import pandas as pd def variance_demo(): #1.获取数据 data=pd.read_csv("data.TXT") print("data:\n", data) #2.实例化一个转换器类 transfer=VarianceThreshold(threshold=7) #3.调用fit_transform result=transfer.fit_transform(data) print("result:\n", result,result.shape) return None
皮尔逊相关系数(Pearson Correlation Coefficient)
反映变量之间相关关系密切程度的统计指标
公式
特点
相关系数的值介于-1与+1之间,即-1<=r<=+1,其性质如下:
当r>0时,表示两变量正相关,r<0时,两变量为负相关
当|r|=1时,表示两变量为完全相关,当r=0时,表示两变量间无相关关系
当0<|r|<1时,表示两变量存在一定程度的相关。且|r|越接近1,两变量间线性关系越密切;|r|越接近于0,表示两变量的线性相关越弱
一般可按三级划分:|r|<0.4为低度相关;0.4<=|r|<0.7为显著性相关;0.7<=|r|<1为高度线性相关
API
from scipy.stats import pearsonr -x:array -y:array -Returns:(Pearson`s correlation coefficient,p-value)
代码演示
from scipy.stats import pearsonr def p_demo(): # 1.获取数据 data = pd.read_csv("data.TXT") print("data:\n", data) # 2.计算两个变量之间的相关系数 r=pearsonr(data["one"],data["two"]) print("相关系数:\n", r) return None
如果特征与特征之间相关性很高,通过以下方法处理:
①选取其中一个
②加权求和
③主成分分析
定义
高维数据转化为低维数据的过程,在此过程中可能会舍弃原有数据、创造新的变量
作用
是数据维数压缩,尽可能降低原数据维数(复杂度),损失少量信息
应用
回归分析或者聚类分析当中
API
sklearn.decomposition.PCA(n_components=None)
-将数据分解为较低维数空间
-n_components:
·小数:表示保留百分之多少的信息
·整数:减少到多少特征
-PCA.fit_transform(X)
X:numpy array格式的数据[n_samples,n_features]
-返回值:转换后指定维度的array
使用
from sklearn.decomposition import PCA def pca_demo(): data=[[2,8,4,5],[6,3,0,8],[5,4,9,1]] #1.实例化一个转换器类 transfer=PCA(n_components=2) #2.调用fit_transform result=transfer.fit_transform(data) print("result:\n",result) return None
“Python中怎么使用sklearn进行特征降维”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。