PCA類與主成成分的實現 opencv

2021-07-10 17:54:12 字數 1129 閱讀 3918

//主成分分析類

class cv_exports pca

;主成成分的實現(opencv)

#include #include using namespace std;

using namespace cv;

#define rows 6

#define cols 7

void main()

{ //帶降維的原始資料

mat data_mat=(mat_(rows,cols)<<

10.5, 10.4, 4.0, 9.7, 10.8, 14.2, 14.2,

10.8, 9.5, 5.7, 1.7, 16.7, 14.6, 16.4,

10.8, 7.4, 5.2, 9.2, 9.5, 13.6, 12.3,

9.4, 6.0, 4.2, 7.8, 9.1, 9.3, 14.3,

11.8, 7.7, 5.0, 8.1, 9.4, 12.0, 13.6,

11.8, 9.8, 4.4, 2.7, 9.6, 11.3, 13.4 );

pca pca(data_mat,

cv::mat(),

cv_pca_data_as_col, //每一列為乙個樣本

0.9); //保留多少特徵值,百分比,預設全保留

mat dst=pca.project(data_mat); // 資料降維,dst即為主成成分資料

mat src=pca.backproject(dst); //重構原始資料,可以看出src與原始資料很相似

cout<<"dst:"<

1)將原始資料按列組成n行m列矩陣x

2)將x的每一行(代表乙個屬性字段)進行零均值化,即減去這一行的均值

3)求出協方差矩陣c=

1mxx

t 注:這裡的

協方差矩陣指的是樣本協方差矩陣

4)求出協方差矩陣的特徵值及對應的特徵向量

5)將特徵向量按對應特徵值大小從上到下按行排列成矩陣,取前k行組成矩陣p6)y

=px

即為降維到k維後的資料

[1]pca數學原理:

[2][3]

PCA 主成成分分析方法

參考 pca的數學原理 matlab求方差,均值,均方差,協方差的函式 主成分分析 pca 原理詳解 pca降維及python實現 coding utf 8 import numpy as np from sklearn.decomposition import pca x np.array 1,2...

MATLAB實現主成分分析 PCA

function ds,com num,pv,new score,new score s pca dr a,t pca dr 主成分降維及分析函式 輸入變數 a 原始資料 未標準化處理 t 設定累積貢獻率的閾值 輸出變數 ds 特徵值及貢獻率 com num 閾值t對應的主成分數 pv 閾值t對應的...

python實現主成分分析(PCA)

前言 主成分分析主要是用於降維,減少樣本的特徵量,其核心思想是將樣本資料對映到最重要的方向,而最重要的方向就是方差最大的方向。關於主成分分析詳細的理論知識,請至我的這篇博文中檢視 一 pca的簡單實現示例 import numpy as np import matplotlib.pyplot as ...