달력

3

« 2024/3 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

'netflix prize/일지'에 해당되는 글 16

  1. 2008.01.28 day 9 ~ 18 1
  2. 2008.01.12 day7, 8
  3. 2008.01.09 day 5 & 6
  4. 2008.01.07 day 4
  5. 2008.01.05 day 2 & 3
  6. 2008.01.03 day1
2008. 1. 28. 00:48

day 9 ~ 18 netflix prize/일지2008. 1. 28. 00:48

netflix prize research day 9 ~ 20
한동안 게을러서 또는 방황해서 잠시 일지를 멈추었었다.
그래.. 001에 물난리나는바람에 아예 쓰지도 못하고 ㅠㅜ.. 또 심적으로도 뭔가에 산만하게 정신이 퍼져있어서
집중 못한거 같기도 하고...
문제는 이번주는 일본에 가느라 아예 공부를 못할듯 ... 쉣.
삼성 SDS에서 압박을 주는건 오히려 감사하다고 해야하나...ㅎㅎ

그래도 짬이 날때마다 코딩을 하여 ... 한일은 바로.다음과 같다.

* mysql포기
* 영화ID로 인덱싱된 binary자료생성
* 사용자ID로 인덱싱된 binary자료 생성
* 이들을 통해 영화간의 유사도 배열 생성(약 7분가량 걸리는 계산)
* 배열 A를 생성하는 코드만 완성(아직 수행은 안했음..)
* 크나큰 삽질
 - 파일 입출력이 얼마나 느린 작업인지 깨닫는데 걸린 시간
 - 메모리내에 효율적으로 자료를 pack시켜서 배열로 저장시켜 캐쉬의 효과를 최대한 누리게 하는 것이
얼마나 중요한지를 새삼 깨닫게 한일...( 무슨 링크드리스트로 해볼려다가 120시간 돌려야 결과가 나오는
코드를 작성한건 솔직히 적기도 쪽팔린다.)

TODO
 - mssql에 모든 데이터를 쑤셔 넣어 버리자!
  - 통계프로그램을 구했으니 슬슬 자료 분석도 시작해 봐야지
 - 2007년 1등한사람의 PDF를 종종 읽으며 연관기술을 습득하자.
 - STL사용법을 삽질기에 적어놓도록 하자.

  1. 주먹구구식이라도 알고리즘 적용하여 한번 풀어보기
  2. 베이지안 네트워크 적용하여 풀기. (통계프로그램의 분석을 통한 확률을 알고 있어야 한다.)

 - 가장 시급한 것은 알고리즘을 개선하는 것이다. 현재 한시간동안 영화를 대략 500개정도 군집화(그룹화)가능하다.
collaborative filtering에 대한 wikipedia자료 정리하기.

문제해결법에 대한 IDEA

*. user들을 군집화시킨 후 알고리즘을 적용한다.(합리적...)
 
*. 영화제목으로부터 연관관계를 끌어낼 수 있을까(시리즈물, 어두운 분위기, 공포 등)
 - WWE
 - soldier
 - Dark
 - dragon ball
 - national geographic
 - 영화제목에 위의 단어가 들어있다면. 이용자가 시리즈물을 보고 평가한 결고를 반영할 수 있다.
 - (user base + item base)
 - 자주 검색되는 단어를 이용해도 된다.
 
*. 시간적으로 '최근' 취향이 비슷할 수록 가중치가 높아진다.
 - user간에 얼마나 '많은' 영화의 평점이 얼마나 '많이'같은지, 그 각각의 영화가 얼마나 시기적으로 '가까운'지에
대하여 유사도를 계산한다..

=> 뭐 이딴것들은 다 논문에 나와있더라.. user-based approach와 item-based approach는 이미 다 나와있고... 상대적으로 item-based approach가 더 좋은 속도와 결과를 내지만,
나중에 데이터 짬뽕시키는게 적중률을 향상시키기에 시도는 했다 하더라.
:
Posted by Kwang-sung Jun
2008. 1. 12. 02:12

day7, 8 netflix prize/일지2008. 1. 12. 02:12

