传统的线性降维方法效果不佳。_10分钟数据降维入门

338de9f3-7b13-eb11-8da9-e4434bdf6706.png

1. 前言

在硕士期间学习研究了数据降维相关的知识,阅读了一些相关文章,也断断续续在知乎上写了

一些数据降维的入门级文章,收获了一些小伙伴的赞同,并在GitHub上开源了一些特征抽取算

法的源代码,获得了的1.1k+star。

因为在GitHub的代码中留下了邮箱,因此有许多小伙伴来询问我数据降维方法的使用,其中有

很大一部分并不是计算机专业的,也是刚刚接触机器学习这一领域。所遇到的问题都类似这

种:

我有数据,我想降维,我怎么选择方法

希望小伙伴们在阅读完本文之后,将学会如何根据自己的数据和目的,快速地选择简单基本的

特征降维算法构建一个baseline的模型。

2. 数据降维是什么

顾名思义,数据降维就是通过特征选择或者特征变换操作将数据从原始的D维空间投影到新的

K维空间。数据降维方法主要分为特征选择和特征抽取(特征降维)两类。

2.1 特征选择

特征选择方法是在所有的特征中通过子集搜索算法寻找和模型最相关的特征子集的过程,简单

的说就是在所有特征中选择和目标最相关的一些特征,丢弃掉一些不太重要的特征。

特征选择方法又分为三个类型:

  • 过滤式

过滤式特征选择方法根据特征的统计学特性选择特征。对于有标签的数据,我们可以计算标签

和特征的互信息、相关系数等值,作为特征的得分,然后选择得分比较高的特征。对于没有标

签的数据,也可以选择计算特征的方差等值,通常方差较小的特征是无用特征的概率更大一

些。经过上述操作,我们就可以简单快速的选择更有用的特征,实现特征降维。

优点:只需要对特征进行常数级别的遍历,效率高;得到的特征子集使用范围广,后续各种模

型都可以使用这个特征子集。

缺点:特征子集具有冗余性(可以想想为什么,答案在文末);得到的特征子集通常不是最优的。

常用算法:ReliefF、基于互信息的特征选择、基于相关系数的特征选择、基于Fisher-score的特征选择

  • 包裹式

包裹式特征选择方法通过训练机器学习模型来选择特征。例如SVM-RFE方法,需要多次调用

SVM方法,每次选择表现最好的特征。

优点:得到的特征子集准确率高;

缺点:需要多次调用模型,很耗时;得到的特征子集只适用于当前的模型(其他模型使用这个

特征子集效果不一定会好)。

常用算法:SVM-RFE

  • 嵌入式

在训练机器学习模型的同时选择了特征,例如逻辑回归、LASSO模型。嵌入式特征选择方法的

特点就是在训练好模型的同时,模型会给不同特征不同的权重,使用这个权重来衡量特征的重

要性。

优点:耗时适中,同时有较好的准确率。

缺点:容易被噪声特征影响。

常用算法:逻辑回归、Lasso

2.2 特征抽取

特征抽取也被称为特征降维,用的最广泛也最常见的一种特征抽取方法就是PCA。特征抽取根

据变换的方式分为线性和非线性两种。

348de9f3-7b13-eb11-8da9-e4434bdf6706.png
一些常见的特征抽取方法
  • 线性降维

线性降维就是通过某种线性变换,将数据从高维空间映射到低维空间。

举一个简单的例子:比如你在经营一个水果摊子“晴子水果”,好多来你这买水果的顾客都很特

别,每次都会买(3个苹果2个梨)的组合。此时你每次记账都要记:【苹果:3,梨:2】。久而

久之,你决定把3个苹果2个梨组合到一起,称为一个“晴”,之后记账的时候就可以简单记下

【晴:1】。

上述例子有这样的关系:晴*1=苹果*1/3+梨*1/2,1/3和1/2就是苹果和梨所占的权重。线性降

维就可以理解为寻找高维空间向低维空间映射时每个维度所占的权重,例如PCA就是寻找在低

维空间中数据点的方差尽可能的大,协方差为0时,不同维度所所占的权重。

  • 非线性降维

