아틴
Atin
아틴
전체 방문자
오늘
어제
  • 분류 전체보기 (460)
    • Devlopment (246)
      • 정리 글 (20)
      • MicroServices (0)
      • Reactive, Concurrenc.. (12)
      • Java (44)
      • Spring (20)
      • C,C++,Ruby,Python (52)
      • Mobile (39)
      • Web (35)
      • Tip & Info (14)
      • Unit Test (7)
    • Infra (44)
      • OS (21)
      • RDBMS (13)
      • NoSQL&Cache (5)
      • AWS (4)
    • Computer Science (11)
    • Etc (156)

블로그 메뉴

  • Home
  • Guestbook

공지사항

인기 글

태그

  • TRPG
  • 아이폰
  • Ruby on Rails
  • jsp
  • 전라도
  • 해킨토시
  • C
  • 자바
  • javascript
  • 정읍
  • Python
  • 안드로이드
  • Android
  • mysql
  • 던젼 앤 드래곤즈
  • Linux
  • 여행
  • Dungeons & Dragons
  • Java
  • CSS

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
아틴

Atin

Devlopment/정리 글

피어슨 상관 계수

2008. 7. 9. 01:59
반응형

상관계수
연관성에 대하여 표현해주는 것


아래 파이썬 코드는 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
    'Devlopment/정리 글' 카테고리의 다른 글
    • 검색엔진
    • REST
    • 상관 분석
    • 유클리디안 거리
    아틴
    아틴

    티스토리툴바