数据降维-删除相关性较强的特征

降维是指在某些限定的条件下,降低随机变量的(特征)的个数,得到一组不相干性将强的数据。因此,初始数据的相干性的大小对结果有较大的影响。造成数据的冗余性

对于数据相关性的降低,一般分为两种方法:
1.Fitter(过滤式)

        1.方差选择法:对每个特性计算方差,对于方差小于阈值的特征,进行删除

首先对数据集做出改动,设置一组相同的特征

from sklearn.datasets import load_iris
from sklearn.feature_selection import VarianceThreshold
import numpy as np


iris = load_iris()

# 添加一组相同的数字作为测试
new_iris = np.hstack((iris.data[:50, :4], iris.target[:50].reshape((50, 1))))

trans = VarianceThreshold(threshold=0) #默认阈值为0
new_data = trans.fit_transform(new_iris)
print(new_iris)
print("-----------------------")
print(new_data)
[[5.1 3.5 1.4 0.2 0. ]
 [4.9 3.  1.4 0.2 0. ]
 [4.7 3.2 1.3 0.2 0. ]
 [4.6 3.1 1.5 0.2 0. ]
 [5.  3.6 1.4 0.2 0. ]
 [5.4 3.9 1.7 0.4 0. ]
 [4.6 3.4 1.4 0.3 0. ]
 [5.  3.4 1.5 0.2 0. ]
 [4.4 2.9 1.4 0.2 0. ]
 [4.9 3.1 1.5 0.1 0. ]
 [5.4 3.7 1.5 0.2 0. ]
 [4.8 3.4 1.6 0.2 0. ]
 [4.8 3.  1.4 0.1 0. ]
 [4.3 3.  1.1 0.1 0. ]
 [5.8 4.  1.2 0.2 0. ]
 [5.7 4.4 1.5 0.4 0. ]
 [5.4 3.9 1.3 0.4 0. ]
 [5.1 3.5 1.4 0.3 0. ]
 [5.7 3.8 1.7 0.3 0. ]
 [5.1 3.8 1.5 0.3 0. ]
 [5.4 3.4 1.7 0.2 0. ]
 [5.1 3.7 1.5 0.4 0. ]
 [4.6 3.6 1.  0.2 0. ]
 [5.1 3.3 1.7 0.5 0. ]
 [4.8 3.4 1.9 0.2 0. ]
 [5.  3.  1.6 0.2 0. ]
 [5.  3.4 1.6 0.4 0. ]
 [5.2 3.5 1.5 0.2 0. ]
 [5.2 3.4 1.4 0.2 0. ]
 [4.7 3.2 1.6 0.2 0. ]
 [4.8 3.1 1.6 0.2 0. ]
 [5.4 3.4 1.5 0.4 0. ]
 [5.2 4.1 1.5 0.1 0. ]
 [5.5 4.2 1.4 0.2 0. ]
 [4.9 3.1 1.5 0.2 0. ]
 [5.  3.2 1.2 0.2 0. ]
 [5.5 3.5 1.3 0.2 0. ]
 [4.9 3.6 1.4 0.1 0. ]
 [4.4 3.  1.3 0.2 0. ]
 [5.1 3.4 1.5 0.2 0. ]
 [5.  3.5 1.3 0.3 0. ]
 [4.5 2.3 1.3 0.3 0. ]
 [4.4 3.2 1.3 0.2 0. ]
 [5.  3.5 1.6 0.6 0. ]
 [5.1 3.8 1.9 0.4 0. ]
 [4.8 3.  1.4 0.3 0. ]
 [5.1 3.8 1.6 0.2 0. ]
 [4.6 3.2 1.4 0.2 0. ]
 [5.3 3.7 1.5 0.2 0. ]
 [5.  3.3 1.4 0.2 0. ]]
