基于降维的实验报告

合集下载

PCA降维度实验报告

PCA降维度实验报告

PCA降维度实验报告一、实验目的本实验旨在通过PCA降维算法对高维数据进行降维处理,从而减少特征维度,保留主要信息的同时最大程度地降低数据的冗余度。

二、实验原理1.数据标准化:首先对原始数据进行标准化处理,使得每个特征具有相同的均值和方差,避免一些特征对PCA结果的影响过大。

2.计算协方差矩阵:根据标准化后的数据计算协方差矩阵,该矩阵描述了各个特征之间的相关性。

3.计算特征值和特征向量:对协方差矩阵进行特征值分解,得到特征值和对应的特征向量。

4.选择主成分:选取特征值最大的前k个特征向量作为主成分,这些主成分表示了原始数据中的大部分信息。

5.数据转换:通过将原始数据与选取的主成分进行线性变换,得到降维后的数据。

三、实验过程本实验使用Python编程语言进行实现,具体步骤如下:2.数据预处理:对数据进行标准化处理,使得每个特征的均值为0,方差为13.计算协方差矩阵:根据标准化后的数据计算协方差矩阵。

4.特征值分解:对协方差矩阵进行特征值分解,得到特征值和特征向量。

5.选择主成分:根据特征值大小,选择前k个特征向量作为主成分。

6.数据转换:将原始数据与选取的主成分进行线性变换,得到降维后的数据。

7.可视化展示:将降维后的数据可视化展示,观察不同类别的样本在降维空间中的分布情况。

四、实验结果经过PCA降维处理后,将原始数据的100个特征减少到了10个主成分。

我们对降维后的数据进行了可视化展示,发现不同类别的样本在降维空间中有较好的聚类效果,各类别样本之间的分离度较高。

五、结果分析和讨论通过PCA降维处理,我们成功将原始数据从100维降低到10维,减小了特征维度,同时保留了主要信息。

这不仅能提高模型的计算效率,还能避免过拟合等问题的发生。

此外,PCA降维还能提供一种可视化手段,通过降维后的数据在较低维度空间的分布情况,我们可以更直观地理解数据集中存在的模式或规律。

然而,PCA降维算法也存在一定的局限性,例如对非线性数据的处理效果不佳,可能会引入信息损失等问题。

主成分变换实验报告

主成分变换实验报告

一、实验背景随着遥感技术的快速发展,遥感图像数据在地理信息系统、环境监测、资源调查等领域得到了广泛应用。

然而,遥感图像数据通常具有高维、大数据量等特点,给数据处理和分析带来了巨大挑战。

主成分变换(PCA)作为一种有效的数据降维方法,能够将高维数据转化为低维数据,同时保留大部分信息,在遥感图像处理中具有广泛的应用。

二、实验目的本次实验旨在通过主成分变换方法对遥感图像进行降维处理,分析不同主成分对图像信息的贡献,并探讨主成分变换在遥感图像中的应用。

三、实验原理主成分变换是一种基于特征值分解的降维方法。

其基本原理如下:1. 对原始数据进行标准化处理,消除不同量纲的影响;2. 计算原始数据的协方差矩阵;3. 对协方差矩阵进行特征值分解,得到特征值和特征向量;4. 根据特征值的大小,选取前k个特征向量,构成主成分变换矩阵;5. 对原始数据进行主成分变换,得到降维后的数据。

四、实验步骤1. 读取遥感图像数据;2. 对图像数据进行预处理,包括去噪声、归一化等;3. 计算图像数据的协方差矩阵;4. 对协方差矩阵进行特征值分解;5. 根据特征值的大小,选取前k个特征向量,构成主成分变换矩阵;6. 对原始图像数据进行主成分变换;7. 分析不同主成分对图像信息的贡献;8. 生成降维后的图像,并进行可视化。

五、实验结果与分析1. 主成分分析结果:经过主成分变换后,前k个主成分的方差贡献率逐渐减小,其中第一主成分的方差贡献率最大,说明第一主成分包含了原始图像的大部分信息。

