내가 만든 LDA in Matlab

Posted 2012. 6. 10. 12:35

최종적으로 하려는 것은 LDA와 다른걸 좀 섞는 것이기 때문에 남이 만든 LDA 함수를 사용하니 내 입맛대로 변경하기가 어려워서..(사실 잘 이해가 안되서 ㅠㅠ..) 결국, 일반적인 fisher criteria를 이용한 LDA를 만들어보았다. 


1. 결과 

 복잡하게(?) 흩어져 있는 data에 LDA를 적용하였다. 그리고 그 결과는 다음과 같다. 분석부터 하자면 LDA는 이름에서 알 수 있듯이 Linear Transform이기 때문에 한계점이 상당히 존재한다. 





2. 매트랩 코드

 이 코드에 보면 projection matrix를 구하는 과정이 있는 데 이 때 eigenvalue의 sum에 몇 %까지에 해당하는 eigenvalue에 해당하는 eigenvector까지 사용하는 routine을 추가할 필요가 있다. 물론 LDA자체가 목적이 아니여서 그런건 안함. 


3. 결론

 d차원의 feature space에서 n개의 카테고리를 갖는 데이터들이 있을 때 이 data들로 LDA를 할 경우 d-1차원의 공간에서 처리를 해도 무관하다. 단순히 projection이므로 1차원을 줄일 수 있다. 물론 1차원까지 줄일 수 있지만 이 경우는 문제가 생길 가능성이 있다. 


 n개의 카테고리를 갖는다면, 각 카테고리 별 n개의 group mean을 구해서 어떤 데이터가 들어왔을 때 LDA로 구한 W로 projection을 시키고, n개의 group mean간의 거리를 통해서 classify를 할 수 있다. 







 

'Enginius > Machine Learning' 카테고리의 다른 글

Gaussian Process  (3) 2012.06.21
[Deep Learning ]RBM trained with Contrastive Divergence  (6) 2012.06.15
내가 만든 LDA in Matlab  (3) 2012.06.10
LDA로 headPoseEstimate하기  (0) 2012.06.09
Linear Discriminant Analysis Matlab Example  (0) 2012.06.09
Random Forest Description  (0) 2012.06.07
  1. 공대생

    | 2014.07.03 17:32 | PERMALINK | EDIT | REPLY |

    LDA 이해에 큰 도움이 되었어요
    좋은 자료 고맙습니다 :)

  2. 공대생 2

    | 2016.06.17 23:53 | PERMALINK | EDIT | REPLY |

    강의를 듣고 이 코드르 보니 이해에 더 큰 도움이 됐습니다!
    감사합니다 ㅎ

  3. 공대생3

    | 2021.10.16 11:12 | PERMALINK | EDIT | REPLY |

    감사합니당

Write your message and submit
« PREV : 1 : ··· : 368 : 369 : 370 : 371 : 372 : 373 : 374 : 375 : 376 : ··· : 644 : NEXT »