netflix prize research day 7 & 8
<한일이라고는....>
삼성 SDS 관련 문서작성하였다.(PPT)
금요일은,... 001에 물난리가 나는 바람에 001을 쓰지 못하였고, 도서관으로 갔으나, 리눅스에서 무선 인터넷 안되는것 삽질하다가 이도저도 못했다.

TODO
 - mssql에 모든 데이터를 쑤셔 넣어 버리자!
  - 통계프로그램을 구했으니 슬슬 자료 분석도 시작해 봐야지
 - 2007년 1등한사람의 PDF를 종종 읽으며 연관기술을 습득하자.
 - STL사용법을 삽질기에 적어놓도록 하자.

  1. 주먹구구식이라도 알고리즘 적용하여 한번 풀어보기
  2. 베이지안 네트워크 적용하여 풀기. (통계프로그램의 분석을 통한 확률을 알고 있어야 한다.)

 - 가장 시급한 것은 알고리즘을 개선하는 것이다. 현재 한시간동안 영화를 대략 500개정도 군집화(그룹화)가능하다.
collaborative filtering에 대한 wikipedia자료 정리하기.

문제해결법에 대한 IDEA

*. user들을 군집화시킨 후 알고리즘을 적용한다.(합리적...)
 
*. 영화제목으로부터 연관관계를 끌어낼 수 있을까(시리즈물, 어두운 분위기, 공포 등)
 - WWE
 - soldier
 - Dark
 - dragon ball
 - national geographic
 - 영화제목에 위의 단어가 들어있다면. 이용자가 시리즈물을 보고 평가한 결고를 반영할 수 있다.
 - (user base + item base)
 - 자주 검색되는 단어를 이용해도 된다.
 
*. 시간적으로 '최근' 취향이 비슷할 수록 가중치가 높아진다.
 - user간에 얼마나 '많은' 영화의 평점이 얼마나 '많이'같은지, 그 각각의 영화가 얼마나 시기적으로 '가까운'지에
대하여 유사도를 계산한다..
:
Posted by Kwang-sung Jun
2008. 1. 9. 18:16

day 5 & 6 netflix prize/일지2008. 1. 9. 18:16

netflix prize research day 5 & 6
<5일차의 삽질>
 밤새 돌려놓았던 분류기가 이상하게 0바이트의 파일들을 만들어 내고 있었다.
새로운 그룹을 생성하였지만 사이즈가 그대로 0이 되어버리는 경우는?
 ->> 반지의 제왕! .. 그 누구라도 4점과 5점을 주었다. 따라서 1점 2점 3점의 그룹은 사이즈가 0인채로 기록된것이다.

< 삽질하나더>
hash_map<int, char*> 의 인스턴스가 newHash라고 할때,
newHash[3] = "dkfjld"
라고 쓰는것은 좋다. 그러나 값을 가져오기 위해서 newHash[3]을 사용해서는 안된다. 만약 3이라는 key값에 해당하는 value가 없을 경우에는 결국 키값이 3, 밸류가 0인 자료를 생성해서 대입하게 되기 때문이다.

<클러스터링>
클러스터링이란, 내가 생각해오던 대로 군집화시키는 알고리즘이었다.
wikipedia.org를 참고하여서 클러스터링 알고리즘을 이해하고 알고리즘을 노트에
순서대로 적어놓았다.
한가지 결정할 사항이 있다.
mysql에 모든 자료를 다 집어넣어놓고 작업을 해야 하는가?
아마도 그런 듯 하다. 왜냐하면 지금 파일에는 '영화'기반으로 자료가 들어가 있는데,
'유져'기반의 추천시스템인 collaborative filtering을 구현하기 위해서 나는 자료를 반드시 '유져'기반으로 갖고 있어야 하기 때문이다. 그렇다고 해서 코딩으로 이들을 모두 분류시키기는 또 무리인 것 같고.. 아구마 할일 많구만.