非线性降维指的是是从高维空间向低维空间的转化是非线性的,看下面经典的三维瑞士卷:

358de9f3-7b13-eb11-8da9-e4434bdf6706.png
3维瑞士卷数据和利用LE算法得到的二维数据

瑞士卷可以看作是二维数据折叠、弯曲之后展现在三维空间,其本身还是一个二维数据。一种

常见的非线性降维思想是认为高维数据在局部上是线性的,我们只需要保证局部线性,就可以

将数据从三维转换到二维。以瑞士卷为例,我们可以把瑞士卷看作是很多小块的二维平面在三

维空间拼接而成,只要保证这些小的二维平面,就可以将数据从三维空间转化到二维空间。

2.3 如何选择

介绍了常见的特征降维方法,在不同的场景下我们应该使用什么样的特征降维方法呢,如下几

点是你需要考虑的:

  • 特征数目

当数目特征较多的时候,应该首先选择过滤式特征选择方法,快速减少数据量,可以有效防止

过拟合现象,同时加快后续模型训练的速度。当数目特征较少时,可以使用特征抽取方法或者

包裹式特征选择方法,此时需要你对方法和数据的特点都有一定的了解,才能选择合适的方法。

  • 特征有效性

如果可能存在和目标无关的特征,可以考虑使用特征选择方法,去除一些无用特征。如果特征

都和目标有一定的关系,可以考虑使用特征抽取方法对特征进行变化,在尽可能保留信息的情

况下降低特征数目。

  • 目的

如果你的目的是选择和目标最相关的特征,那么特征抽取方法明显是不合适的,因为其会将原

始特征转化为新的特征;如果你关心准确率等指标,那么请随意使用特征抽取方法。同时特征

选择方法的可解释性也要略高于特征抽取方法。

3. 数据降维能干什么

数据降维可以做什么,在选择数据降维方法之前一定要考虑数据降维能否解决你的问题,下面是数据降维能解决的几个问题。

3.1 提高准确率

数据降维算法可以去除无效特征,提高模型的准确率,同时缓解模型的过拟合现象。

3.2 减少数据量

减少特征的数目,可以提高后续的处理速度和所需要的储存空间。

3.3 可视化

某些数据降维算法可以很好的将高维数据在二维或者三维空间进行展示,直观有效的像别人展

示你的结果,非线性的特征抽取方法常常用于数据可视化,其中T-SNE是一个表现很好的可视

化算法。

4、如何选择合适的数据降维方法

当你有一份数据需要降维时,该如何选择特征降维算法。

4.1 目的

明确你的目的,是为了提高模型的准确率,还是为了选择重要的特征,抑或是对数据进行可视

化,不同的目的需要选择不同的数据降维算法。

举一些典型的例子:

  • 我想要对一份数据进行降维,从而提高模型的准确率

此时你需要考虑你选择的特征降维算法是否具有样本外降维的能力。也就是当你使用训练了降

维算法之后,是否可以得到一个转移函数或者矩阵F(X),当出现了一个或一批新的样本点,通

F(x)可以将这些样本点进行降维。大部分非线性特征抽取方法都不具备样本外降维的能力,

一种解决方法是将原始数据作为输入,降维后的数据作为输出,训练一个模型,利用这个模型

对数据进行降维。

  • 我需要选择重要的特征

也许你分析数据是为了找到和目的最有关的特征,从而进行下一步工作。此时你的选择就只能

局限在特征选择算法中,此时你需要考虑的是如何组合不同类型的特征选择方法,找到更优的

特征子集。

  • 我需要展示我的数据

此时你的重点就更应该放在可视化算法上,这里我推荐你使用T-SNE算法或者其衍生算法,它

在数据可视化领域具有十分好的表现。

4.2 数据的特点

数据的特点是你选择数据降维算法不得不考虑的一点,只有选择适合数据的数据降维方法,才

会有更好的结果。主要遵循能更有效的利用数据这个准则。

  • 数据是有标签的:尽可能的选择有监督的数据降维算法。
  • 数据是二维的:选择可以利用二维结构的数据降维算法。
  • 数据中有无效特征:使用特征选择方法。

