프로젝트 시작 동기
- 사람의 시간은 유한하고, 게임을 할 수 있는 시간도 유한하므로 동일 시간 동안에 가장 재미있는 게임을 즐겨야 할 필요가 있음.
- 유튜브에서 여러 영상에서 많은 추천을 받은 '엘든링'이란 게임을 구매하여 플레이하였지만, 컨트롤의 한계를 느끼며 게임의 재미를 느끼기 힘들었음
- 기존 스팀에서 플레이했던 게임 중에서 플레이 시간이 길었던 게임의 태그들을 확인해보니 #생존, #시뮬레이션 등의 태그가 붙어있어 나의 게임 취향을 확인할 수 있었음. 때문에 나와 같은 취향의 사람들이 즐겁게 한 게임은 무엇일지 궁금함.
프로젝트 소개
steam에서 게임 리뷰에 있는 유저들의 아이디와 플레이시간을 수집하여 'ALS알고리즘'을 적용하여 사람들의 취향에 맞는 게임을 추천
프로젝트 기간
23년 1월 9일~ 23년 1월 23일
시작 전 준비사항
- 2022.12.29 - [data processing/spark] - Zeppelin 환경구성
- 2022.12.29 - [data processing/spark] - Zeppelin(spark) 인터프리터 설정
- 2022.12.28 - [data processing/hadoop] - Hadoop 클러스터 환경 구성
- 2022.12.28 - [data processing/spark] - SPARK 서버 환경 구성
-mongoDB 설치
프로젝트 환경
GCP 4개의 인스턴스를 생성하여 Hadoop 클러스터 구축 후 진행함(master 1대, worker 3대)
운영체제 : ubuntu 20.04
ram : 8g
storage : 50g
프로젝트 과정
(required)
1. steam api 를 통해서 steam 게임목록(appid) 수집
2. steam api를 통해서 appid 에 해당하는 review 데이터 수집(review 안에 playtime 있음)
3. 수집한 데이터를 json 형식으로 mongoDB 에 저장
4. DB에 있는 데이터를 전처리하여 HDFS에 업로드
5. zeppelin 에서 spark_yarn 인터프리터를 사용해서 분산 병렬로 ALS 알고리즘 트레이닝(클러스터 구축 필요)
6. 모델 평가(rmse)
7. 게임 추천 결과 확인
---------------------------------
(option)
8. 웹사이트 구축하여 추천모델 서빙
필요 스택
Hadoop, Spark, mongoDB, FastAPI
다음글
2023.01.12 - [Project] - [프로젝트] 고인물의 스팀 게임추천 #2 데이터수집
2023.01.17 - [Project] - [프로젝트] 고인물의 스팀 게임추천 #3 데이터탐색
2023.01.25 - [Project] - [프로젝트] 고인물의 스팀 게임추천 #4 모델링
'Project' 카테고리의 다른 글
[프로젝트] 뉴진스 트윗 클러스터링 #2 프로그래밍 (0) | 2023.01.25 |
---|---|
[프로젝트] 뉴진스 트윗 클러스터링 #1 개요 (0) | 2023.01.25 |
[프로젝트] 고인물의 스팀 게임추천 #4 모델링 (0) | 2023.01.25 |
[프로젝트] 고인물의 스팀 게임추천 #3 데이터탐색 (0) | 2023.01.17 |
[프로젝트] 고인물의 스팀 게임추천 #2 데이터수집 (0) | 2023.01.12 |
댓글