机器学习-特征降维与相关系数

1.方法

  • Filter(过滤式):主要探究特征本身特点、特征与特征和目标值之间的关联
  • 方差选择法:低方差特征过滤
  • 相关系数
  • Embedded(嵌入式) :算法自动选择特征(特征与目标值之间的关联)
  • 决策树:信息熵、信息增益
  • 正则化:L1、L2
  • 深度学习:卷积等

2.过滤式

删除低方差的一些特征

  • 特征方差小:某个特征大多样本的值比较相近
  • 特征方差大:某个特征很多样本的值都有差别

3.低方差特征代码

import pandas as pd
from sklearn.feature_selection import VarianceThreshold

#低方差特征过滤
data=pd.read_csv('E:\学习\iris.csv')
#获取前三列
data=data.iloc[:,1:4]
#实例化一个转换器类
transfer=VarianceThreshold(threshold=1)
#调用fit_transform
data_new=transfer.fit_transform(data)
print(data)
print(data_new)
print(data_new.shape)

原数据三个特征值

进行低方差过滤,设置方差临界值threshold为1,低于临界值的特征值会被删除

原维度为3,降维后为1

4.相关系数

皮尔逊相关系数-反映变量之间相关关系密切程度的统计指标

  • 公式

  • 特点 
  1. 当r>0时,表示两变量正相关,r<0时,两变量为负相关
  2. 当|r|=1时,表示两变量为完全相关,当|r|=0时 ,表示两变量无相关关系
  3. 当0<|r|<1时,表示两变量存在一定程度的相关。且|r|越接近1,两变量间线性关系越密切,且|r|越接近0,两变量间线性关系越弱
  4. 一般按三级划分,|r|<0.4为低度相关;0.4<=|r|<0.7为显著性相关;0.7<=|r|<1为高度线性相关

5.相关性运用代码

import pandas as pd
from scipy.stats import pearsonr
from sklearn.feature_selection import VarianceThreshold

#低方差特征过滤
data=pd.read_csv('E:\学习\iris.csv')
#获取前三列
data=data.iloc[:,1:5]
#实例化一个转换器类
transfer=VarianceThreshold(threshold=1)
#调用fit_transform
data_new=transfer.fit_transform(data)
#计算两个变量之间的相关系数
print(data)
r=pearsonr(data['Sepal_Length'],data['Petal_Length'])
print('相关性\n',r)

结果展示如下

Sepal_Length,Petal_Length相关系数为0.87,为高度线性相关 

6.主成分分析 

  • 定义:高维数据转化为低维数据的过程,在此过程中可能会舍弃原有数据、创造新的变量
  • 作用:是数据维数压缩,尽可能降低原数据的维数(复杂度),损失少量数据
from sklearn.decomposition import PCA
#PCA降维
data=[[2,8,4,5],[6,3,0,8],[5,4,9,1]]
#实例化一个转换类
transfer=PCA(n_components=2)
#调用fit_transform
data_new=transfer.fit_transform(data)
print('原维度\n',data)
print('data_new\n',data_new)

n_components为整数表示降维的维度数,小数的话表示保留原特征的百分比

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

橘子小小甘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值