作业9编程题实验报告(一)实验内容:采用Gaussian核函数,对Iris数据集实现KernelPCA变换,降到两维,并与第二章上机题4得到的结果进行比较。(二)实验原理:1)传统线性PCA:a)样本减去平均值;b)计算协方差矩阵;c)计算协方差矩阵的特征值和特征向量;d)将特征向量按对应特征值大小,从大到小排序;f)将数据转换到需要降到K维的新空间中。2)用Kernel函数在高维空间做PCA:a)数据的标准化:减去均值;b)计算核函数:核函数矩阵大小是数据中样本数的平方;c)中心化核矩阵:d)特征值分解,并将特征向量按特征值的大小顺序排序;e)将数据转换到需要降到K维的新空间中。(三)实验程序:1)PCA:用的作业3编程题中,KL变换的程序,在这次试验中,只需KL变换后取前两列数据即可。2)KPCA:实现函数:[train_kpca]=kpcaFordata(train,kk,rbf_var)输入参数:train:待降维的高维数据;kk:预期降维的维数(默认值为2);rbf_var:高斯核函数的参数22;输出参数:train_kpca:已经从高维降到kk维后的新数据。3)LLE:参考程序链接:~roweis/lle/code.html3)ISOMAP:参考程序链接:(四)实验结果分析和讨论:a)PCA:图1PCA简单线性降维后的得到的二维散点图b)KPCA:图2KPCA降维后的得到的二维散点图c)LLE:图3LLE降维后的得到的二维散点图d)ISOMAP:图4ISOMAP降维后的得到的二维散点图分析:由图中可以明显的看出:(1)这几种降维方法对于Iris数据集都可以实现很好的降维,其中,只有PCA实现线性变换,其余三种均是非线性变换。当隐层节点数较小时,类似于降维,损失了信息,对于神经网络,回归出现欠拟合;(2)从四种算法的计算复杂度,PCA和KPCA都相对简单;(3)KPCA降维方法依赖于核函数的选择以及核函数参数选择,LLE算法依赖于所选近邻个数,ISOMAP算法性能受数据的拓扑结构影响。