2. 主成分可视化:通过将主成分绘制成散点图,可以直观地观察到不同主成分之间的相关性。

可以发现,第一主成分与其他主成分之间的相关性较低,说明主成分变换有效地降低了数据之间的冗余。

3. 降维后的图像:将原始图像进行主成分变换后,得到的降维图像具有较低的分辨率,但能够保留原始图像的主要特征。

在遥感图像处理中,可以通过降维后的图像进行后续分析,如目标检测、分类等。

机器学习PCA降维

机器学习PCA降维

-31.0513 -24.1667 -13.8782 -253.4167
-31.0513 -13.8782 41.0256
-24.1667 -253.4167 3.1667
协方差矩阵的特征向量:
V=
0.5062 0.5673 0.6460
0.4933 -0.5440 0.0200
0.5156 0.4036 -0.7553
2、实现步骤 1)将样本集按列组成 n 行 m 列矩阵 X 2)将 X 的每一行进行 0 均值化,减去此行的均值 3)求出协方差矩阵 cov_ingredients=cov(ingredients);
4)求出协方差矩阵的特征值及特征向量 5)将特征向量按对应特征值大小从上到下进行排列成矩阵,取前 k 行
%执行结果 %%%%样本数据集(使用 matlab 自带的) % i 6 60
%
1 29 15 52
% 11 56 8 20
% 11 31 8 47
%
7 52 6 33
% 11 55 9 22
%
3 71 17 6
%
1 31 22 44
%
2 54 18 22
% 21 47 4 26
0.4844 -0.4684 0.1085
特征值:
D=
0.2372
0
0
0 12.4054
0
0
0 67.4964
0
0
0
SCORE 矩阵每列的方差:
latent =
517.7969
67.4964
12.4054
0.2372
降维后的空间表示原空间的程度:
ans =
0.8660
0.9789

人工智能实验-PCA降维

人工智能实验-PCA降维

本科实验报告Principal Component Analysis一、实验题目1.实验4-1利用PCA 函数,对testSet.txt 中数据做降维分析:(1)可视化topNfeat 分别等于1、2 时,PCA 的输出数据;(2)通过与原始数据对比,讨论topNfeat 分别等于1、2 时的降维效果;2.实验4-2利用PCA,对secom.data 数据降维,(1)讨论topNfeat 取值对降维数据的影响;(2)找到降维后恢复的数据与原始数据相对误差小于9% 的topNfeat二、实验代码1.pca.pypca.py from numpy import ∗'''函数的map 函数是用的python2标准,python3无法正常使用。

''' def loadDataSet(fileName,delim=’\t’):fr = open (fileName) stringArr = [line.strip().split(delim) for linein fr.readlines()] datArr=[] for line in stringArr: data=[] for j inline:data.append(float (j))datArr.append(data) return mat(datArr) def pca(dataMat, topNfeat=9999999): meanVals = mean(dataMat, axis=0) meanRemoved = da taMat − meanVals #remove mean covMat = cov(meanRemoved, rowvar=0) eigVals,eigVects = linalg.eig(mat(covMat)) eigValInd = argsort(eigVals) #sort, sort goes smallest to largest eigValInd = eigValInd[:−(topNfeat+1):−1] #cut off unwanted dimensions redEigVects = eigVects[:,eigValInd] #reorganize eig vects largest to smallest lowDDataMat = meanRemoved ∗ redEigVects #transform data into new dimensions reconMat = (lowDDataMat ∗ redEigVects.T) + meanVals return lowDDataMat, reconMatdef replaceNanWithMean():datMat = loadDataSet(’secom.data’, ’ ’) numFeat =shape(datMat)[1]for i in range (numFeat):meanVal = mean(datMat[nonzero(~isnan(datMat[:,i].A))[0],i]) #values that are not NaN (a number) datMat[nonzero(isnan(datMat[:,i].A))[0],i] = meanVal #setNaN values to meanreturn datMat2. 实验 4-11 2 3 4 5 6 7 8 9 10 11 12 131415 16 17 18 19 20 21 22 2324 2526 27 28 29 30 31 32 33 34 35实验 4-1 from numpy import ∗import pcaimport matplotlib.pyplot as pltdataMat = pca.loadDataSet(’testSet.txt’)lowDMat, reconMat = pca.pca(dataMat, 2)shape(lowDMat) fig = plt.figure(1) ax =fig.add_subplot(1,1,1)ax.scatter(dataMat[:,0].tolist(), dataMat[:,1].tolist(), marker = ’^’, s = 90)ax.scatter(reconMat[:,0].tolist(), reconMat[:,1].tolist(), marker = ’o’, s = 50, c = ’red’) plt.savefig(”4−1−topNfeat(2).png”, dpi = 400) plt.show()3. 实验 4-2实验 4-2 import numpy as np import pcaimport matplotlib.pyplot as pltdataMat = pca.replaceNanWithMean() meanVals =np.mean(dataMat, axis = 0) meanRemoved = dataMat− meanVals covMat = np.cov(meanRemoved, rowvar =0) eigVals, eigVects =np.linalg.eig(np.mat(covMat))# 计算降维后恢复的数据与原始数据相对误差小于9%的topNfeat topNfeat = 0 Re_err = 0 for i inrange (999):lowDMat, reconMat = pca.pca(dataMat, i) Err = np.linalg.norm(dataMat − reconMat) / np.linalg.norm(dataMat) if Err < 0.09: topNfeat = i Re_err = Err break print (’降维后恢复的数据与原始数据相对误差小于9%的topNfeat 为:’,topNfeat) print (’此时相对误差为:%0.5f%%’ %(Re_err ∗100) )三、 实验结果1. 实验 4-1topNfeat = 1:1 2 3 45 6 7 8 9 10 111213 1 2 34 5 6 7 8 910 1112 13 14 15 1617 18 19 20 21 2223图1: topNfeat = 1 可视化topNfeat = 2:图2: topNfeat = 2 可视化从可视化图可以看出,topNfeat = 1 时,降维效果比较显著,而topNfeat = 2 时,数据和原始数据重合,降维效果不好,这是因为原始数据只有两个特征,而topNfeat = 2 并没有剔除任何特征。

