降维(特征选择与提取)

一、主成分分析PCA

在这里插入图片描述
所选超平面性质:最近重构性、最大可分性
在这里插入图片描述
可从重构角度设置一个重构阈值t,例如t=0.95,然后选取下式成立的最小d*值:
在这里插入图片描述

核化线性降维(KPCA):以核函数k(xi,xj)=Φ(Xi)TΦ(Xj)的形式代替XTX。
在这里插入图片描述
KPCA在计算降维后的坐标表示时,需要与所有样本点计算核函数值并求和,因此该算法的计算开销十分大

from sklearn.decomposition import PCA
pca=PCA(n_components=2)
X2D=pca.fit_transform(X)
pca.components_.T[:,0] #访问第0各主成分
from sklearn.decomposition import KernelPCA
rbf_pca=KernelPCA(n_components=2,kernel='rbf',gamma=0.04)
X_reduced=rbf_pca.fit_transform(X)

二、流形学习manifold learning

思想:若低维流形嵌入到高维空间中,则数据样本在高维空间的分布虽然看上去非常复杂,但在局部上仍具有欧氏空间的性质。因此,可以容易地在局部建立降维映射关系,然后再设法将局部映射关系推广到全局。

①等度量映射Isomap:试图保持邻域距离

在这里插入图片描述
注意:

1.Isomap仅仅只是得到了训练样本在低维空间的坐标,而对于之后没有参与进算法的新样本,我们利用训练数据的高维坐标作为输入,低维坐标作为输出训练一个回归学习器,从而用来预测新样本的低维空间坐标。
2.近邻图的构建通常有两种做法,①指定近邻点个数,例如欧氏距离最近的k个点为近邻点,这样得到的近邻图为k近邻图;②指定距离阈值ϵ,距离小于ϵ的点被认为是近邻点,这样得到的图就是ϵ近邻图。
存在问题:若邻域范围指定过大,则会造成“短路问题”,即本身距离很远却成了近邻,将距离近的那些样本扼杀在摇篮。 若邻域范围指定过小,则会造成“断路问题”,即有些样本点无法可达了,整个世界村被划分为互不可达的小部落。

补充:MDS算法
不管是使用核函数升维还是对数据降维,我们都希望原始空间样本点之间的距离在新空间中基本保持不变,这样才不会使得原始空间样本之间的关系及总体分布发生较大的改变。“多维缩放”(MDS)正是基于这样的思想,MDS要求原始空间样本之间的距离在降维后的低维空间中得以保持。在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

②局部线性嵌入LLE:试图保持邻域内的线性关系

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
补充:t 分布随机邻域嵌入(t-SNE)
在这里插入图片描述

三、距离可分性降维LDA

在这里插入图片描述

①目标: 类内间距小,类间间距大。

最大化目标为:
在这里插入图片描述

②定义在这里插入图片描述

注:多分类问题中类间离散度矩阵的求解应考虑先验概率不相等的情况。

LDA用于分类:

>>> import numpy as np
>>> from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
>>> X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
>>> y = np.array([1, 1, 1, 2, 2, 2])
>>> clf = LinearDiscriminantAnalysis()
>>> clf.fit(X, y)
LinearDiscriminantAnalysis()
>>> print(clf.predict([[-0.8, -1]]))
[1]

LDA用于降维:

from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
lda = LinearDiscriminantAnalysis(n_components=2)
lda.fit(X,y)
X_new = lda.transform(X)
plt.scatter(X_new[:, 0], X_new[:, 1],marker='o',c=y)
plt.show()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值