PCA

PCA

PCA KPCA


代码详见:https://github.com/AresAnt/ML-DL

PCA:

PCA适用于非监督的学习的不带标签(带标签的样本,往往用LDA降维)的样本降维,特别是小样本问题。广义认为,这类样本属性之间的相关性很大,通过映射,将高维样本向量映射成属性不相关的样本向量。

在多元统计分析中,主成分分析(英语:Principal components analysis,PCA)是一种分析、简化数据集的技术。主成分分析经常用于减少数据集的维数,同时保持数据集中的对方差贡献最大的特征。这是通过保留低阶主成分,忽略高阶主成分做到的。这样低阶成分往往能够保留住数据的最重要方面。但是,这也不是一定的,要视具体应用而定。由于主成分分析依赖所给数据,所以数据的准确性对分析结果影响很大。

Simple PCA:

暂且我将它定义为简单的PCA,直接通过求取最大的前N项特征值,来得到PCA的解(即W)
详细的简单的数学原理可以参照这个超级链接:此处输入链接的描述

算法描述过程如下:
输入:样本集 D = {x1,x2,x3,...,xn}
低维空间维数d'.
过程:
- 对所有样本进行中心化(归零化与标准化
- 计算样本的协方差矩阵 XXT
- 对协方差矩阵XXT做特征值分解
- 取最大的d'个特征值所对应的特征向量(w1,w2,....,wd')
输出: 矩阵W

中心化公式: ( μ 表示平均值 , σ 表示标准差 )


流程图:


Kernel PCA

我们知道在简单PCA运算相当于是一个坐标系统的直交变换,在新的坐标系系统下,变换数据点的方差沿新的坐标轴得到了最大化。然而我们可以得出这样子的变化是关于线性变化的。简单的说,PCA的降维模式只能用来表示线性的数据降维,遇上了非线性就难以做出变化。如下图所示:



在图1中,蓝色部分的内容与红色的部分内容,我们无法在二维的坐标系中找到一条直线将他们分割开来,使映射到这条直线上后的方差变到最大,然后我们发现我们并不能找到那么一条直线来将整个平面进行划分。这个时候我们就提出了另一种思想Kernel PCA。
我们假设有那么一个映射函数,可以将蓝色点与红色点映射到更高维的空间中,如3维,或者4维等等,那么我们可以看到在高维空间中。如下图所示:




我们不难发现,在三维空间中,我们可以方便的找到一个平面去切割,使得这两种特征区别开来(换句话说就是使得它们的方差变得最大)

这就相当于是Kernel PCA 的中心思想,简单总结就是将非线性的特征点转换到高维空间中,从而在高维空间中可以找到其对应的线性关系。

接下来,我们说算法过程:
算法描述过程如下:
输入:样本集 D = {x1,x2,x3,...,xn}

过程:

  • 对所有样本进行中心化(归零化与标准化)

  • 选定核函数(可以是高斯径向核函数),然后通过


    【一般来说 X.shape = (n_samples,n_features) n_samples 表示样本数量, n_features 表示特征数量,在对 K 进行计算的时候,是用行向量进行相乘,简单来说就是每一个 sample 进行相乘】

for i in range(M):
    for j in range(M):
        if self.Kernel == 'Gaussian':
            K[i,j] = self.__Gaussian_Kernel__(data[i,:],data[j,:],1.0)
            
# 高斯核函数 k(x,x') = exp(-||x - x'||² / C)
    def __Gaussian_Kernel__(self,x,y,C):
        return math.exp(-(np.linalg.norm((x - y), ord=2) ** 2) / C)

注:这里要注意,对于核函数来说,它是对样本点的计算,即我们知道 X.shape = (n_samples,n_features), 它是对样本点(即行向量)来进行计算。所以这一点我们会发现,这就是为什么核函数对非线性数据进行映射后的内容的意义无法进行文字说明的。(即不清楚它的意义)

  • 计算完K之后需要对K进行修正
# 核矩阵的修正
ones = np.ones((M, M), dtype=float) / M
K = K - np.dot(ones,K) - np.dot(K,ones) + np.dot(np.dot(ones, K),ones)
  • 接下来的操作与PCA基本上是相同的,求解特征向量与特征值再排序

  • 其中计算出来的特征向量排序后即书上会看到的 α ,需要用施密特正交化方法将其单位化

  • 然后根据(特征值与阈值的比例)来选取最好的前多少个特征向量,公式如下:


  • 然后计算完后 Y = K*α (α 为我们选取出来的特征向量)

输出: 降维后的投影Y

KPCA存在三点不足:各特征的物理意义很不明确,一般的PCA仅是原有各特征的线性叠加,还可以勉强找出其含义,而KPCA是不可能明确其物理意义的;求投影所需的计算相对要难得多;测试样本在F空间向量kV上的投影太复杂。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 156,265评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,274评论 1 288
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,087评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,479评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,782评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,218评论 1 207
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,594评论 2 309
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,316评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,955评论 1 237
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,274评论 2 240
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,803评论 1 255
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,177评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,732评论 3 229
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,953评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,687评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,263评论 2 267
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,189评论 2 258

推荐阅读更多精彩内容