[추천알고리즘] 협업필터링,Collaborative Filtering(CF)

Posted by 알 수 없는 사용자
2015. 9. 20. 03:48 프로그래밍/빅데이터

추천알고리즘(Recommender Algorithm) : 어떤 아이템에 대한 사용자의 선호도를 바탕으로 예측하여 다른 아이템을 알려주는 방법


데이터수집 -> 데이터가공 -> 추천계산 -> 결과도출


데이터수집 : 말 그대로 추천에 사용할 유저행동 데이터를 수집하는것

데이터가공 : 현실속 데이터는 개판이기 때문에..어느정도 가공할 필요성은 있다

추천계산 : 본포스팅에서 주로 다룰 추천계산방법....CF기준

결과도출 : 유사도를 뽑아낸뒤 sort하여 최상위 N개를 뽑아내면 완료


협업필터링,Collaborative Filtering(CF)

1. 나와 가장 유사한 성향지닌 사람을 기반으로 그 사람이 들은 아이템을 추천해주는 것

2. 내가 선호하는 아이템을 기반으로 가장 유사한 성향의 아이템을 추천해주는 것

[그림1] 행위기반 추천 예제


자 이제 유사한(similarity) 성향이라는것은 어떻게 가늠할까?

추천해줄 대상(아이템)의 선호도를 바탕으로 계산된다.

각각의 선호도, 그림1에서 과일들을 구매한횟수, 먹은횟수 가장 최근에 접한 날짜에 대한 데이터 등을 바탕으로 집계한 선호도를 바탕으로 

아래의 공식에 적용시킨다


피어슨상관관계(Pearson product-moment correlation coefficient) : -1부터 1의 값을 가지며 -1은 역으로 동일 , 0 데이터끼리 관계가 전혀 없음, 1은 완전 동일


[공식1]

사용자x와 사용자y의 유사도를 구하는 공식


cosine similarity : 0에서 1까지 값을 가지며 0은 관계없음 1은 완전히 동일


[공식2]

사용자A와 사용자B의 유사도를 구하는 공식



하지만 실제 현실에선 횟수라던지 최근치라던지 그런 데이터들은 집계되지않는 경우가 많다, 집계될시  Y/N, 유무만 기록되기 때문에 합집합의 교집합을 집계로 하는 유사도 상관계수인 타니모토계수를 사용하기도한다

Tanimoto(jaccard)0에서 1까지 값을 가지며 0은 관계없음 1은 완전히 동일

[공식3]

사용자A와 사용자B의 유사도를 구하는 공식

그외 유클리디언 상관계수..는 생략


이렇게 열심히 유사도를 계산해도..

data는 sparse하기 때문에 두드러진 유사도를 찾기 힘들다, 이렇기 때문에 클러스터링이 추가되고......분류가 시작되고....거기에서 또 필터링을 시작하고....


[잡담] 데이터 사이언티스트(data scientist)

Posted by 알 수 없는 사용자
2015. 9. 20. 03:25 프로그래밍/빅데이터



21세기 가장 매력적인 직업, 데이터 사이언티스트(data scientist)

-> 데이터를 분석하여 어떠한 비지니스 모델을 발견하는 사람

-> 빅데이터를 분석, 통계를 내어 데이터의관계를 확인, 이를 상품화시킬 수 있는 사람

때로는 프로그래머이며

때로는 통계학자이며

때로는 기획자이기도한..


데이터 사이언티스트가 되려면???


공부할책을 달달달 외워서 이해하고 응용하실정도의 레벨이 되신다면 아래 사례를 누구나 쉽게 만들수 있습니다?


출처 : http://news.mk.co.kr/newsRead.php?no=614915&year=2012


[데이터분석] 탐색적 데이터 분석 vs 확증적 데이터 분석

Posted by 알 수 없는 사용자
2015. 9. 20. 02:54 프로그래밍/빅데이터

자료분석의 방법

탐색적 데이터 분석(EDA)
- 쌓여있는 데이터를 기반으로 가설을 세워 데이터를 분석하는 방법
- 데이터의 구조와 특징을 파악하며 여기서 얻은 정보를 바탕으로 통계모형을 만드는 단계
- 빅데이터 분석에 사용됩니다

확증적 데이터 분석(CDA)
목적을 가지고 데이터를 확보하여 분석하는 방법
- 관측된 형태나 효과의 재현성 평가, 유의성 검정, 신뢰구간 추정 등 통계적 추론을 하는 단계
- 가설검정, 보통은 설문조사, 논문에 대한 내용을 입증하는데 많이 사용됩니다.

자료분석의 사례


한 영국의 연구결과

구름 낀 날보다 화창한 날에 여성을 유혹하기 더 쉽다는 이색 연구결과가 나왔다.

1일 영국 데일리메일에 따르면 최근 학술지 ‘사회적 영향(Social Influence)’에는 여성이 흐린 날보다 맑은 날 남성의 ‘유혹’에 더 쉽게 마음을 여는 것으로 나타났다는 논문을 실었다.

연구를 진행한 프랑스 남(南)브르타뉴대 연구팀은 지난해 5월~6월 프랑스의 해안도시 2곳에서 젊고 매력적인 남성을 뽑아 무작위로 고른 여성 500명에게 접근시켰다.

연구팀은 기온(18℃~22℃)이 비슷한 조건에서 해가 쨍쨍한 날과 흐린 날(비는 오지 않는)로 나누어 실험을 진행했다. 남성은 또래의 여성에게 접근해 “저는 앙투안입니다. 당신이 너무 예뻐서요. 이제 저는 일을 하러 가야 하는데, 혹시 전화번호를 알려 주실 수 있나요? 제가 전화 드릴게요. 함께 한잔해요”라고 말한 뒤 여성을 응시하면 10초간 반응을 기다렸다.

실험 결과, 화창한 날엔 20%의 여성이 전화번호를 알려준 반면 흐린 날에는 13.9%의 여성만이 전화번호를 알려줬다.

연구팀을 이끈 니콜라 게겐 교수는 “보통 사람들은 햇살이 밝게 비치는 날 더 기분이 좋은 경향이 있다”며 “이 때문에 남성은 화창한 날 여성을 더 쉽게 유혹할 수 있다”고 설명했다. 


위 연구를 바탕으로 EDA와 CDA를 구분

EDA
여성을 유혹한 남성들의 자료를 분석한 결과 일부 남성들은 다른 남성들에 비해 화창한날 유혹을 더쉽게 한다는 것이 발견되었다
여성을 유혹할때 날씨가 관계있다는 추측이 생겼다

CDA
추측이 맞는지 이를 확인하기 위하여 무작위 500명의 여성에게 날씨를 다르게 하여 유혹테스트를 진행 및 확인하였다