데이터를 import 후 pivot_table함수로 collaborative filtering format으로 변경한다.

 

최소 80개이상 데이터가 있는 것만 상관계수를 뽑기 위해서 min_periods 파라미터에 80을 대입한다.

myRatings를 통해 추천을 받으려고한다. Movie Name column에서 nan값을 dropna하고 내림차순 정렬후 데이터프레임으로 만든 뒤 별점을 곱해서 weight column을 만든다. similar_movies_list에 정리하면 다음과 같다.

상관 관계 분석에 대해서 알아봅니다.

https://ko.wikipedia.org/wiki/%EC%83%81%EA%B4%80_%EB%B6%84%EC%84%9D

 

상관 분석 - 위키백과, 우리 모두의 백과사전

상관 분석(相關 分析, Correlation analysis)은 확률론과 통계학에서 두 변수 간에 어떤 선형적 관계를 갖고 있는 지를 분석하는 방법이다. 두 변수는 서로 독립적인 관계이거나 상관된 관계일 수 있으

ko.wikipedia.org

상관계수는 -1부터 1까지의 값을 갖는다.1일 때 완벽한 양의 상관관계가 되고, -1일 때 완벽한 음의 상관관계가 된다. 0이라면 별다른 상관관계가 없음을 의미한다. 상관계수가 0.1 이하면 관계가 없고, 0.3 이하면 약한관계 입니다.

 

data

먼저 필요한 라이브러리를 import해준다. 아래 코드는 한글출력을 위한 코드다.

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sb

%matplotlib inline

import platform

from matplotlib import font_manager, rc
plt.rcParams['axes.unicode_minus'] = False

if platform.system() == 'Darwin':
    rc('font', family='AppleGothic')
elif platform.system() == 'Windows':
    path = "c:/Windows/Fonts/malgun.ttf"
    font_name = font_manager.FontProperties(fname=path).get_name()
    rc('font', family=font_name)
else:
    print('Unknown system... sorry~~~~')

corr

sb.regplot은 점그래프와 상관계수를 시각화 한것이다. pd.corr()을 통해 원하는 column끼리의 상관계수를 알 수 있다.

+ Recent posts