机器学习十大算法之Matlab-9降维算法

机器学习十大算法之Matlab-9降维算法

  • 降维算法
    • PCA算法
    • 对数据集进行PCA后再重构
    • PCA降维-Matlab代码
      • 例子1-系统pca做降维pca_mat.m
      • 例子2-系统pca对简单数据集降维pca2_mat.m
      • 例子3-系统fastPCA做降维pca_iris.m

降维算法

PCA算法

  • 算法流程:最小的m-l个特征值被舍弃了,这是降维的结果。舍弃部分信息后使得样本的1信息密度变大;2后面的m-l个特征是噪声,有去噪的效果。
    机器学习十大算法之Matlab-9降维算法_第1张图片

对数据集进行PCA后再重构

  • 1通过上面算法降维成l个维度l < 机器学习十大算法之Matlab-9降维算法_第2张图片
  • 2再进行升维重构
    机器学习十大算法之Matlab-9降维算法_第3张图片

PCA降维-Matlab代码

例子1-系统pca做降维pca_mat.m

  • 改例子有计算过程。
%使用pca函数进行降维
X=[1,2;3,3;3,5;5,4;5,6;6,5;8,7;9,8]; %样本矩阵,每行一个样本向量
[coeff,  score,  latent]=pca(X); %主成分分析
coeff, %主成分分量 (每列为一个变换空间中的基向量)
score, %主成分, score(:,1) 为X的一维表示, score为X在变换空间中的二维表示
latent, %X样本协方差矩阵的特征值

例子2-系统pca对简单数据集降维pca2_mat.m

  • 13*4的数据进行降维
clc, clear all, close all
load hald %载入数据集
X=ingredients; %将数据集中的13x4矩阵矩阵赋给X
[coeff,score]=pca(X,'Centered','off'), %调用函数pca, 不对数据中心化

例子3-系统fastPCA做降维pca_iris.m

  • 对鸢尾属植物数据集降至2维
%用fastPCA函数对鸢尾属植物数据集降至2维
clc, clear all, close all
load fisheriris
X = meas;  Y = species;
[n,m]=size(X);
[V,pcaX]=fastPCA(X,2);
gscatter(pcaX(:,1),pcaX(:,2),Y,'rbm','*vo');

你可能感兴趣的:(matlab,算法)