降维分析实验报告

降维分析实验报告

一、实验背景随着数据量的不断增长,如何从大量数据中提取有价值的信息成为数据分析和处理的关键问题。

降维分析作为一种数据预处理方法,旨在减少数据集的维度,降低数据复杂度,提高数据分析的效率。

本实验通过降维分析,对原始数据进行处理,提取关键特征,为后续的数据挖掘和分析提供支持。

二、实验目的1. 了解降维分析的基本原理和方法;2. 掌握主成分分析(PCA)和因子分析(FA)两种降维方法;3. 通过实验验证降维分析在实际数据中的应用效果。

三、实验内容1. 数据集介绍:选取某电商平台用户购买行为的原始数据集,包含用户ID、商品ID、购买金额、购买时间等特征;2. 数据预处理:对原始数据进行清洗、缺失值处理和异常值处理;3. 主成分分析(PCA):(1)计算原始数据的协方差矩阵;(2)计算协方差矩阵的特征值和特征向量;(3)根据特征值选择主成分;(4)对原始数据进行主成分转换;4. 因子分析(FA):(1)计算原始数据的协方差矩阵;(2)提取因子;(3)对原始数据进行因子转换;5. 降维效果评估:比较原始数据集与降维后数据集的维度、方差解释率和模型拟合度等指标。

四、实验步骤1. 数据导入与预处理(1)使用Python的pandas库导入原始数据集;(2)对缺失值进行处理,采用均值、中位数或众数填充;(3)对异常值进行处理,采用Z-score或IQR方法剔除;(4)数据标准化,将特征值缩放到0-1之间。

2. 主成分分析(PCA)(1)计算原始数据的协方差矩阵;(2)计算协方差矩阵的特征值和特征向量;(3)根据特征值选择主成分,选取累计方差贡献率大于85%的主成分;(4)对原始数据进行主成分转换。

3. 因子分析(FA)(1)计算原始数据的协方差矩阵;(2)提取因子,采用主成分提取法;(3)对原始数据进行因子转换。