-----------------------
[[5.1 3.5 1.4 0.2]
 [4.9 3.  1.4 0.2]
 [4.7 3.2 1.3 0.2]
 [4.6 3.1 1.5 0.2]
 [5.  3.6 1.4 0.2]
 [5.4 3.9 1.7 0.4]
 [4.6 3.4 1.4 0.3]
 [5.  3.4 1.5 0.2]
 [4.4 2.9 1.4 0.2]
 [4.9 3.1 1.5 0.1]
 [5.4 3.7 1.5 0.2]
 [4.8 3.4 1.6 0.2]
 [4.8 3.  1.4 0.1]
 [4.3 3.  1.1 0.1]
 [5.8 4.  1.2 0.2]
 [5.7 4.4 1.5 0.4]
 [5.4 3.9 1.3 0.4]
 [5.1 3.5 1.4 0.3]
 [5.7 3.8 1.7 0.3]
 [5.1 3.8 1.5 0.3]
 [5.4 3.4 1.7 0.2]
 [5.1 3.7 1.5 0.4]
 [4.6 3.6 1.  0.2]
 [5.1 3.3 1.7 0.5]
 [4.8 3.4 1.9 0.2]
 [5.  3.  1.6 0.2]
 [5.  3.4 1.6 0.4]
 [5.2 3.5 1.5 0.2]
 [5.2 3.4 1.4 0.2]
 [4.7 3.2 1.6 0.2]
 [4.8 3.1 1.6 0.2]
 [5.4 3.4 1.5 0.4]
 [5.2 4.1 1.5 0.1]
 [5.5 4.2 1.4 0.2]
 [4.9 3.1 1.5 0.2]
 [5.  3.2 1.2 0.2]
 [5.5 3.5 1.3 0.2]
 [4.9 3.6 1.4 0.1]
 [4.4 3.  1.3 0.2]
 [5.1 3.4 1.5 0.2]
 [5.  3.5 1.3 0.3]
 [4.5 2.3 1.3 0.3]
 [4.4 3.2 1.3 0.2]
 [5.  3.5 1.6 0.6]
 [5.1 3.8 1.9 0.4]
 [4.8 3.  1.4 0.3]
 [5.1 3.8 1.6 0.2]
 [4.6 3.2 1.4 0.2]
 [5.3 3.7 1.5 0.2]
 [5.  3.3 1.4 0.2]]

可以看到,一组相同的数据被消除掉了 

        2.相关系数法:皮尔森相关系数法计算公式:

等级划分:|r|< 0.4 表示低相关度,0.4 < |r|< 0.7 显著相关 , 0.7 < |r|< 1 高度相关

 

from sklearn.datasets import load_iris
from scipy.stats import pearsonr


iris = load_iris()
data = iris.data
r, p = pearsonr(data[:, 0], data[:, 1]) # 返回值中,r表示相关系数,p表示衡量相关系数的值
print("r:\n", r)
print("p:\n", p)
r:
 -0.11756978413300195
p:
 0.15189826071144835

2.Embedded(嵌入式)

决策树,正则化,深度学习

这个将在后续学习

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
相关性分析是数据特征分析中常用的一种分析方法,用于衡量两个变量之间的线性关系。通过相关性分析,可以确定变量之间的强弱关系,帮助我们更好地理解数据并进行相关预测和决策。 常用的相关性分析方法有皮尔逊相关系数、斯皮尔曼等级相关系数和判定系数等。 皮尔逊相关系数是最常用的相关性分析方法之一,它衡量两个变量之间的线性关系强度和方向。相关系数的取值范围为-1到1,其中-1表示完全负相关,0表示没有线性关系,1表示完全正相关。当相关系数的值接近于-1或1时,说明两个变量之间的关系比较强;当相关系数的值接近于0时,说明两个变量之间的关系比较弱。 斯皮尔曼等级相关系数是一种非参数相关性分析方法,适用于数据不满足正态分布或数据类型为次序型的情况。它也衡量两个变量之间的关系强度和方向,取值范围也为-1到1。 判定系数是一种用于衡量回归模型拟合程度的指标,它表示因变量的变异中有多少可以被自变量解释。判定系数的取值范围为0到1,值越接近于1,说明模型的拟合程度越好。 在进行相关性分析时,我们需要注意以下几点: 1. 相关性并不代表因果性。即使两个变量之间存在强相关关系,也不一定意味着其中一个变量会影响另一个变量。 2. 相关性分析只能发现线性关系。如果变量之间存在非线性关系,相关性分析可能无法发现这种关系。 3. 相关性分析只能衡量两个变量之间的关系强度和方向,不能确定两个变量之间的具体函数形式。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值