데이터 분석연습하기
공부하기
강의를 보고
먼저 걸어간 선배들의 길을
따라 가보다보면
되겠지.
그래도 오늘은 무언가
계속 따라만 하다가
나도 모르게 하고 싶고
궁금해지고
호기심이 생겨서.
강의를 멈추고
코드를 작성해본다.
이런 느낌인가...
재미..라기 까지 아직 멀었지만
조금은 관심이 생기기 시작하고
나도 할 수 있겠다!?
라는 자신감이 생기기 시작.. 아직 시작단계 ㅎㅎ
캐글과 공공데이터만 어떻게 마음껏 다루고 싶은
욕심이 생기는 하루이다.
해보자..
될때까지 ^^
1. 캐글따라하기
https://www.kaggle.com/code/ibtesama/getting-started-with-a-movie-recommendation-system/notebook
Getting Started with a Movie Recommendation System
Explore and run machine learning code with Kaggle Notebooks | Using data from multiple data sources
www.kaggle.com
IT 실무강좌 온라인 교육 사이트, 모든에듀
아직도 자격증 하나도 없는 사람 여기 붙어라! 월 19,800원으로 1,300여가지 강좌 무제한 이용 PC·MOBILE 동시 이용가능 워드·컴활·MOS·ITQ·포토샵·일러스트·에펙·코딩·프로그래밍 등 인강으로 이
iryan.kr
캐글은 인공지능 공부하는 사람들이
연습하고 경쟁하고 공유하고
완전 커뮤니티이다.
엄청난 데이터셋이 몰려있고
방대한 데이터를 가지고
인사이트를 발견할 수 있도록
여러가지 방법을
모색하고
구현하고 감동해보는 장 인 것같다.
여기서 오늘은 영화추천에 대해
따라해보고
강의도 들어보고 한 결과에 대해
쪼금씩... 정리하려한다.
https://www.youtube.com/watch?v=TNcfJHajqJY&t=5021s
나도코딩님의 강의도 참고하였다.
우리가 이제는 익숙한 넷플릭스나. 쿠팡플레이, 디즈니 등 영화나 드라마를
보면 비슷한 것 끼리 엮어주고
다음꺼 도 보게 해주고 하는 원리이다.
캐글에서는 약 5000개의 영화 자료를 바탕으로
여러가지 제공하는데
먼저 인기순으로 추천프로그램 만들구
그다음. 영화감독이나, 배우 관련 콘텐츠 별로도 해보려한다.
2. Demographic 필터링
인기순으로 관객수가 많은 순으로 정리해보자
import pandas as pd
import numpy as np
df1=pd.read_csv('../input/tmdb-movie-metadata/tmdb_5000_credits.csv')
df2=pd.read_csv('../input/tmdb-movie-metadata/tmdb_5000_movies.csv')
판다스, 넘파이를 이용하구.
크레딧 파일과 무비파일을 불러온다.
df1.columns = ['id','tittle','cast','crew']
df2= df2.merge(df1,on='id')
데이터프레임 1 칼럼을 4가지로 정의하고
데이터프레임 2와 합친다. 아이디를 기준으로
df2.head(5)
데이터 프레임 2 앞쪽 5개 정보 row를 보면
다음과 같이 홈페이지, 언어, 제목, 개요 등 여러정보가 나온다
데모크라픽 필터링을 하려면 공식을 정의해노았는데
다음과 같고
C= df2['vote_average'].mean()
C는 평균 평점
m= df2['vote_count'].quantile(0.9)
m은 상위 10퍼센트 투표수
q_movies = df2.copy().loc[df2['vote_count'] >= m]
q_movies는 데이터프레임 2번에서 득표수만 골라서 상위 10% 득표한 자료만 뽑아낸거.
약 5000개중에 480여개만 추출댐.
def weighted_rating(x, m=m, C=C):
v = x['vote_count']
R = x['vote_average']
# Calculation based on the IMDB formula
return (v/(v+m) * R) + (m/(m+v) * C)
아까 위의 공식을 함수로정의한다.
v는 x의 득표수를 받아치고
R은 x의 득표 평균을 받아쳐서
리턴값을 공식값으로 하여 나온다.
q_movies['score'] = q_movies.apply(weighted_rating, axis=1)
그래서 스코어라는 칼럼을 새로 쓰는데
함수를 적용하여 추출된 480여개만 만든다.
>>앗! 여기서 axis의 기능을 까먹었다. . 혹시 아시는 분.. 알려주세용
q_movies = q_movies.sort_values('score', ascending=False)
정렬 소트해서 스코어를 쭉 깔아보면 내림차순으로
q_movies[['title', 'vote_count', 'vote_average', 'score']].head(10)
탑 10 영화 제목, 득표수, 평점, 최종점수 - 공식에 의해서
요래 나왔다. 쇼생크 탈출이 젤 인기 많았나보다.
시각화도 해본다.
다음엔. 콘텐츠별 필터링 복습해보아야겟다.
끝.
호텔스닷컴
세계 최대 온라인 숙박 사이트 호텔스닷컴입니다. 인기있는 특가 상품, 최저가 숙박 상품을 제공해드립니다.
iryan.kr
'인공지능' 카테고리의 다른 글
알고리즘 - Modeling - Kmeans (27) | 2023.03.25 |
---|---|
알고리즘 - Modeling (20) | 2023.03.24 |
알고리즘 - Polynomial 예제 (12) | 2023.03.21 |
지식그래프 - Ontology (23) | 2023.03.21 |
지식그래프 - Node & Edges (4) | 2023.03.21 |