数据降维

04_数据降维

有些话、适合烂在心里 提交于 2019-12-04 04:28:27
04 数据降维 降维: 降低特征的数量 特征选择 主成分分析 特征选择: 特征选择的原因 冗余:部分特征的相关度高,容易消耗计算性能 噪声:部分特征对计算结构有影响 特征选择是什么? 定义: 特征选择就是单纯地从提取到的所有特征中选择部分特征作为训练集特征,特征在选择前和选择后可以改变值,也可以不改变值,但是选择后的特征维数肯定比选择前小。因为我们只选择了其中的一部分特征。 主要方法: Filter (过滤式):Variance Threshold (方差的过滤) Embedded (嵌入式):正则化、决策树 Wrapper (包裹式) VarianceThreshold 模块 from sklearn.feature_selection import VarianceThreshold def var(): """ 特征选择-删除低方差的特征 :return: None """ var = VarianceThreshold(threshold=0.0) #取值根据实际情况 data = var.fit_transform([[0,2,0,3],[0,1,4,3],[0,1,1,3]]) print(data) return None if __name__ == '__main__': var() 主成分分析(PCA Principal Component Analysis)

主成分分析PCA

≯℡__Kan透↙ 提交于 2019-12-03 01:26:12
原文链接 PCA简介 如图所示,这是一个二维点云,我们想找出方差最大的方向,如右图所示,这个最大方向的计算,就是PCA做的事情。在高维情况下,PCA不光可以计算出最大方差方向,还可以计算第二大,第三大方向等。 PCA(Principal Components Analysis),中文名也叫主成分分析。它可以按照方差大小,计算出相互正交的方向,这些方向也叫主方向。它常用于对高维数据进行降维,也就是把高维数据投影到方差大的几个主方向上,方便数据分析。 PCA的计算很简单: 第一步计算数据的协方差矩阵:Cov = ∑ (Di – C) X (Di – C),其中Di是第i个数据,C是数据的平均值 然后计算协方差矩阵的特征值和特征向量,特征向量就是主方向,按照特征值的大小,从大到小依次排列 下面介绍PCA的一些应用。 三维人体模型参数化 如图是一些拟合好的三维人体模型。它是通过扫描了几千个人体,然后用人体模板网格去拟合这些扫描数据得到的。这些拟合后的人体网格,有相同的网格拓扑结构。 假设人体网格有N个顶点,则一个人体的几何可以由3N个浮点数来表示,记这个向量为Si。 如果有K个人体数据,记{Si}的平均向量为ES,Ui = Si - ES,那么{Ui}刻画了这K个人体几何的变化量。 这个一个高维向量,我们可以用PCA对{Ui}进行降维,比如降到k维。设PCA的主方向为D1, D2, ...

从主成分分析(PCA)到奇异值分解(SVD)

匿名 (未验证) 提交于 2019-12-03 00:41:02
主成分分析(principal factor analysis),简称PCA,是机器学习中非常常见的压缩降维方法。为什么需要压缩降维?是由于高维的样本本身存在冗余、稀疏的特点,直接把高维样本用于拟合或者模式识别,极其容易出现过拟合。而在处理实际问题时,与学习任务相关的也许仅是高维样本的某个低维分布,因而需要降维。(举个例子,如……) PCA的降维思想是,在高维的样本空间中,寻找一个低维的超平面,把所有高维样本投影于此超平面上,得到低维样本,并且使投影误差最小,或者使投影得到的样本最大可分。 紧接着上述提到的两种性质,在描述PCA的降维思想时,有以下两种定义方式: 最小误差形式 最大方差形式 可以从数学推导上证明,两种定义方式最终导出的结果等价,可以得到一样的算法。(两种方法的数学推导过程有时间再补充……) (算法流程待补充……) 总结来说,主成分分析涉及到计算数据集的均值 x x 和协方差矩阵 S S ,然后寻找协方差矩阵的对应于 M M 个最大特征值的 M M 个特征向量,从而得到投影矩阵。 PCA与SVD的关系主要体现在求解特征向量的过程。在一般介绍PCA算法原理的资料中,均是要先求得样本的协方差矩阵,然后从协方差矩阵中求解得特征值和特征向量。然而,对于归一化的样本,协方差矩阵 S = X X T S = X X T (待补充数学证明),而某些SVD的实现方法可以从样本矩阵 X

机器学习算法之降维

