[Data Science] MovieLens 100k Dataset(1)
1. Readme
- 1682개의 영화를 943명의 유저가 평가한 10만 개의 평점 데이터
- 각 유저는 최소 20개의 영화에 대해 평가
- 간단한 유저 정보 포함(나이, 성별, 직업, 우편 번호)
- MovieLens 웹 사이트에서 1997년 9월 19일 ~ 1998년 4월 22일(7개월)동안 수집
- 유저 정보가 데이터셋으로부터 사라졌거나, 20개 미만의 평점을 남긴 유저에 대한 데이터는 해당 데이터셋에서 제외되었음
2. Data 구성
- ml.data.tar.gz : 압축된 tar 파일 u 데이터 파일을 rebuild하기 위해,
gunzip ml-data.tar.gz
tar xvf ml-data.tar
mku.sh
수행
- u.data : 전체 u 데이터 셋. 1682개의 아이템(영화)에 943명의 유저가 평가한 10만개의 평점
각 유저는 20개 이상의 영화에 대해 평가.
유저와 아이템은 1부터 연속적으로 넘버링.
데이터는 랜덤으로 정렬.
user id | item id | rating | timestamp 형식으로 데이터 분리.
timestamp는 unix time으로 설정되어 있음
- unix time
- 1970년 1월 1일 UTC 이후로부터 현재까지 누적된 초 값을 의미
- u.info : u 데이터셋 내에 있는 유저/아이템/평점의 수
- u.item : 아이템(영화)에 대한 정보.
movie id | movie title | release date | video release date |
IMDb URL | unknown | Action | Adventure | Animation |
Children's | Comdey | Crime | Documentary | Drama | Fantasy |
Film-Noir | Horror | Musical | Mystery | Romance | Sci-Fi |
Thriller | War | Western | 형식으로 데이터 분리.
마지막 19개의 필드는 장르이며, 1이 해당 장르의 영화임을 나타내며, 0은 해당 장르의 영화가 아님을 의미.
영화는 한 번에 여러 개의 장르를 가질 수 있음.
movie id는 u.data 데이터 셋 내에서 사용됨.
- u.genre : 장르 리스트.
- u.user : 유저의 정보.
user id | age | gender | occupation | zip code 형식으로 데이터 분리.
user id는 u.data 데이터셋 내에서 사용.
- u.occupation : 직업 리스트.
- u1.base / u1.test (~ u5.base / u5.test) : u data를 8:2로 훈련 데이터와 테스트 데이터로 분리한 데이터 셋.
u1~u5 각각의 테스트 셋에서 다른 데이터를 가지고 있으며, 5 fold 교차 검증을 하는 경우 이 데이터 셋은 muk.sh.의 u.data으로부터 생성될 수 있음.
- K-Fold Cross Validation
- K개의 fold를 만들어 진행하는 교차 검증
- 훈련 데이터를 K개의 Fold로 나눈 뒤, 또 한 개의 Fold에 있는 데이터를 K개로 나눔
- K-1 개는 훈련데이터로, 마지막 한 개는 검증 데이터 셋으로 지정
- 모델 생성 및 예측 후, 에러값 추출
- 다음 Fold에서 검증 데이터셋을 다시 설정 후, 이미 검증으로 사용한 데이터셋은 훈련 데이터셋으로 지정
- K번 반복
- ua.base / ua.test (~ ub.base / ub.test) : u data를 훈련 데이터셋과 테스트 데이터셋의 사용자 당 정확히 10개의 평점을 가진 테스트 셋으로 나눈 데이터 셋.
이 데이터셋은 muk.sh.의 u.data으로부터 생성될 수 있음.
- allbut.pl : 훈련 데이터에서 n개를 제외한 모든 사용자 등급이 존재하는 훈련 및 테스트 데이터셋을 생성하는 스크립트.
- mku.sh : u.data로부터모든 u 데이터셋을 생성하기 위한 shell script