알고리즘2011. 5. 9. 18:50

위키(영문) : http://en.wikipedia.org/wiki/Pearson_correlation_coefficient


 과 같다.

이는 두개의 데이터 집합이 하나의 직선으로 얼마나 잘 표현되는가를 나타낸다.


glade inflation 이라는 , 점수 부풀리기라는 효과가 존재한다. 

어떤 항목에 대해 score의 차이가 일정할 때서야 높은 상관정도를 가지게 된다.



실제로 동작을 시켜보면

각 language 들이 key와 항목을 지니는 hash를  지닐때

항목은 예를 들면 OOP 정도, C-style 정도, difficult   와 같이 대략 

각 언어들을 평가하는 항목들을 작성해보았다 (그냥 예제)

dat = { 
"C" => { "OOP" => 3.5 , "c style"=>9.9, "difficult" => 6.5},
"C++" => { "OOP" => 8.5 , "c style"=>9.5, "difficult" => 7.5},
"ruby" => { "OOP" => 9.5 , "c style"=>3.4, "difficult" => 3.3},
"perl" => { "OOP" => 9.0 , "c style"=>6.4, "difficult" => 5.3},
"english" => { "natural" => 9.9 , "difficult"=>9.5},
}

C언어는 당연히 C-style 이겟지.. ㅋ


이를 피어슨 상관계수로 표현해보면 (-1~0~1)  의 범위를 지니게 된다.

1은 완전 연관되어 있고, 0은 연관성이 없고, -1 은 완전 반대로 연관되었다.

 
 C는 C++과 강하게 연관되어 있다.

ruby는 perl 과 아주 강하게 연관되어 있다.


항목이 적어서

값이 바뀌면 좀 극단적으로 상관계수가 바뀌ㄴ는 경향이 있는데 , 평가할 수 있는 항목이 좀 많아지면

상관 계수를 좀더 robust 하게 얻어낼수 있을 것 같다.


루비소스

 
Posted by 멍충한아싸

댓글을 달아 주세요

  1. 흰건 종이고 검은건 글씨로다.

    2011.05.10 02:41 신고 [ ADDR : EDIT/ DEL : REPLY ]