libpca은 선형 대수학 라이브러리 인 Armadillo을 기반으로하는 주성분 분석을위한 C++ 라이브러리입니다.libpca를 사용한 주성분 분석
그래도 문제가 있습니다. 나는 PCA에 관한 위대한 튜토리얼에서 Lindsay Smith으로 주어진 예제와 출력을 비교하고있다. 첫 번째 주 구성 요소를 검색 할 때 자습서에서 Smith와 동일한 값을 얻지 만 부호는 반전됩니다. 두 번째 주성분의 경우 부호와 값이 정확합니다.
누구나 알고 계십니까?
코드 :
#include "pca.h"
#include <iostream>
using namespace std;
int main(int argc, char** argv) {
stats::pca pca(2);
double* elements = new double[20]{2.5, 2.4, 0.5, 0.7, 2.2, 2.9, 1.9, 2.2, 3.1, 3.0, 2.3, 2.7, 2, 1.6, 1, 1.1, 1.5, 1.6, 1.1, 0.9};
for (int i = 0; i < 20; i++) {
vector<double> record;
record.push_back(elements[i++]);
record.push_back(elements[i]);
pca.add_record(record);
}
pca.solve();
const vector<double> principal_1 = pca.get_principal(0);
for (int i = 0; i < principal_1.size(); i++)
cout << principal_1[i] << " ";
cout << endl;
const vector<double> principal_2 = pca.get_principal(1);
for (int i = 0; i < principal_2.size(); i++)
cout << principal_2[i] << " ";
cout << endl;
delete elements;
return 0;
}
출력 :
0.82797 -1.77758 0.992197 0.27421 1.6758 0.912949 -0.0991094 -1.14457 -0.438046 -1.22382
-0.175115 0.142857 0.384375 0.130417 -0.209498 0.175282 -0.349825 0.0464173 0.0177646 -0.162675
대부분의 경우 주요 구성 요소의 크기가 중요합니다. – mtall
libpca 사용 방법은 어디에서 찾을 수 있습니까? – Ben
@Ben은 내 질문에 완전한 작동 예제를 제공하지 않습니까? – kunterbunt