2022.04 ~ 2022.06
프로젝트는 기계학습 수업을 통해 구현하게 되었다.
KOBIS(영화관입장권통합전산망)을 통해서 2004 ~ 2021년도 각 영화 장르의 자료를
영화 관객 수를 이용해서 월별로 분석하고 미래 관객수를 예측한다.
영화 장르는
액션/드라마/판타지/범죄/애니/코미디/스릴러/멜로/
모험/SF/뮤지컬/공포/다큐
조사를 하다보니 장르가 생각보다
많다는 것을 알게 되었다.
총 13개의 장르를
근 20년간 조사하려다 보니
양이 너무 방대했다.
그래서 조원인 4명이서
범위를 적절히 나눠 연도별로 조사했던 것 같다.
그리고 나는
데이터 가공과 데이터 시각화를 담당하였다.
<데이터 가공>
1. KOBIS 연도별 데이터를 수집한다.
2. 각 연도 관객수 1 ~200위까지 순위에서 개봉월, 장르를 추가한다.
이 과정에서 처음엔
관객 수를 지표로 각 연도마다 13개의 장르를 월별로 정리했다.
하지만 예측과정에서 좋은 결과물이 도출되지 않아
이상함을 느끼고 각 장르마다 연도,월별로 정리하였다.
결국 연도마다 장르를 정리한 것이 아니라
장르마다 연도별로 정리한 것이다.
별게 아닐 수 있지만 생각보다 큰 차이가 있었다.
Matplotlib.pyplot 모듈을 이용해 데이터 시각화를 진행하였다.


그럼 다음과 같이
시각화되는 것을 볼 수 있다.
위 사진의 왼쪽은 액션 장르, 오른쪽은 드라마 장르이다.
우리 조는
다항 회귀와 릿지/라쏘를 공부했다.


다항 회귀란?
" 데이터를 표현함에 있어 선형이 아닌 곡선으로 나타나는 경우에 사용하는 회귀 "
- 다항회귀에서 항은 차수(degree)를 뜻하는데 말 그대로
차수가 많다는 것을 의미한다.
차수를 높였을 때의 장점은
기존의 모델보다 더 적은 오차를 만들어낸다는 점이다.
미래의 관객 수를 예측하기 위해 사용한 데이터는
2004 ~ 2021 각 장르별 월별 관객 수로
즉, 현 관객 수는 미래의 관객 수를 예측하기 위한 특징이다.
이 특징을 변형시켜 다향으로 표현한 것이다.
그렇다면 다항 회귀를 표현하는 방법은 무엇일까?
1. 특징에 차수를 부여하여 여러 특징을 만들어내면 된다.
2. 차수가 1인 관객 수라는 단순한 특징을 제곱하여
또 다른 특징을 만들어낼 수 있게 되는 것이다.
3. 한 가지 특징보다 여러가지 특징을 알려줬을 때 더 쉽게 정확히 맞추게 된다.

다항 회귀를 표현할 때, 주의해야할 점은
너무 많은 차수를 사용한다면 오히려 과대적합(Overfitting)을 불러일으킬 수 있다는 것이다.
프로젝트를 하다보니 연도별로 장르를 정리했을 때 과대적합이 있었다.
주의하자.
이를 위해, 사이킷런(sklearn)에서는
과대적합을 막으면서 차수를 자동으로 적절히 조절할 수 있는
릿지(Ridge)와 라쏘(Lasso)라는
훌륭한 규제(regularization) 클래스를 제공한다.




라쏘를 사용하면 데이터가 손실되어
정확도가 떨어질 위험성이 있기도 하다.


릿지 회귀로 학습한 결과,
훈련 데이터 점수 : 0.4339
검증 데이터 점수 : 0.0625







다음과 같은 결과가 나왔다.
장르가 너무 많아서 일부는 생략하겠다.
아무튼 결과는
우리가 세운 가설을 확인해보는 것으로 마무리하겠다.
1. 영화의 흥행에는 장르가 영향을 미칠 것이다.
2. 월별 및 계절과 영화의 흥행에는 연관성이 있을 것이다.
-> 몇몇 영화 장르는 특정 월에 관객 수가 대폭 증가하는 것을 보였다.
(공포, 애니메이션, 코미디, 스릴러, 멜로/로맨스)
-> 일반적으로 6월, 12월경 전체적으로 관객 수가 증가하는 것이 보이며
학생들의 방학으로 인해 관객수가 증가하는 것으로 추측된다.
를 도출해낼 수 있었다.



다음과 같은 결과들을 볼 수 있다.
이것 역시 너무 많은 장르가 있어 생략하겠다.
더 자세한 내용을 알고 싶으면
밑 자료를 들어가보자.
(* 참고로 PPT는 내가 만들었다.)
'코딩일기' 카테고리의 다른 글
| [React] 디스코드와 웹훅 연동 (3) | 2024.12.23 |
|---|---|
| [React] 영화 웹사이트 생성 (10) | 2024.12.21 |
| [React] 프로젝트 시작/ 리스트와 좋아요 (1) | 2024.12.18 |
| [React] React 개인 프로젝트 생성 (1) | 2024.12.17 |
| [MariaDB] 서브 쿼리 (2) | 2024.05.23 |