일반화 오류를 측정하려면 후자의 작업을 수행해야합니다. 모든 교육 세트마다 별도의 PCA (모든 분류 자 및 모든 CV 접기마다 별도의 PCA를 수행해야 함).
그런 다음 동일한 변환을 테스트 세트에 적용합니다. 즉 테스트 세트 에서 별도의 PCA를 수행 하지 않습니다 ! 여기에 설명 된대로 훈련 세트의 평균 (필요한 경우 표준 편차로 나눈 값)을 뺍니다. 훈련 세트에서 PCA 후 테스트 세트 제로 센터링 . 그런 다음 훈련 세트의 PC에 데이터를 투사합니다.
사용할 PC 수에 대한 자동 기준을 정의해야합니다.
"실제"분류 이전의 첫 번째 데이터 축소 단계이므로 너무 많은 PC를 사용하면 성능이 저하되지 않습니다. 경험을 통해 얼마나 많은 PC가 좋을지 기대하고 있다면 그것을 사용할 수 있습니다.
또한 모든 대리 모델에 대해 PCA를 다시 실행해야하는지 여부를 테스트 할 수도 있습니다 (하나의 PCA 모델만으로 분석 반복). 이 테스트의 결과는보고 할 가치가 있다고 생각합니다.
한 번 PCA를 반복하지 않는 치우침을 측정 한 결과, 분광학 분류 데이터를 사용하여 모든 대리 모델에 대해 PCA를 다시 실행하지 않을 때 일반화 오류 비율의 절반 만 발견했습니다.
즉, 설명 (예 : 시각화) 목적으로 전체 데이터 세트의 추가 PCA 모델을 구축 할 수 있습니다 . 두 접근 방식을 서로 분리하여 유지하십시오.
여전히 전체 데이터 세트의 초기 PCA가 클래스 레이블을 보지 않고 결과를 바이어스하는 방법에 대한 느낌을 얻는 것이 어렵다는 것을 알고 있습니다.
그러나 데이터를 볼 수 있습니다. 클래스 간 분산이 클래스 내 분산에 비해 크면 클래스 간 분산이 PCA 투영에 영향을 미칩니다. 일반적으로 PCA 단계는 분류를 안정화해야하기 때문에 수행됩니다. 즉, 추가 사례 가 모델에 영향을 미치는 상황에서 .
클래스 간 분산이 작 으면이 편향은 크지 않지만 PCA는 분류에 도움이되지 않습니다. PCA 프로젝션은 클래스 간 분리를 강조하는 데 도움이되지 않습니다.
caret
패키지의 PCA와 PCA를 교차 검증하는 방법에 대한이 질문을 참조하십시오 : PCA 및 k-fold Cross Validation in Caret .