目录

一、基础理论

1、降维定义

2、降维对象及目标

二、低方差过滤

1、基础理论

2、API

过程:

1、读取待处理数据集

2、创建低方差过滤转换器(设置过滤阈值)

3、低方差过滤处理

代码

三、相关系数

1、基础理论

2、API

计算相关系数

四、主成分分析(PCA降维)

1、基础理论

1、定义

2、作用

3、过程

2、API

过程:

1、获取数据

2、实例化降维转换器类

3、降维处理

代码

总代码


一、基础理论

1、降维定义

降维是指在特定条件下,降低随机变量(特征)个数,得到一组“不相关”变量的过程。(不仅仅是降低纬度

(显示中拍照,就是三维降至二维)

零维:标量

一维:向量

二维:矩阵

三维:多个二维数组嵌套

......

相关特征:例如相对湿度与降水量。

2、降维对象及目标

降维对象:二维数组。

降维目标:得到不相关特征变量。(太多相关特征会造成特征冗余(即特征过多))

二、低方差过滤

1、基础理论

低方差过滤,过滤掉不太重要的特征

特征方差小:大多数样品该特征差距不大。

特征方差大:很多样品该特征差距较大。(区分度高)

2、API

sklearn.feature_selection.VarianceThreshold

过程:

1、读取待处理数据集

这里如果直接读取数据集会遇到“玄学”错误。

# 1、读取数据集data = pd.read_csv("factor_returns.csv")

 

显而易见,上面的数据是存在字符串的。

但是这里方差过滤特征值是基于数据进行过滤。数据处理自然没办法处理字符串。

所以我们重新读取数据:

# 1、读取数据集data = pd.read_csv("factor_returns.csv")data = data.iloc[:, 1:-2]           #从第2列到倒数第3列print(data)

成功过滤掉无法进行数据处理的字符串。

2、创建低方差过滤转换器(设置过滤阈值)

# 2、创建低方差过滤转换器(设置过滤阈值)transfer = VarianceThreshold(threshold=500)      #设置过滤阈值

3、低方差过滤处理

# 3、低方差过滤处理new_data = transfer.fit_transform(data)print(new_data)

可以对比结果,成功过滤掉很多的冗余特征。

代码

# 低方差过滤
def Variance_Filter():# 1、读取数据集data = pd.read_csv("factor_returns.csv")data = data.iloc[:, 1:-2]           #从第2列到倒数第3列print(data)# 2、创建低方差过滤转换器(设置过滤阈值)transfer = VarianceThreshold(threshold=500)      #设置过滤阈值# 3、低方差过滤处理new_data = transfer.fit_transform(data)print(new_data)

三、相关系数

1、基础理论

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

相关系数性质:

(正相关:一个变量增长,另一个变量随之增长)

2、API

scipy.stats.pearsonr

计算相关系数

# 计算相关系数r = pearsonr(data['pe_ratio'], data['pb_ratio'])print('相关系数\n', r)

四、主成分分析(PCA降维)

1、基础理论

在降维的过程中,保留尽可能多的信息

1、定义

高维数据转化为低维数据的过程,在此过程中可能会舍弃原有数据创造新的变量

2、作用

数据维数压缩,尽可能降低数据的维数(复杂度)损失少量信息

3、过程

找到合适的曲线,通过距离运算得到主成分分析的结果。

2、API

sklearn.decomposition.PCA

过程:

1、获取数据

# 1、获取数据data = [[2,8,4,5], [6,3,0,8], [5,4,9,1]]print(data)

2、实例化降维转换器类

n_components为整数:保留几个参数

n_components为小数:保留百分比的信息

# 2、实例化降维转换器类# 整数:表示参数下降# 小数:表示保留百分比的信息# transfer = PCA(n_components=2)          #参数降至2(从4->2)transfer = PCA(n_components=0.95)        #保留0.9的信息

3、降维处理

 # 3、降维处理new_data = transfer.fit_transform(data)print(new_data)

代码

# PCA降维
def PCA_Reduction():# 1、获取数据data = [[2,8,4,5], [6,3,0,8], [5,4,9,1]]print(data)# 2、实例化降维转换器类# 整数:表示参数下降# 小数:表示保留百分比的信息# transfer = PCA(n_components=2)          #参数降至2(从4->2)transfer = PCA(n_components=0.95)        #保留0.9的信息# 3、降维处理new_data = transfer.fit_transform(data)print(new_data)

总代码

# 降维(特征选择:低方差过滤和相关系数)(主成分分析:PCA降维)
from sklearn.feature_selection import VarianceThreshold
import pandas as pd
from scipy.stats import pearsonr
from sklearn.decomposition import PCA# 低方差过滤
def Variance_Filter():# 1、读取数据集data = pd.read_csv("factor_returns.csv")data = data.iloc[:, 1:-2]           #从第2列到倒数第3列print(data)# 2、创建低方差过滤转换器(设置过滤阈值)transfer = VarianceThreshold(threshold=500)      #设置过滤阈值# 3、低方差过滤处理new_data = transfer.fit_transform(data)print('低方差过滤处理\n', new_data)# 计算相关系数r = pearsonr(data['pe_ratio'], data['pb_ratio'])print('相关系数\n', r)# PCA降维
def PCA_Reduction():# 1、获取数据data = [[2,8,4,5], [6,3,0,8], [5,4,9,1]]print(data)# 2、实例化降维转换器类# 整数:表示参数下降# 小数:表示保留百分比的信息# transfer = PCA(n_components=2)          #参数降至2(从4->2)transfer = PCA(n_components=0.95)        #保留0.9的信息# 3、降维处理new_data = transfer.fit_transform(data)print(new_data)if __name__ == '__main__':# 低方差过滤Variance_Filter()# PCA降维PCA_Reduction()

机器学习(5)降维 -- 特征选择(低方差过滤与相关系数)与主成分分析(PCA降维)相关推荐

  1. 【视频】主成分分析PCA降维方法和R语言分析葡萄酒可视化实例|数据分享

    最近我们被客户要求撰写关于主成分分析PCA的研究报告,包括一些图形和统计输出.降维技术之一是主成分分析 (PCA) 算法,该算法将可能相关变量的一组观察值转换为一组线性不相关变量.在本文中,我们将讨论 ...

  2. 特征选择过滤法-方差过滤、F检验、互信息法

    过滤法 过滤法通常用作预处理步骤,特征选择完全独立于任何机器学习算法.它是根据各种统计检验分数和相关性指标来选择特征.         全部特征--->最佳特征子集--->算法---> ...

  3. pca降维的基本思想_一文读懂 PCA 降维算法

    转自:chenbjin https://www.cnblogs.com/chenbjin/p/4200790.html 主成分分析(PCA)是一种基于变量协方差矩阵对数据进行压缩降维.去噪的有效方法, ...

  4. 主成分分析——PCA降维Python实现及碎石图

    引言 降维的思想: 多元统计分析处理的是多变量问题.由于变量较多,增加了分析问题的复杂性.但在实际问题中,变量过多会存在一定的相关性,因此,多变量中可能会存在信息的重叠.在我们进行数据处理的时候为了提 ...

  5. pca 对图像降维matlab,Matlab用处理后的数据进行PCA降维

    我现在找到一些相关代码  但不知道如何用于我现在的数据中 请教! 代码为 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ...

  6. 机器学习中的数学(4)-线性判别分析(LDA), 主成分分析(PCA)

    前言: 第二篇的文章中谈到,和部门老大一宁出去outing的时候,他给了我相当多的机器学习的建议,里面涉及到很多的算法的意义.学习方法等等.一宁上次给我提到,如果学习分类算法,最好从线性的入手,线性分 ...

  7. [学习笔记] [机器学习] 8. 聚类算法(聚类算法:K-means、K-means++;聚类算法评估;特征降维:特征选择(Pearson相关系数、Spearman相关系数)、PCA主成分分析)

    视频链接 数据集下载地址:无需下载 1. 聚类算法简介 学习目标: 掌握聚类算法实现过程 知道 K-means 算法原理 知道聚类算法中的评估模型 说明 K-means 的优缺点 了解聚类中的算法优化 ...

  8. pca降维的基本思想_百面机器学习 第四章 降维 PCA

    降维:用低维度向量表示高纬度特征. 主成分分析PCA.线性判别分析LDA.等距映射.局部线性嵌入.拉普拉斯特征映射.局部保留投影. 1.PCA PCA是一种线性.非监督.全局的降维算法. 推理: (1 ...

  9. 机器学习-Sklearn(第三版)Day4 主成分分析PCA与奇异值分解SVD

    目录 一.简介 什么是维度 sklearn中的降维算法 二.PCA与SVD 0.如何实现降维算法 思考:PCA和特征选择技术都是特征工程的一部分,它们有什么不同? 1.重要参数n_components ...

最新文章

  1. python导入模块快捷键_Python中的模块导入和读取键盘输入的方法
  2. 【dmp文件还原到oralce数据库】
  3. SQL Server遍历表的几种方法
  4. - (BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds
  5. C++知识总结(2)--字符串和数组
  6. 28 FI配置-财务会计-外币评估-检查分配到分类账组的会计核算原则
  7. c语言综合作业答案,C语言作业答案
  8. 【VS开发】文件夹和文件选择EditBrowe控件使用
  9. Kali Linux Web 渗透测试秘籍 第一章 配置 Kali Linux
  10. hdu 2438 Turn the corner [ 三分 ]
  11. python职业发展规划书范文_职业生涯规划书范文 3篇
  12. 多元回归理论及R语言实现
  13. SQL必知必会知识点汇总
  14. ADS仿真过孔阻抗(via designer)
  15. 也谈USB重定向的方式
  16. 详解线上线下收单业务(2)
  17. 现代软件工程 -- 第一周 -- 介绍自己
  18. 一年级计算c语言编程,用C语言switch语句做一年级算术题。
  19. Fine Dining G
  20. 毕业设计 基于STM32单片机的二轮平衡小车

热门文章

  1. Android/Java 中线程(Thread)的使用
  2. vue element 关闭当前tab 跳转到上一路由
  3. 写单元测试应该注意什么
  4. 修改 mysql 支持远程连接
  5. NetCore学习实践1__项目创建和配置文件的获取
  6. URAL - 1902 Neo-Venice
  7. [maven] 使用问题及思考汇总
  8. js循环动态绑定带参数函数遇到的问题及解决方案[转]
  9. 实测 Mysql UUID 性能(转)
  10. 为计算机编程序英语作文,计算机编程员英文简历范文