PCA SVD opencv 降維對比

2021-06-22 12:12:54 字數 1344 閱讀 4836

這裡選用hog 特徵的資料對比

#include "stdafx.h"

#include #include #includeusing namespace cv;

using namespace std;

vectorget(string filename)

//len++;

} svm_data.close();//關閉檔案

return img_path;

}int _tmain(int argc, _tchar* argv)

else

}

} int num=0;

svm_data.close();//關閉檔案

cvmat *data_mat, *res_mat;

int nimgnum = nline / 2; //nimgnum是樣本數量,只有文字行數的一半,另一半是標籤

data_mat = cvcreatemat( nimgnum, 1764, cv_32fc1 ); //第二個引數,即矩陣的列是由下面的descriptors的大小決定的,可以由descriptors.size()得到,且對於不同大小的輸入訓練,這個值是不同的

cvsetzero( data_mat );

//型別矩陣,儲存每個樣本的型別標誌

res_mat = cvcreatemat( nimgnum, 1, cv_32fc1 );

cvsetzero( res_mat );

iplimage* src;

iplimage* trainimg=cvcreateimage(cvsize(64,64),8,3);//需要分析的,這裡預設設定是64*64大小,所以上面定義了1764,如果要更改大小,可以先用debug檢視一下descriptors是多少,然後設定好再執行

//處理hog特徵

for( string::size_type i = 0; i != img_path.size(); i++ )

if(img_catg[i]==-1)

img_catg[i]=2;

else

num++;

cvmset( res_mat, i, 0, img_catg[i] );

// cout<

結果對比:第乙個為opencv的  pca, 第二個為svd 進行的pca

都選取前100個特徵值和特徵向量

對PCA降維的理解

這幾天要參加數學建模了,突然想起在建模中可能會遇到從大量的特徵指標中選出關鍵特徵的這個工作,有可能會用到pca降維的知識,所以在比賽前又對這個知識點做一番整理。這篇部落格的首要目的是說明pca的降維原理。示例方面的話在之後有時間就進行補充。我的敘述會以以下順序進行。1.向量空間 2.線性對映 3.減...

python降維分析 Python資料降維

一些資料降維的特徵提取演算法,先導入包和資料 import numpy as np import pandas as pd import matplotlib.pyplot as plt from mpl toolkits.mplot3d import axes3d from sklearn.dec...

python用tsne降維 tSNE降維

我有兩套資料訓練和測試。這兩個資料集分別有30213和30235個專案,每個專案有66個維度。在 我正在嘗試應用scikit learn的t sne將維數降到2。由於資料集很大,如果我試圖一次性處理整個資料,我會遇到記憶體錯誤,我會嘗試將它們分成塊,然後一次轉換乙個塊,如下所示 tsne manif...