TODO
 - mssql에 모든 데이터를 쑤셔 넣어 버리자!
  - 통계프로그램을 구했으니 슬슬 자료 분석도 시작해 봐야지
 - 2007년 1등한사람의 PDF를 종종 읽으며 연관기술을 습득하자.
 - STL사용법을 삽질기에 적어놓도록 하자.

  1. 주먹구구식이라도 알고리즘 적용하여 한번 풀어보기
  2. 베이지안 네트워크 적용하여 풀기. (통계프로그램의 분석을 통한 확률을 알고 있어야 한다.)

 - 가장 시급한 것은 알고리즘을 개선하는 것이다. 현재 한시간동안 영화를 대략 500개정도 군집화(그룹화)가능하다.
collaborative filtering에 대한 wikipedia자료 정리하기.

문제해결법에 대한 IDEA

*. user들을 군집화시킨 후 알고리즘을 적용한다.(합리적...)
 
*. 영화제목으로부터 연관관계를 끌어낼 수 있을까(시리즈물, 어두운 분위기, 공포 등)
 - WWE
 - soldier
 - Dark
 - dragon ball
 - national geographic
 - 영화제목에 위의 단어가 들어있다면. 이용자가 시리즈물을 보고 평가한 결고를 반영할 수 있다.
 - (user base + item base)
 - 자주 검색되는 단어를 이용해도 된다.
 
*. 시간적으로 '최근' 취향이 비슷할 수록 가중치가 높아진다.
 - user간에 얼마나 '많은' 영화의 평점이 얼마나 '많이'같은지, 그 각각의 영화가 얼마나 시기적으로 '가까운'지에
대하여 유사도를 계산한다..
:
Posted by Kwang-sung Jun
2008. 1. 7. 21:27

day 4 netflix prize/일지2008. 1. 7. 21:27

netflix prize research day 4
 - grouper.cpp와 filler.cpp로 나누었다.
 - grouper.cpp는 그룹화 시켜서 하위 폴더, grouped_file 폴더에 저장된다.
 - 각 파일은 group0001.txt와 같은 모양을 하고 있다.
 - filler.cpp는 그룹화된 파일들을 바탕으로 하여 직접 문제에 답을 작성해 나가게 될 프로그램이다.
 - svn을 도입하여 프로젝트형상관리(?ㅎㅎ)를 시작하였씁니다.
 - 오늘의 삼질은. STL에 대한 것이다. STL에서 find()함수는 iterator를 리턴한다. 그리고 찾지 못한 경우는 <stl객체>.end()와 같은 값을 같게 된다. 또한. map의 경우 []가 오버로딩되어있는데  tmpMap[2];라는 문장이 수행만 되어도 키값 2, 밸류 0으로 삼는 멤버가 생성되는 조금 특이한 경우가 있다. 이거때문에 세네시간은 삽질하지 않았나 싶다.

TODO
  - 통계프로그램을 구했으니 슬슬 자료 분석도 시작해 봐야지
 - 2007년 1등한사람의 PDF를 종종 읽으며 연관기술을 습득하자.
 - STL사용법을 삽질기에 적어놓도록 하자.
  1. 주먹구구식이라도 알고리즘 적용하여 한번 풀어보기
  2. 베이지안 네트워크 적용하여 풀기. (통계프로그램의 분석을 통한 확률을 알고 있어야 한다.)

 - 가장 시급한 것은 알고리즘을 개선하는 것이다. 현재 한시간동안 영화를 대략 500개정도 군집화(그룹화)가능하다.
collaborative filtering에 대한 wikipedia자료 정리하기.

문제해결법에 대한 IDEA
1. 그때 그때 qualifying에서 나오는 자료를 보고 즉석 계산한다.
 -> 중복계산이 너무나 많다.
 
2. user들을 군집화시킨 후 알고리즘을 적용한다.(합리적...)
 
3. 영화제목으로부터 연관관계를 끌어낼 수 있을까(시리즈물, 어두운 분위기, 공포 등)
 - WWE
 - soldier
 - Dark
 - dragon ball
 - national geographic
 - 영화제목에 위의 단어가 들어있다면. 이용자가 시리즈물을 보고 평가한 결고를 반영할 수 있다.
 - (user base + item base)
 - 자주 검색되는 단어를 이용해도 된다.
 
