降维方法总结(线性与非线性)

本文总结了降维方法,包括线性映射的PCA和因子分析,以及流形学习中的KPCA、t-SNE、MDS、Isomap和LLE。KPCA利用核函数处理非线性数据,t-SNE通过保持数据点局部结构进行降维,MDS力求保持高维到低维的距离,Isomap基于最短路径计算距离,LLE则通过局部线性重构实现降维。
摘要由CSDN通过智能技术生成

线性映射方法

以下方法为基于线性映射处理线性数据的方法。

主成分分析(PCA)

关于PCA的原理以及实现在PCA主成分分析已经详细叙述,这里不做叙述。

因子分析

关于因子分析的愿意以及实现在因子分析(Factor Analyse)推导以及R语言实现已经详细叙述,这里不做叙述。

流形学习

核化线性(KPCA)降维

是一种非线性映射的方法,核主成分分析是对PCA的一种推广。KPCA主要利用了核函数,即对于当前非线性不可分数据,将其映射至更高维的空间至线性可分,再进行降维,而其中利用核函数可求得内积,进而得到样本在特征向量上的投影。

import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets,decomposition,manifold

def load_data():
    iris=datasets.load_iris()
    return iris.data,iris.target

def test_KPCA(*data):
    X,Y=data
    kernels=['linear','poly','rbf','sigmoid']
    for kernel in kernels:
        kpca=decomposition.KernelPCA(n_components=None,kernel=kernel)
        kpca.fit(X)
        print("kernel=%s-->lambdas:%s"%(kernel,kpca.lambdas_))

def plot_KPCA(*data):
    X,Y=data
    kernels = ['linear', 'poly', 'rbf', 'sigmoid']
    fig=plt.figure()
    colors=((1,0,0),(0,1,0),(0,0,1),(0.5,0.5,0),(0,0.5,0.5),(0.5,0,0.5),(0.4,0.6,0),(0.6,0.4,0),(0,0.6,0.4),(0.5,0.3,0.2),)
    for i,kernel in enumerate(kernels):
        kpca=decomposition.KernelPCA(n_components=2,kernel=kernel)
        kpca.fit(X)
        X_r=kpca.transform(X)
        ax=fig.add_subplot(2,2,i+1)
        for label,color in zip(np.unique(Y)
  • 14
    点赞
  • 137
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值