반응형
상관계수
연관성에 대하여 표현해주는 것
아래 파이썬 코드는 OREILLY에 "집단지성 프로그래밍"에서 발췌
Parameter
v1 : 데이터 1
v2 : 데이터 2
prefs : 데이터세트
def - p1과 p2에 대한 피어슨 상관 계수를 리턴
def sim_pearson(prefs, p1, p2):
si = {}
for item in prefs[p1]:
for item in prefs[p2]: si[item] = 1
# 공통 요소의 개수를 구함, 없으면 종료
n = len(si)
if n==0 return 0
# 모든 선호도를 합산함
sum1 = sum([prefs[p1][it] for it in si])
sum2 = sum([prefs[p2][it] for it in si])
# 제곱의 합을 계산
sum1Sq = sum([pow(prefs[p1][it], 2) for it in si])
sum2Sq = sum([pow(prefs[p2][it], 2) for it in si])
# 곱의 합을 계산
pSum = sum([prefs[p1][it] * prefs[p2][it] for it in si])
# 피어슨 점수 계산
num = pSum - (sum1 * sum2 / n)
den = sqrt((sum1Sq - pow(sum1, 2) / n) * (sum2Sq - pow(sum2, 2)/n))
if den==0: return 0
r = num/den
return r
반응형
'Devlopment > 정리 글' 카테고리의 다른 글
C와 Java의 컴파일 과정 (1) | 2011.05.27 |
---|---|
난수 발생기 (2) | 2010.06.23 |
SnmpWalk (0) | 2010.04.27 |
객체 지향 원칙 (0) | 2008.08.21 |
리소스 지향 아키텍처(ROA) (0) | 2008.07.29 |
검색엔진 (1) | 2008.07.17 |
REST (0) | 2008.07.09 |
상관 분석 (0) | 2008.07.08 |
유클리디안 거리 (0) | 2008.07.08 |
집단지성 (0) | 2008.06.25 |