4. 시간적으로 '최근' 취향이 비슷할 수록 가중치가 높아진다.
 - user간에 얼마나 '많은' 영화의 평점이 얼마나 '많이'같은지, 그 각각의 영화가 얼마나 시기적으로 '가까운'지에
대하여 유사도를 계산한다..
:
Posted by Kwang-sung Jun
2008. 1. 5. 17:05

day 2 & 3 netflix prize/일지2008. 1. 5. 17:05

netflix prize research day 2&3
-  노트북에 리눅스를 설치하고 코딩을 시작하였다.
- C++ 최적화 옵션 -static -O3를 사용하였다.
- 알고리즘 :
  1. 각 유저들의 rating을 기반으로 그룹화를 한다.
  2. 그룹을 바탕으로하여 실제 rating을 추측해낸다.
- 문제점 : 시간이 너무 오래걸린다. OTL
- 방향개선 : 통계자료 이용, db이용
TODO
  1. 주먹구구식이라도 알고리즘 적용하여 한번 풀어보기
  2. 베이지안 네트워크 적용하여 풀기. (통계프로그램의 분석을 통한 확률을 알고 있어야 한다.)

 - 가장 시급한 것은 알고리즘을 개선하는 것이다. 현재 한시간동안 영화를 대략 500개정도 군집화(그룹화)가능하다.
collaborative filtering에 대한 wikipedia자료 정리하기.

문제해결법에 대한 IDEA
1. 그때 그때 qualifying에서 나오는 자료를 보고 즉석 계산한다.
 -> 중복계산이 너무나 많다.
 
2. user들을 군집화시킨 후 알고리즘을 적용한다.(합리적...)
 
3. 영화제목으로부터 연관관계를 끌어낼 수 있을까(시리즈물, 어두운 분위기, 공포 등)
 - WWE
 - soldier
 - Dark
 - dragon ball
 - national geographic
 - 영화제목에 위의 단어가 들어있다면. 이용자가 시리즈물을 보고 평가한 결고를 반영할 수 있다.
 - (user base + item base)
 - 자주 검색되는 단어를 이용해도 된다.
 
4. 시간적으로 '최근' 취향이 비슷할 수록 가중치가 높아진다.
 - user간에 얼마나 '많은' 영화의 평점이 얼마나 '많이'같은지, 그 각각의 영화가 얼마나 시기적으로 '가까운'지에
대하여 유사도를 계산한다..
:
Posted by Kwang-sung Jun
2008. 1. 3. 21:08

day1 netflix prize/일지2008. 1. 3. 21:08

netflix prize research day 1
-  netflix를 다운로드하고 자료의 생김새와 출력 형태를 정리하였다.
 
- 하루에 조금씩이라도 코딩을 하며 흥미를 잃지 않도록 격려한다.
 
- STL C++ 링크드리스트 또는 vector를 이용하여 작성해보자.

TODO
  1. 주먹구구식이라도 알고리즘 적용하여 한번 풀어보기
  2. 베이지안 네트워크 적용하여 풀기.
 
collaborative filtering에 대한 wikipedia자료 정리하기.

문제해결법에 대한 IDEA
1. 그때 그때 qualifying에서 나오는 자료를 보고 즉석 계산한다.
 -> 중복계산이 너무나 많다.
 
2. user들을 군집화시킨 후 알고리즘을 적용한다.(합리적...)
 
3. 영화제목으로부터 연관관계를 끌어낼 수 있을까(시리즈물, 어두운 분위기, 공포 등)
 - WWE
 - soldier
 - Dark
 - dragon ball
 - national geographic
 - 영화제목에 위의 단어가 들어있다면. 이용자가 시리즈물을 보고 평가한 결고를 반영할 수 있다.
 - (user base + item base)
 - 자주 검색되는 단어를 이용해도 된다.
 
4. 시간적으로 '최근' 취향이 비슷할 수록 가중치가 높아진다.
 - user간에 얼마나 '많은' 영화의 평점이 얼마나 '많이'같은지, 그 각각의 영화가 얼마나 시기적으로 '가까운'지에
대하여 유사도를 계산한다..
:
Posted by Kwang-sung Jun