根据经验来说,通常使用过滤式特征选择方法+PCA算法可以在大部分数据上取得还不错的效

果,同时实现起来也较为简单,如果没有什么想法,可以尝试使用这种组合。如果对数据和方

法有一定的了解,还是应该选择更合适的方法。

5、后记

数据降维是数据预处理手段的一种,当你尝试了几种数据降维方法效果却依旧不尽人意的时

候,也可以考虑使用其他数据预处理手段。

常用机器学习库sklearn手册:

https://scikit-learn.org/

11种特征抽取算法源代码:

https://github.com/heucoder/dimensionality_reduction_alo_codes

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/506427.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

嵌入式开发网络配置——windows连热点,开发板和电脑网线直连

目录 电脑 WiFi 上网,开发板和电脑直连 使用场景 设置VMware虚拟机的网络配置 Ubuntu设置——版本18.04 ​编辑 windows设置 开发板设置 原因:虚拟机Linux移植可执行程序到开发板失败 最后发现虚拟机的Linuxping不通开发板 下面是我的解决方法 …

java ajax data_jquery ajax 方法中传递的data参数,如何在java类中获取

展开全部var params"username""1";$.ajax({type : "POST", //数据发送方式url : "../servlet/clearCache",dataType : "json", //接受数据格式 (这里有很多,常用的有html,xml,js,json)data:params,//datenew Date(), 要传递…

python环境变量配置_Python的安装、认识、配置环境变量以及helloworld打印的两种方式

Python的安装、认识、配置环境变量以及helloworld打印的两种方式 一、 安装和配置环境变量 首先我们去到Python的官方下载地址根据自己的电脑机型来下载最新的python安装包,网址是https://www.python.org/downloads/ 。 或者点击这里跳转 。 下载之后可以去https://…

java 报表程序_java 报表

http://www.codeceo.com/article/8-java-graph.html前段时间我们为大家分享过一些最常用的Java图表应用和Android图表应用,无论是在PC平台上还是移动平台上,图表和报表功能都是不可或缺的。本文推荐了8款最精彩实用的Java图表应用,大部分图表…

excel跨多个表格求和_看完财务同事用Excel函数完成的进销存报表,老板惊呆了...

有仓库、有商品的地方都离不开进销存软件,有花钱买的、也有花大力气自已找人订制的。网上下载破解版?真的不可靠,万一出现什么问题,你们公司将面临信息损坏或丢失的风险!其实,如果只是小规模的库存商品管理…

苹果自带相册打马赛克_如果你用苹果手机!学会这3个技巧,就能让手机变得更加好用...

如果你用苹果手机!这3个技巧一定要学会,能让手机变得更好用现在手机中的黑科技功能越来越多,就拿iPhone手机来说,很多朋友选择这款手机不仅是因为拥有非常流畅的系统,手机中自带的黑科技功能也是大家选择它的原因。今天…

给与 x 距离不超过 d 的点权值 a_一年级不上网课,妈妈陪孩子一起来完成三单元各课练习及单元卷吧...

部编一年级下册第5课小公鸡和小鸭子课后练习题一、将下列字的音节补充完整。k____ x____ zh____ 块 行 捉 二、选择加点字的正确读音,画“√”。忽然(rn rnɡ)  大喊(hǎn hǎnɡ)上身(shēn sēn)  死去(sǐ shǐ)三、看拼音,写字词。1小明说(&am…

java games_Java Me Games

在GWT的文档里说,大致上CSS的命名规则是这样的"[project]-[widget],比如gwt-Button,你可以在CSS里定义如下:.gwt-Button{font-size:150%;}但是这样的说明是不充分的,所以这里有必要把他真正的样式表来列一下&…

java timestamp 转换_Java:String和Date、Timestamp之间的转换

一、String与Date(java.util.Date)互转1.1 String -> DateJava代码 String dateStr "2010/05/04 12:34:23";Date date new Date();//注意format的格式要与日期String的格式相匹配DateFormat sdf new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");try {…

bugku 杂项 就五层你能解开吗_9.65米解放龙V杂项危险废物厢式运输车62

亲爱的,点击上方蓝字关注我吧9类危险废物厢式运输车解放龙V2.0半高顶半浮驾驶室底盘参数:龙V2.0半高顶半浮驾驶室、锡柴225马力,6.6排量,164千瓦,百公里耗油30.3L、陕齿8JS85E、435升级冲焊桥(速比4.444)、275/80R22.5-18PR层级、…

python矩阵运算与线形代数_[译] 线性代数:矩阵基本运算

线性代数:矩阵基本运算在本文中,我们将介绍矩阵的大部分基本运算,依次是矩阵的加减法、矩阵的标量乘法、矩阵与矩阵的乘法、求转置矩阵,以及深入了解矩阵的行列式运算。本文将不会涉及逆矩阵、矩阵的秩等概念,将来再探…

torch tensor去掉1维_南昌清污机新价格表1_海腾水工

南昌清污机新价格表1,应用中,应停止机械零件,停止防锈处理,定期在停水面涂抹黄油,开关发生某些异常,立即暂停,及时检查。 开闭时,请注意活塞的上下限位置,以免挡板和卷扬机损坏。 起…

fx系列微型可编程控制器 通信_电气人,三菱Q系列和FX PLC系列之间的区别你都知道吗?...

三菱Q系列和FX系列作为三菱旗下的两大PLC系列,在日常的作业中小伙伴们都会接触到,因此本文将三菱可编程控制器中使用的内置的输入输出继电器、辅助继电器、状态、计数器、数据寄存器等各种软元件的作用和功能进行了说明。Q系列FX系列输入继电器 X输入继电…

left join 效率_人力资源HR的人才测评工具,极大提高招聘效率

作为一个HR小白,打交道最多的就是简历,领导谈的最多的就是提高工作效率,其实这个概念对于我来说还是挺抽象的,经过向前辈的取经,人力资源如何提高效率,做了个小小的总结。首先我们要明白我们的难点有哪些&a…

windows media player 9_openmeetings(开源视频会议系统)的详细安装步骤 (windows版)

一、开源视频会议系统openmeetings的简介:OpenMeetings是一个多语言可定制的视频会议和协作系统。它支持音频、视频,能让你查看每个与会者的桌面。OpenMeetings还包含一个白板,通过白板可以导入各种格式的图片和涂鸦。它是基于OpenLaszlo’s的…

Java实例化后自动执行_Java的实例化顺序(程序执行顺序)

加载/执行顺序:牢记一点:静态和非静态分开处理使用到静态加载时,静态又分为: 静态变量, 静态代码块, 其中加载顺序是按照类中书写的先后顺序加载的非静态加载顺序: 按照非静态书写顺序加载/执行…

python数据分析_使用Python进行数据分析

麦金尼编写的《使用Python进行数据分析》是最经典的数据分析教材,本专栏主要应用视频讲解的方式,讲授本书核心思想,并提供本教材的所有代码和代码点评。注意:视频网址必须用电脑台式机打开!手机访问不到视频。注意&…

百度原创度在线检测_资深自媒体作者:做自媒体没有这款“原创度检测”软件是不行的...

目前市面上除了今日头条自媒体平台外,好友好多好多其它的自媒体平台,比如百度的百家号、360的快船号、腾讯的企鹅号等等,各种各样的自媒体平台,如此多的自媒体平台大家每天写作的资源和话题也就那么多,免不了有些人就会…

如何看懂串口通讯协议_一文看懂PLC的通讯方式——AB系统(一)

写在前面一直以来,PLC跟其他设备的通讯方式都是自动化工程师入门学习的难点和要点。说它难,因为这里面牵扯到了数据通讯的一些知识,大多数从事PLC工作的人员都是从电气、电子、自动化、机电等相关专业出身的,可能上学时候也只是简…

linux mysql 实战_linux实用实战

1、编译安装搭建wordpress软件环境:apr-1.6.2.tar.gzphp-7.1.10.tar.xz http://php.net/mariadb-10.2.8-linux-x86_64.tar.gz http://mariadb.org/wordpress-4.8.1-zh_CN.tar.gz https://cn.wordpress.org/1 、源码编译安装Httpd2.4(1)安装包组和包yum groupinstall…