4. 降维效果评估(1)比较原始数据集与降维后数据集的维度;(2)计算方差解释率,评估降维后的数据集对原始数据的保留程度;(3)比较原始数据集与降维后数据集的模型拟合度。

主成分分析实验报告剖析

主成分分析实验报告剖析

一、引言主成分分析(PCA)是一种常用的数据降维方法,通过对原始数据进行线性变换,将高维数据投影到低维空间,从而简化数据结构,提高计算效率。

本文通过对主成分分析实验的剖析,详细介绍了PCA的基本原理、实验步骤以及在实际应用中的注意事项。

二、实验背景随着数据量的不断增长,高维数据在各个领域变得越来越普遍。

高维数据不仅增加了计算难度,还可能导致信息过载,影响模型的性能。

因此,数据降维成为数据分析和机器学习中的关键步骤。

PCA作为一种有效的降维方法,在众多领域得到了广泛应用。

三、实验目的1. 理解主成分分析的基本原理;2. 掌握PCA的实验步骤;3. 分析PCA在实际应用中的优缺点;4. 提高数据降维的技能。

四、实验原理主成分分析的基本原理是将原始数据投影到新的坐标系中,该坐标系由主成分构成。

主成分是原始数据中方差最大的方向,可以看作是数据的主要特征。

通过选择合适的主成分,可以将高维数据降维到低维空间,同时保留大部分信息。

五、实验步骤1. 数据准备:选择一个高维数据集,例如鸢尾花数据集。

2. 数据标准化:将数据集中的每个特征缩放到均值为0、标准差为1的范围,以便消除不同特征之间的尺度差异。

3. 计算协方差矩阵:计算标准化数据集的协方差矩阵,以衡量不同特征之间的相关性。

4. 特征值分解:对协方差矩阵进行特征值分解,得到特征值和特征向量。

5. 选择主成分:根据特征值的大小选择前k个特征向量,这些向量对应的主成分代表数据的主要特征。

6. 数据投影:将原始数据投影到选择的主成分上,得到降维后的数据。

六、实验结果与分析1. 实验结果:通过实验,我们得到了降维后的数据集,并与原始数据集进行了比较。

结果表明,降维后的数据集保留了大部分原始数据的信息,同时降低了数据的维度。

2. 结果分析:实验结果表明,PCA在数据降维方面具有良好的效果。

然而,PCA也存在一些局限性,例如:(1)PCA假设数据服从正态分布,对于非正态分布的数据,PCA的效果可能不理想;(2)PCA降维后,部分信息可能丢失,尤其是在选择主成分时,需要权衡保留信息量和降低维度之间的关系;(3)PCA降维后的数据可能存在线性关系,导致模型难以捕捉数据中的非线性关系。

降维分析报告

降维分析报告

降维分析报告引言降维分析是一种在机器学习和数据科学领域广泛应用的方法,它可以帮助我们从高维数据中提取主要特征,减少数据的维度,并保留尽可能多的有用信息。

在本报告中,我们将介绍降维分析的基本概念和常用算法,并通过一个具体的案例来示范如何应用降维分析。

降维分析的背景和意义在现实生活中,许多问题都涉及大量的特征或变量,这些特征可能存在冗余、噪声或不具有明确的解释。

此时,使用原始高维数据进行分析和建模将导致过拟合、维度灾难等问题。

因此,通过降维分析可以将复杂的高维数据转化为更加简洁、易理解的低维表示,帮助我们更好地理解数据并提取重要特征。

常用的降维分析方法主成分分析(PCA)主成分分析是一种常用的无监督降维算法,它通过线性变换将原始数据投影到新的正交特征空间,使得数据在新特征空间上的方差最大化。

通过计算主成分之间的协方差矩阵的特征值和特征向量,我们可以确定新特征空间的基向量,进而进行降维操作。

线性判别分析(LDA)线性判别分析是一种经典的监督降维算法,它将高维数据映射到一个低维空间中,使得不同类别的数据在该空间中的投影能够最大程度地区分开来。

