본문 바로가기

컴퓨터/수학이랑25

주성분 분석으로 알아 보는 도시 통계 이 글은 주성분 분석의 예제를 위한 글이다. 주성분 분석이 무엇인지 설명하기 위해 도시에 관한 통계를 이용하여 도시의 특성을 살펴 본 글이다. 주성분 분석의 수학적 원리 및 그것을 C++로 구현한 것은 전의 글을 참고한다. 주성분 분석은 분석하는 대상의 차이점을 가장 잘 드러내 주는 변수 조합을 찾는 방법이다. 예를 들면, 한국의 각 도시 간의 차이를 가장 잘 나타내 주는 통계는 무엇일까? 인구, 교원 1인당 학생 수, 도시 면적, 사망자 수, 상수도 보급률 등등의 통계 중에서 도시 간의 차이를 가장 잘 나타내어 줄 수 있는 변수의 조합을 찾을 수 있고, 혹은 각 변수가 도시 간의 차이에 대해 어느 정도의 기여를 하는지 등을 찾는 방법이 주성분 분석이다. 우선 이 글은 통계청 누리집에서 받은 한국의 도시.. 2018. 5. 15.
주성분 분석(PCA, Principal Component Analysis)의 개념 및 구현 주성분 분석(Principal Component Analysis, PCA) 은 데이터 집합 내에 존재하는 각 데이터의 차이를 가장 잘 나타내 주는 요소를 찾아 내는 방법이다. 그 구체적인 의미 및 원리, 그리고 이를 C++로 구현해 본다. 주성분 분석에 대한 개념을 위하여 그 의미를 알 수 있는 간단한 몇 가지 예제에 이어 수학적인 원리를 간략히 살펴 본 후, 그것에 대한 C++을 이용한 구현을 다룬다. 실제 C++ 코드는 후반부에 있으므로 그 부분만 필요할 경우 바로 건너 뛰어도 된다. 하지만 될 수 있으면 이 글 전체를 반복해서 읽기를 제안한다. 또한, 독자가 대학 1, 2학년 정도의 기본적인 선형 대수 내용은 알고 있다고 가정한다. '주성분'에 대한 개념에 대한 감을 잡기 위하여 다음과 같은 상황을.. 2018. 3. 20.
상관계수2 상관계수는 두 변수가 관계(association)을 갖고 있는지를 알 수 있는 하나의 수치이다. 일반적으로 피어슨 상관 계수(Pearson's correlation coefficient 또는 product-moment correlation coefficient)라고 하는 상관계수를 많이 사용하는데, non-parameteric correlation coefficient 인 Spearman Rank-order 상관 계수나 Kendall's Tau 역시 두 변수의 관계를 나타내는 수로 사용될 수 있다. 이 글에선 일단 Pearson's correlation coefficient (PCC) 에 관해 살펴 보고, 구해진 PCC에 대한 통계적 유의성(p-value)를 계산하는 원리를 살펴 보자. (실제로 구현하는.. 2011. 8. 30.
Fisher's linear discriminant 구현 지난 번에 알아 본 Fisher's Linear Discriminant 의 원리를 이제 C++로 구현해 보자. 또한 지난 번 글에서 matlab 으로 테스트 해 보았던 m 코드의 일부를 약간 설명한다. Matlab 에서의 matrix 를 다루는 방식이 FLD 원리 편에서 본 matrix 와 조금은 다르기 때문에 약간의 설명이 필요하다. 또한 matrix inverse 를 구하는 것을 직접 구현하기에는 무리가 따르므로 다른 사람이 구현해 놓은 것을 사용한다. 우리가 직접적으로 계산해야 하는 것은 다음의 수식이다. w는 벡터이고, 우리는 이 벡터의 '방향'만이 필요하므로 위에서 r 은 1로 둔다. Sw 와 m1, m2 는 다음과 같다. 우선 m1 과 m2 부터 구해 보자. 실제로 우리가 다룰 data 는 위.. 2010. 12. 3.