노트/Python : 프로그래밍(69)
-
[추천시스템] 넷플릭스 영화 추천 시스템 구현 파이썬 코드
데이터 필요한 데이터만 첨부 코드 import pandas as pd import numpy as np # 데이터 읽어오기 movies=pd.read_csv("movies.csv") ratings=pd.read_csv("ratings.csv") # 아이템 기반 협업 필터링 data=pd.merge(ratings,movies,on="movieId") column=['userId','movieId','rating','title','genres'] data=data[column] data moviedata=data.pivot_table(index="movieId", columns='userId')['rating'] moviedata #NaN값을 -1로 변경 ( 평점을 계산할 때 양수값만 처리하면 됌) movi..
2020.04.08 -
[파이썬기초] 데이터전처리 중복값 처리
import pandas as pd # 중복데이터 생성 # 데이터 병합 시 중복 데이터 많이 발생함 df=pd.DataFrame({ 'k1':['b','b','b','c','c'], 'k2':['x','y','y','x','z'], 'col':[10,20,30,40,50] }) df # 중복 데이터 확인 df.duplicated(['k1']) df.duplicated(['k1','k2']) # 불린참조로 중복값 확인 df[df.duplicated()] # 중복값의 기준, 첫번째 깂? 마지막번째 값? df.duplicated(['k1'],keep='first') # keep= first : default df.duplicated(['k1'],keep='last') df.duplicated(['k1'],ke..
2020.04.07 -
[알고리즘] 영화 추천 시스템 코드
추천시스템의 분류 1. 컨텐츠 기반 추천 시스템 2. 협업 기반 추천 시스템 2-1. 메모리 기반(KNN) 2-1-1. 사용자 기반 : 비슷한 유형의 사용자를 찾음 2-1-2. 아이템 기반 : 어떤 영화를 본 관객들이 다른 영화를 본다. (영향도) 2-2. 잠재요인 기반(Latent factor) 컨텐츠 기반 추천시스템 사용자가 선호하는 아이템을 같은 장르( 컨텐츠 ) 에 기반하여 추천하는 시스템 협업 기반 추천 시스템 메모리 기반 영화1 영화2 영화3 영화4 사용자1 4 ? 3 ? 사용자2 3 2 ? 5 사용자3 ? 3 2 2 다음과 같은 사용자 - 아이템 평점 행렬(Matrix)를 구성하여 구현해야한다. 사용자 기반 협업 필터링과 아이템 기반 협업 필터링이 있다. 사용자 기반 협업 필터링 User1과..
2020.04.06 -
[파이썬기초] 데이터전처리 결측값 (NaN) 처리
데이터 결측값 생성 import numpy as np import pandas as pd df=pd.DataFrame(data=np.arange(0,15).reshape(3,5),index=['n1','n2','n3']) df.ix[0,0]=np.nan df.ix[2,2]=np.nan df 결측값 채우기 #NaN 결측값 -> 0으로 대체 df.fillna(0) df.fillna(0, inplace=True) # 기존객체를 변경 #NaN 결측값 -> 각 열의 평균값으로 대체 df.fillna(df.mean()) df.fillna(method="ffill") #바로 위의 데이터값으로 채우기(보간) 누락된 데이터 골라내기 # 데이터프레임: 누락된 데이터 모든 행(row) 골라내기 df.dropna() #열: ..
2020.04.06 -
[파이썬기초] 한글 깨짐 방지코드
#한글깨짐 방지 코드 import matplotlib from matplotlib import font_manager, rc import platform if platform.system()=="Windows": font_name=font_manager.FontProperties(fname="c:/Windows/Fonts/malgun.ttf").get_name() rc('font', family=font_name) matplotlib.rcParams['axes.unicode_minus']=False import warnings warnings.filterwarnings("ignore")
2020.04.06 -
[파이썬] 데이터 변형 | 원핫인코딩
머신러닝을 하기 위해서 전처리 작업을 할때, 컴퓨터 알고리즘이 읽을 수 있는 범주형 데이터로 바꿔주는 작업이 필요하다. 이를 원핫인코딩이라고 한다. import seaborn as sns tip=sns.load_dataset("tips") tip.head() 원데이터를 확인해보면 'sex' colomn의 경우 Female과 Male로 되어있다. 이러면 알고리즘이 해당 데이터를 읽지 못한다. 그래서 숫자로 바꿔주어야 한다. # 원핫 인코딩 Female -> 0 , Male -> 1 from sklearn.preprocessing import LabelEncoder def genToInt(data): data['sex']=LabelEncoder().fit(['Female','Male']).transform(..
2020.04.04