和PCA相比,LDA在进行降维时考虑了类别信息,因此可能更适用于分类问题。

t分布邻域嵌入(t-SNE)t-SNE是一种非线性降维算法,它通过构建高维数据点之间的概率分布和低维数据点之间的概率分布,来保持高维数据的邻域结构。

t-SNE通常被应用于可视化高维数据,特别是在探索复杂数据集时非常有用。

降维分析的案例应用为了更好地理解降维分析的实际应用,我们以鸢尾花数据集为例进行分析。

鸢尾花数据集是一个经典的多分类问题,其中包含了四个特征:花萼长度、花萼宽度、花瓣长度和花瓣宽度。

我们可以使用降维分析方法对鸢尾花数据集进行可视化,并探索数据的结构和分布。

首先,我们使用主成分分析(PCA)对鸢尾花数据进行降维。

通过计算主成分之间的协方差矩阵的特征值和特征向量,我们可以选择保留的主成分数量,从而实现数据降维。

PCA与ICA的实验报告

PCA与ICA的实验报告

PCA 与ICA的实验报告一实验原理PCA的步骤:1 先将数据中心化;2 求得的协方差矩阵;3 求出协方差矩阵的特征值与特征向量;4 将特征值与特征向量进行排序;5 根据要降维的维数d’,求得要降维的投影方向;6 求出降维后的数据;1 原始信号s1,s2是两个在[-1-1]上的均匀分布的独立信号,x1,x2是s1,s2经混合矩阵A混合的信号。

分别用PCA与ICA对x1,x2进行分析,比较得到的结果。

实验结果:**************PCA Processing**********************协方差矩阵的特征值与特征向量矩阵:E =0.5180 -0.8554-0.8554 -0.5180D =1.0e+003 *0.0235 00 1.1400投影向量为:P =-0.8554 0.5180-0.5180 -0.8554************************ICA Processing******************************Number of signals: 2Number of samples: 500Calculating covariance...Dimension not reduced.Selected [ 2 ] dimensions.Smallest remaining (non-zero) eigenvalue [ 0.0470454 ]Largest remaining (non-zero) eigenvalue [ 2.2799 ]Sum of removed eigenvalues [ 0 ][ 100 ] % of (non-zero) eigenvalues retained.Whitening...Check: covariance differs from identity by [ 1.13243e-014 ].Used approach [ defl ].Used nonlinearity [ tanh ].Starting ICA calculation...IC 1 puted ( 6 steps )IC 2 puted ( 2 steps )Done.Adding the mean back to the data. ICA分解得到的混合矩阵A:A =1.1967 0.49870.6072 0.5268ICA分解得到的分离矩阵W:W =1.6084 -1.5228-1.8542 3.6539结果:从上面的结果可以看出:(1)ICA是假设信号源之间是相互独立的,基于四阶统计量(kurtosis);PCA是假设信号源之间是相互不相关的,基于二阶统计量(方差);(2)PCA的第一个主成分的方向是最大方差的方向,就是PC1 的方向,第二主成分的方向与PC1互相垂直,就是PC2的方向。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

X =