匿名 (未验证) 提交于 2019-12-03 00:38:01
  在机器学习的过程中,我们经常会遇见过拟合的问题。而输入数据或features的维度过高就是导致过拟合的问题之一。。维度越高,你的数据在每个特征维度上的分布就越稀疏,这对机器学习算法基本都是灾难性的。所有出现了很多降维的方法。今天我们要讨论的就是LDA降维。 LDA降维的思路是:如果两类数据线性可分,即:存在一个超平面,将两类数据分开。则:存在模旋转向量,将两类数据投影到一维上,并且依然是线性可分的。 提出问题 假设未定一组N个带标记的数据(X i ,C i ),其中,标记C分两类,即:C i i =1,设计分类器,将数据分开。如果x的维度很高,甚至比N还多,这时候就需要降维了。 解题过程 1、根据线性变换,将X降成一维的 假定旋转向量为W,将数据X投影到一维y,得到 y =W T X ,其中输入数据X,旋转向量W。 如此就将原来我x维的向量转换为一维,利用分类算法将数据分类为C。从而,可以找到阈值W 0, 如果y>W 0 为一类,y<W 0 为一类。 令C1类有N1个元素,C2有N2个元素,计算投影前的类内均值和投影后的类内均值和松散度(方差): 3、寻找Fisher判别准则 4、对目标函数进行优化 也就是对目标函数求导后取极值。 倒数为: , 三者同方向。 主题模型------主成分分析PCA PCA和LDA的区别 LDA:分类性能最好的方向 PCA

机器学习笔记:主成分分析

匿名 (未验证) 提交于 2019-12-03 00:26:01
(1)使得数据集更易使用 (2)降低算法的计算开销 (3)去除噪声 (4)使得结果容易理解 3 PCA 去除平均值 计算协方差矩阵 计算协方差矩阵的特征值和特征向量 将特征值从大到小排序 保留最上面的前N个特征向量 将数据转换到上述N个特征向量构建的新空间中 def pca(dataMat, topNfeat=9999999): #如果没有第二个参数,就返回所有新的维度 meanVals = mean(dataMat, axis=0) meanRemoved = dataMat - meanVals #remove mean covMat = cov(meanRemoved, rowvar=0) eigVals,eigVects = linalg.eig(mat(covMat)) eigValInd = argsort(eigVals) #排序 eigValInd = eigValInd[:-(topNfeat+1):-1] #去除多余成分 redEigVects = eigVects[:,eigValInd] #逆序 lowDDataMat = meanRemoved * redEigVects #把数据转换到新的维度 reconMat = (lowDDataMat * redEigVects.T) + meanVals return lowDDataMat, reconMat

从零开始学习主成分分析

