
# 필요한 도구들을 가지고 오는 코드
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
import pandas as pd
import numpy as np
# 유저 평점 + 영화 속성 데이터 경로 정의
MOVIE_DATA_PATH = './data/movie_rating.csv'
# pandas로 데이터 불러 오기
movie_rating_df = pd.read_csv(MOVIE_DATA_PATH)
features =['romance', 'action', 'comedy', 'heart-warming'] # 사용할 속성들 이름
# 입력 변수와 목표 변수 나누기
X = movie_rating_df[features]
y = movie_rating_df[['rating']]
# 입력 변수와 목표 변수들을 각각의 training/test 셋으로 나누기
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=5)
model = LinearRegression()
model.fit(X_train, y_train)
y_test_predict = model.predict(X_test)
# 실행 코드
y_test_predict
# array([[ 3.83034441],
# [ 2.59418977],
# [ 2.63653566],
# [ 3.48333221],
# [ 2.75217812],
# [ 2.43303141],
# [ 3.03247628],
# [ 4.41312853],
# [ 4.28145539],
# [ 3.61139607],
# [ 3.82260281],
# [ 3.01099122],
# [ 3.06324646],
# [ 4.41401949],
# [ 4.08837667],
# [ 3.30347874],
# [ 4.69514621],
# [ 4.3397661 ],
# [ 3.42084949],
# [ 3.94638571]])
상품을 추천할 때 다른 유저 데이터가 필요하지 않다
새롭게 출시한 상품이나, 인기가 없는 상품을 추천할 수 있다
적합한 속성을 고르는 것이 어렵다
고른 속성 값들이 주관적으로 선정될 수 있다
유저가 준 데이터를 벗어나는 추천을 할 수 없다
인기가 많은 상품들을 더 추천해 줄 수 없다