本文共 1357 字,大约阅读时间需要 4 分钟。
X = load('data.xlsx', 'B1:I11');m = size(X, 1); % m 表示样本的数量n = size(X, 2); % n 表示特征的数量% 数据标准化for i = 1:m SX(:, i) = (X(:, i) - mean(X(:, i))) / std(X(:, i));end% 计算相关系数CM = corrcoef(SX);% V 是特征向量, D 是特征值[V D] = eig(CM);% 对D特征值进行降序排序, 将结果保存到DS的第一列for i = 1:n DS(:, 1) = D(n + 1 - i, n + 1 - i);end% 计算贡献率和累计贡献率for i = 1:n % 第二列为当前单个, 每一个, 主成分的贡献率 DS(:, 2) = D(i, 1) / sum(D(:, 1)); % 第三列为到当前主成分的累计贡献率 DS(:, 3) = sum(D(1:i, 1)) / sum(D(:, 1));end% 选择主成分T = 0.9;for i = 1:n if DS(:, i) > T k = i; break; endend% 获取主成分对应的特征向量for i = 1:n PV(:, i) = DS(:, n + 1 - i);end% 获取新的特征样本X_new = SX * PV;
转载地址:http://yuuio.baihongyu.com/