匿名 (未验证) 提交于 2019-12-03 00:22:01
前言 前段时间一个偶然的机会,在一个虫友的问题下留了自己的微信号,从那开始私信我的人络绎不绝,我翻看了网上许多大咖的博文,大家都各有侧重,有的偏向基础概念和实例应用,如:【机器学习】主成分分析详解(https://blog.csdn.net/lyl771857509/article/details/79435402);有的偏向于软件的操作(http://www.360doc.com/content/17/1210/16/37437963_711826540.shtml);还有的内容是错误的。同几位提问者的交流中,我发现往往来问问题的大都是没有什么计算机编程和数理统计基础的人。我想不妨自己做一个从软件安装到数据分析,再到最终结果展示的傻瓜式帖子,希望能对大家有所帮助。 准备工作 软件准备 下载地址:magnet:?xt=urn:btih:8264042A3852F48EFCF836B364A576062ADA5552; 安装方式:https://jingyan.baidu.com/article/dca1fa6fa26202f1a44052e8.html 按照上文安装步骤操作完毕后,还需要根据技术贴(https://blog.csdn.net/wangpengfei666/article/details/78584083?locationNum=1&fps=1

数据的特征选择与降维

你离开我真会死。 提交于 2019-12-02 23:02:53
特征选择: 特征选择的原因: 冗余:部分特征的相关度高,容易消耗计算性能 噪声:部分特征对预测结果有负影响 特征选择是什么:   特征选择就是单纯地从提取到的 所有特征中选择部分特征 作为训练集特征,特征在 选择前和选择后可以改变值、也可以不改变值 ,但是选择后的特征维数肯定比选择前小,毕竟我们只选择了其中的一部分特征 主要方法(三大武器): Filter(过滤式):VaianceThreshold Embedded(嵌入式):正则化、决策树 Wrapper(包裹式) 其它特征选择方法: 神经网络 sklearn特征选择API:    代码示例: 输出:[[2, 0 ], [1, 4], [1, 1]] 1 from sklearn.feature_selection import VarianceThreshold 2 3 4 # 数据降维,特征选择 5 def var(): 6 """方差特征选择,删除低方差的特征""" 7 v = VarianceThreshold(threshold=0.0) # 参数大小根据实际情况 8 data = v.fit_transform([[0,2,0,3],[0,1,4,3],[0,1,1,3]]) 9 print(data) 10 11 12 if __name__ == '__main__': 13 var() 数据降维,PCA

使用PCA进行特征降维

孤人 提交于 2019-12-02 05:44:50
特征降维: 特征降维是无监督学习的另一个应用,目的有二:其一,我们会经常在实际项目中遭遇特征维度非常之高的训练样本,而往往又无法借助自己的领域知识人工构建有效特征; 其二,在数据表现方面,我们无法用肉眼观测超过三个维度的特征。因此,特征降维不仅重构了有效的低维度特征向量,同时也为数据展现提供了可能。 在特征降维的方法中,主成分分析是最为经典和实用的特征降维技术,特别在辅助图像识别方面有突出的表现。 如何用矩阵的秩来判别向量组的线性相关性: m×n 矩阵 A ,如果 r(A) = m < n,则行向量组无关,列向量组相关, 如果 r(A) = k < min(m,n),则行向量组、列向量组都相关, 如果 r(A) = n < m,则列向量组无关,行向量组相关。 如果 r(A) = m = n ,则行向量组、列向量组都无关。 如下图代码所示,我们有一组2*2的数据[(1,2),(2,4)]。假设这两个数据都反映到一个类别(分类)或者一个类簇(聚类)。如果我们的学习模型模型是线性模型,那么这两个数据其实只能帮助权重参数更新一次,因为他们线性相关,所有的特征数值都只是扩张了相同的倍数;如果使用PCA分析的话,这个矩阵的“秩”是1,也就是说,在多样性程度上,这个矩阵只有一个自由度。 #--线性相关矩阵秩计算样例 #导入numpy工具包 import numpy as np #初始化一个2

数据处理方法归纳

非 Y 不嫁゛ 提交于 2019-12-01 18:52:24
https://blog.csdn.net/qq_19528953/article/details/78785818 一 介绍 对于数据处理来说,整个处理的流程如下图所示: 数据预处理——通常包括特征选择、维规约、规范化等方法。 数据挖掘——这部分的方法和技术非常多,在处理时主要根据自己的目的来选择对应的方法最为恰当。 数据后处理——主要包括模式过滤、可视化等,目的是为了让数据挖掘的结果利于使用和观察。 为了让大家有一个清晰的框架,后面内容的思维导图如下展示: 二 了解数据 数据处理最关键的地方在于解决问题,并不是使用的方法越复杂越好。无论方法多么简单,只要解决问题就是好的方法 。为了解决数据处理的相关问题, 第一步是观察数据,了解数据相关的概念 ,然后对数据进行一些处理。这样对后面具体使用哪个方法来进行分析非常有用。 2.1数据预处理 数据预处理对于后续使用数据挖掘或者机器学习技术非常重要。在面临大数据的当下,数据的维度通常非常的多,因此 数据预处理的一个主要任务就是降低数据维度 。 2.1.1维归约 所谓维归约,就是要减少数据的特征数目,摒弃掉不重要的特征,尽量只用少数的关键特征来描述数据。人们总是希望看到的现象主要是由少数的关键特征造成的,找到这些关键特征也是数据分析的目的。维归约中主要方法很多,下面介绍几个: (1)主成分分析 主成分分析是一种统计方法

潜在因子算法-网易云音乐

家住魔仙堡 提交于 2019-12-01 13:24:43
《数学之美》(书籍推荐) 网易云音乐的歌单推荐算法(自认为是灵魂之处,其他不觉得),在此本书中说到类似问题, 书中提到矩阵运算和文本处理中的分类问题(后文复制处)。 网易云音乐的歌单推荐算法(转自知乎): 潜在因子(Latent Factor)算法。这种算法是在NetFlix(没错,就是用大数据捧火《纸牌屋》的那家公司)的推荐算法竞赛中获奖的算法,最早被应用于电影推荐中。这种算法在实际应用中比现在排名第一的 @邰原朗 所介绍的算法误差(RMSE)会小不少,效率更高。我下面仅利用基础的矩阵知识来介绍下这种算法。 这种算法的思想是这样:每个用户( user )都有自己的偏好,比如A喜欢带有 小清新的 、 吉他伴奏的 、 王菲 等元素( latent factor ),如果一首歌( item )带有这些元素,那么就将这首歌推荐给该用户,也就是用元素去连接用户和音乐。每个人对不同的元素偏好不同,而每首歌包含的元素也不一样。我们希望能找到这样两个矩阵: 一, 用户-潜在因子矩阵Q ,表示不同的用户对于不用元素的偏好程度,1代表很喜欢,0代表不喜欢。比如下面这样: 二, 潜在因子-音乐矩阵P ,表示每种音乐含有各种元素的成分,比如下表中,音乐A是一个偏小清新的音乐,含有小清新这个Latent Factor的成分是0.9,重口味的成分是0.1,优雅的成分是0.2…… 利用这两个矩阵