파일 정리
(데이터 파일)
- data
- preprocessing_data
- result_data
(코드 파일)
- preprocessing_code
- modeling_code
0. import library
1. load data
데이터 불러오기
2. data preprocessing
2-1. data check
- 데이터 상세 설명
2010년대 한국에서 개봉한 한국영화 600개에 대한 감독, 이름, 상영등급, 관객수 등의 정보가 담긴 데이터
- 각 변수 의미 확인
title : 영화의 제목
distributor : 배급사
genre : 장르
release_time : 개봉일
time : 상영시간(분)
screening_rat : 상영등급
director : 감독이름
dir_prev_bfnum : 해당 감독이 이 영화를 만들기 전 제작에 참여한 영화에서의 평균 관객수(단 관객수가 알려지지 않은 영화 제외)
dir_prev_num : 해당 감독이 이 영화를 만들기 전 제작에 참여한 영화의 개수(단 관객수가 알려지지 않은 영화 제외)
num_staff : 스텝수
num_actor : 주연배우수
box_off_num : 관객수
2-2. preprocessing data
- 데이터 시각화 후 확인
- 결측치 제거
dir_prev_bfnum의 경우 결측치가 너무 많으므로 제거
title의 경우 의미가 없으므로 제거
director 너무 다양하므로 제거
distributor 상위 5개 제외 나머지 '기타'로 구분
release_time: 'year', 'month'로 구분
- 데이터 정리 완료 후 확인 시각화
- 범주형/연속형 변수 구분
범주형 변수: 연속형 변수 제외 나머지 변수
연속형 변수: time, dir_prev_num, num_staff, num_actor, box_off_num, year, month
- 연속형 변수 간 상관관계 확인
- 범주형 변수 원핫 인코딩
~~ 여기까지 진행한 후 preprocessed_train, preprocessed_test로 저장~~
- 데이터 분할
train : test = 8 : 2로 분할
3. modeling
validation data에 대해 mae, rmse 결과를 구한 후 시각화 (predict : red, true : blue)
test data에 진행하여 결과 시각화 (green)
- Linear Regression
MAE : 782779.641114027
RMSE : 1391751.0158901948
- SVM
MAE : 649938.9463260785
RMSE : 1768330.9951677313
예측을 하나도 하고 있지 못하는군...
- tree
MAE : 723227.4666666667
RMSE : 1574956.3350121225
- Random Forest
MAE : 682986.7911666667
RMSR : 1455025.3188581946
4. Result
logistic regression, SVM이 선형 분리 문제에서 특히 좋은 성능을 보인다.
특히 svm의 결과를 확인해보면 전혀 에측하고 있지 못하고 있는 것을 확인할 수 있다.
아마 해당 데이터의 경우 선형 분리에 적절한 형태를 갖고 있지 않은 것 같다.
하여 비선형 모델인 decision tree와 random forest를 적용해본 결과
확실히 이전보다 더 잘 예측하는 것을 확인할 수 있다.
링크
https://github.com/ornni/dacon/tree/main/Movie%20Audience%20Forecast
dacon/Movie Audience Forecast at main · ornni/dacon
repository for recording dacon codes. Contribute to ornni/dacon development by creating an account on GitHub.
github.com