k =1
C
X
kn k
,
N =
∪ nk
k =1
C
输出: Y ,其中 Y 以元胞数组形式存放,每一个 Yi 表示降到 i 维时的嵌入值。 算法步骤(见参考文献 5): 步骤 1:基于公式(5)计算类间散度矩阵,其中 u k 表示第 k 类样本均值, u 为 总体样本均值;
C
SB =
∑n
k =1
−3
D = D + α max ( D)Λ
其余步骤与 LLE 算法相同。
( 11 )
3.6 Isomap 实验
输入: X , X D× N = [ X 1 , X 2 ,⋯ X N ] ,其中 D 为数据维数, N 为样本点数。 参数: K ,其中 K 为邻域值大小,这里取 10。 输出: Y ,其中 Y 以元胞数组形式存放,每一个 Yi 表示降到 i 维时的嵌入值。 算法步骤(见参考文献 8): 步骤 1:基于欧式距离构造矩阵 D ,其中 Dij 表示 X i 和 X j 的距离; 步骤 2:计算每一个样本点的 K 邻域; 步骤 3:若样本 j 是样本 i 的 K 邻域,则 Dij = d ij ,否则置为无穷大,计算 dijkstra 距离。 其余步骤与 MDS 算法相同。
−d ( x − x ) ⎧ β ⎪ ⎪ 1− e D( xi , x j ) = ⎨ ⎪ d ( xβ− x ) ⎪ −α ⎩ e
2
i
j
label(i ) = label( j ) label(i) ≠ label ( j )
2
(12)
i
j
其余步骤与 Isomap 算法相同。
3.8 LE 实验
输入: X , X D× N = [ X 1 , X 2 ,⋯ X N ] ,其中 D 为数据维数, N 为样本点数。 参数: K ,其中 K 为邻域值大小,这里取 10。 输出: Y ,其中 Y 以元胞数组形式存放,每一个 Yi 表示降到 i 维时的嵌入值。 算法步骤(见参考文献 10): 步骤 1:基于欧式距离构造矩阵 D ,其中 Dij 表示 X i 和 X j 的距离; 步骤 2:计算每一个样本点的 K 邻域; 步骤 3:若样本 j 是样本 i 的 K 邻域,则W ij = e 步骤 4:对公式(13)做 ⎪ 1− e D ( xi , x j ) = ⎨ d (x −x ) ⎪ β −α ⎩ e
2
i
j
label (i ) = label ( j ) label (i ) ≠ label ( j )
2
(14)
i
j
其余步骤与 LE 相同。
4、分类测试算法
4.1 参数设置 测试分类效果的方法采用 SVM,算法实现使用程序包 LibSVM。所有算 例的模型选择和参数设置方法如下: 采用高斯(RBF)核函数
基于降维分类实验报告 1、 初始数据
实验采用 Glass、Wine、Colon-cancer、Heart、Swiss-roll 五组数据集, 详见表 1。
数据集(表 1) 数据集
glass wine swiss roll heart_scale colon-cancer
样本点数
214 178 500 270 62
最大特征值的特征向量(由于 SW 一般为奇异矩阵,故在此进行了正则化, 即
S W = S W + ones ( n , n ) × tol × tr ( S W ) );
W T S BW Wopt = arg max T = [ w1 , w2 ,⋯ wm ] W SW W
步骤 4:基于公式(8)做低维嵌入数据。
3、实验步骤(基于 matlab) 3.1 PCA 实验
输入: X , X D× N = [ X 1 , X 2 ,⋯ X N ] ,其中 D 为数据维数, N 为样本点数。 输出: Y ,其中 Y 以元胞数组形式存放,每一个 Yi 表示降到 i 维时的嵌入值。 算法步骤(见参考文献 3): 步骤 1:基于公式(1)计算协方差矩阵, 其中X 为样本均值 ;
3.7 Sisomap 实验
输入: X 和 label , X D× N = [ X 1 , X 2 ,⋯ X N ] ,其中 D 为数据维数, N 为样本点数,
label 为类标签。
参数: K 和 α ,其中 K 为邻域值大小,这里取 10, α 为公式(12)的参数, 这里取 0.5。 输出: Y ,其中 Y 以元胞数组形式存放,每一个 Yi 表示降到 i 维时的嵌入值。 算法步骤(见参考文献 9): 步骤 1:根据欧式距离构造矩阵 D ,其中 Dij 表示 X i 和 X j 的距离; 步骤 2:基于公式(12)更新矩阵 D ,其中 β 为所有样本点的平均距离。
label 为类标签。
参数: K 和 α ,其中 K 为邻域值大小,这里取 10, α 为公式(14)的参数, 这里取 0.5。 输出: Y ,其中 Y 以元胞数组形式存放,每一个 Yi 表示降到 i 维时的嵌入值。 算法步骤(见参考文献 11): 步骤 1:根据欧式距离构造矩阵 D ,其中 Dij 表示 X i 和 X j 的距离; 步骤 2:基于公式(12)更新矩阵 D ,其中 β 为所有样本点平均距离的平方。
维数
9 13 3 13 2000
分类数目
6 3 5 2 2
各个数据集描述如下: Wine 数据集采自 UCI 数据库(见文献【1】)。包括 13 个特征的 3 类 葡萄酒共 178 个样本,大量的文献采自此数据库。数据集没有缺失值,样 本经过归一化处理,即取值在[-1,1]之间。 Colon-cancer 数据集,用于二分类的数据集。文献【2】中实验所采用 的数据集, 包含结肠癌基因表达以及正常基因表达数据共 62 个,2000 个基 因。所有样本都经过中心化,和方差标准化处理。
Y = X TU
3.2 MDS 实验
输入: X , X D× N = [ X 1 , X 2 ,⋯ X N ] ,其中 D 为数据维数, N 为样本点数, 参数: tol ,其中 tol 为正则化参数,这里取10 −3 。
(3)
输出: Y ,其中 Y 以元胞数组形式存放,每一个 Yi 表示降到 i 维时的嵌入值。 算法步骤(见参考文献 4): 步骤 1:基于欧式距离构造矩阵 D ,其中 Dij 表示 X i 和 X j 的距离; 步骤 2:计算矩阵 S 和 H ,其中 S ij = Dij 2 , H = I − 步骤 3:基于公式(4)L=-H*S*H 做特征分解;
−−
d ij 2 t2
,否则置为 0;
L = D −W
( 13 )
步骤 5:对特征值从小到大排序,选取第 2 到 d + 1 个特征对应的特征向量 即为 d 维嵌入值。(注:由于最小特征值为 0,此时特征向量全为 1,故不 选取)
3.9 SLE 实验
输入: X 和 label , X D× N = [ X 1 , X 2 ,⋯ X N ] ,其中 D 为数据维数, N 为样本点数,
带有类标签的 Swiss roll 曲线(图 1)
表2
数据集
glass(214 个) Swiss roll(1000 个)
Isomap
0.6163 0.5339
S-isomap
0.7141 0.8318
K-NN
0.6897 0.8268
SVM
0.6309 0.8376
2、降维方法
用线性和非线性的降维方法处理五组高维数据, 并同时考虑 有监督和无监督的情况(见表3),基于 SVM 分类器,分析降到不 同维数时的分类精度。 表3 非线性降维 线性降维 无监督 PCA principal component analysis MDS multidimensional scaling LDA(有监督) linear discriminant analysis LLE locally linear embedding Isomap isometric mapping LE laplacian eigenmaps 有监督 SLLE supervised LLE SIsomap supervised Isomap SLE supervised LE
步骤 3:基于公式(9)求解每一个样本点 X i 的权值Wi ,其中Wij 表示第 j 个样 本点在第 i 个样本点中的权重,其中样本 j 是样本 i 的 K 邻域,否则取值为; (注:由于求解过程中矩阵可能为奇异值,故进行了正则化,类似于 LDA 方 法)
2
arg min X i − ∑Wij X j
j →i
(9)
步骤 4:对公式(10)进行特征值分解;
M = (I - W) T (I - W)
(10)
步骤 5:对特征值从小到大排序,选取第 2 到 d + 1 个特征对应的特征向量 即为 d 维嵌入值。(注:由于最小特征值为 0,此时特征向量全为 1,故不 选取)
3.5 SLLE 实验
输入: X 和 label , X D× N = [ X 1 , X 2 ,⋯ X N ] ,其中 D 为数据维数, N 为样本点数,
1 Sij=Dij2; N
τ (D) = -HSH
(4)
步骤 4:对特征值从大到小排序,选取相应的特征向量作为嵌入数据。
3.3 LDA 实验
输入: X 和 label , X D× N = [ X 1 , X 2 ,⋯ X N ] ,其中 D 为数据维数, N 为样本点数,
label 为类标签,共有 C 类。即:
C = ( X − X )( X − X ) T
步骤 2:对协方差矩阵做特征分解,对特征值从大到小排序;
(1)
步骤 3:基于公式(2)计算特征值累积贡献率,其中 p 为特征值总数, m 表 示前 m 个最大特征值;
相关文档
最新文档