使用pca進行座標系轉換 降維

2021-10-03 04:41:18 字數 2201 閱讀 9565

pca是一種常用的資料降維的方法,而其中的降維的步驟就是:

如果我們不選擇這個步驟,那麼就不會進行降維了,反而會進行座標系的轉換。

新座標的優化目的:使得座標軸正交,並且沿著這些座標方向的資料的方差最大。

clear;clc;close all;

mul = [1 2];

sigma = [1 0.81; 0.81 1];

data1 = mvnrnd(mul,sigma,500);

[pc,score,latent] = pca(data1);

figure(1)

axis equal

plot(data1(:,1),data1(:,2),'*');

hold on

quiver(1,2,pc(1,1),pc(2,1),5)

quiver(1,2,pc(1,2),pc(2,2),5)

plot(sore(:,1),score(:,2))

這樣就可以建立出新的座標系。

生成高斯二維分布的隨機資料

pca函式的使用

在座標上畫向量

有時候pca降維的時候會損失資料的區域性的流形,造成不好的效果。

先定義乙個函式,用來生成一系列有規律的點

%生成一系列園點

function [x1,y1] = creat_circle(r1 , r1_ratio,sita_ratio)

sita = 0:0.05:2*pi;

all_num = size(sita);

all_num = all_num(1,2);

%rand : sita

sita_p = randperm(all_num,floor(sita_ratio*all_num));

%rand : r

r_p = rand(1,floor(sita_ratio*all_num))*r1*r1_ratio;

r1_p = repmat(r1,1,floor(sita_ratio*all_num));

r1_p = r1_p - r_p;

x1 = r1_p.*cos(sita_p);

y1 = r1_p.*sin(sita_p);

scatter(x1,y1)

然後執行下列**:

% 建立座標點

clear;clc;close all;

[x1,y1] = creat_circle(3,0.05,0.95);

[x2,y2] = creat_circle(5,0.05,0.95);

[x3,y3] = creat_circle(9,0.05,0.95);

num = size(x1);

z1 = normrnd(5,1,1,num(1,2))+x1;

z2 = wgn(1,num(1,2),1)+4+y2;

z3 = rand(1,num(1,2))+2+x3;

% 畫figure(1)

scatter(x1,y1,'r')

hold on

scatter(x2,y2,'b')

scatter(x3,y3,'g')

figure(2)

scatter3(x1,y1,z1,'r')

hold on

scatter3(x2,y2,z2,'b');

scatter3(x3,y3,z3,'g');

生成好以後,我們可以看看這些點的分布。

PCA 降維方法的簡單使用

from sklearn.decomposition import pca from sklearn.cluster import kmeans import pandas as pd import numpy as np pca.txt是乙個沒有表頭的多維資料,一共有7列,利用pandas讀取 d...

二維座標系的轉換

二維座標系的變換分為旋轉變換和平移變換。一 旋轉變換 假設已知基座標係xoy中的一點p x,y 座標原點為o,繞點o旋轉 可以求得點p在新座標系x oy 中座標值 x y 如下圖所示 求解x 和y 的關鍵是堅持用已知的邊做斜邊來求解,結合上圖利用三角函式可以求得 x x cos y sin y y ...

PCA主成分分析對資料進行降維

主成分分析 principal component analysis pca 是一種統計方法。通過正交變換將一組可能存在相關性的變數轉換為一組線性不相關的變數,轉換後的這組變數叫主成分。在實際課題中,為了全面分析問題,往往提出很多與此有關的變數 或因素 因為每個變數都在不同程度上反映這個課題的某些資...