- 진행기간 : 2021.09 ~ 2021.11
- 목적 : 점점 커져가는 유튜브 시장 속에서 급상승 영상이 되는 요인 분석
- 혼자 진행한 프로젝트
- 사용 툴 : Python / Jupyter
- 사용 라이브러리 및 알고리즘
- 크롤링 : BeautifulSoup, pytube, selenium
- 시각화 : matplotlib, seaborn, wordcloud
- 샘플링 : SMOTE
- 알고리즘 : sklearn, KNN, LDA, SVM, K-Means, GMM, SOM, DB_SCAN
- 최종 PPT :https://github.com/hyegyu/CapstoneDesign2/blob/main/%EC%BA%A1%EC%8A%A4%ED%86%A4%EB%94%94%EC%9E%90%EC%9D%B82_%EB%B0%9C%ED%91%9C.pdf
- 구글에서 제공해주는 API는 하루에 제한이 있어서 만개가 넘는 데이터 수집까지 3달 예상
- 중단 후 방안 탐색
- 해결방안
- 캐글에 매일 정각 자동화 수집한 데이터 존재
- https://www.kaggle.com/rsrishav/youtube-trending-video-dataset
- 데이터 수는 79,554개, 중복제거 후 영상 수 10,923개
- 주제 변경도 고려했지만 캡스톤프로젝트 시 경진대회나 유명한 데이터를 사용하고 싶지 않았음
- 이 데이터는 "매일 정각에 수집했다" 라는 조건을 가짐
- 정각에 급상승 순위에 있던 데이터 vs 비슷한 태그를 가졌지만 정각에 급상승 순위에 올라가지 못한 영상 수집 필요
- Beautiful, Pytube, Selenium 사용
- 기존데이터와 같은 속성을 가진 데이터를 수집가능해야하고 같은 기간동안에 업로드한 영상을 이용
- 중복제거 후 영상 수 5,750개
- 문제점
- 시계열 데이터이며, 유튜브에 그 시간이 조회수, 좋아요수, 싫어요수, 댓글 수에 대해 알기 어렵다고 생각
- 중단
- 카테고리는 Entertainment, People & Blogs, Music 순으로 인기가 많음
- 급상승 영상은 조회수 + 유튜브에서 정한 다른 기준으로 선정
- 그렇기 떄문에 조회수는 좋아요수, 싫어요수, 댓글수와 상관관계가 높음
- 1의 값: 8099 / 0의 값 : 2824
- 균등한 상태의 데이터가 아님
- 처음에 미쳐 확인하지 못하고 진행
- SVM, LinearSVM, LDA, LSTM, GRU, MLP 사용
- 표준화를 한 SVM, LinearSVM, LDA, MLP가 괜찮게 분류 됬지만 과적합 심각
- 유튜브에 오랫동안 있던 일수를 계산하여 통계를 냇을 때, 25%는 5일, 50%는 7일로 나옴
- 이렇게 하나 저렇게 하나 불균형데이터라 5일, 7일 둘 로 나누어 진행.
- 오버샘플링 방법은 SMOTE 사용
- 분류분석으로 KNN, LDA, SVM 사용
- KNN은 과적합, 나머지 둘은 잘 안됨
- 군집분석으로 PCA, K-MEANS, DB-SCAN, SOM, GMM 사용
- SOM이 그나마 괜찮게 분류