降维


降维降的是什么?
减低维度

我们降低的对象是二维数组。我们减低了特征的个数,也就是列数

说的形象一点就是把三维的转换为二维的效果。
当然我们减低维数有要求,首先我们必须要求特征与特征之间不相关。

降维的两种方式

1.特征选择

主要方法

过滤式(低反差特征过滤)

如果特征方差小,就说明特征大多的样本的之比较相近(这种特征就可以去掉)

如果特征反差大,就说明某个特征很多样本的值都有差别

sklearn有专门的API接口

相关系数

计算方法:

相关系数的特点

整体代码如下

"""
过滤低方差特征
:return:
"""
# 1、获取数据,然后对数据进行处理
data = pd.read_csv("factor_returns.csv")
# 对数据进行选取,获取到主要的信息 我们需要所有的行,我们从第一列到倒数第二列
data = data.iloc[:, 1:-2]
print("data:\n", data)

# 2、实例化一个转换器类,然后指定阈值
transfer = VarianceThreshold(threshold=10)

# 3、调用fit_transform
data_new = transfer.fit_transform(data)
# 打印新的数据以及特征值
print("data_new:\n", data_new, data_new.shape)

# 计算某两个变量之间的相关系数 这个相关系数是皮尔逊相关系数
r1 = pearsonr(data["pe_ratio"], data["pb_ratio"])
print("相关系数:\n", r1)
r2 = pearsonr(data['revenue'], data['total_expense'])
print("revenue与total_expense之间的相关性:\n", r2)

return None

2.主成分分析

https://www.bilibili.com/video/BV1pE411j7Ri?p=16


文章作者: 小游
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 小游 !
  目录