머신러닝/머신러닝 할 때 꼭 짚고 넘어갈 것

Item based collaboration filtering 을 하기 위해, 데이터프레임의 corr() 함수를 이용한 correlation 과, min_periods 파라미터 사용법

Cong_S 2022. 5. 12. 17:24

Item based collaboration filtering 이란?

사용자가 주체가 되지 않고 아이템을 주체로 삼아 이 아이템을 선택한 사용자들에게 비슷한 아이템을 추천해주는 방식의 필터링 방법이다.

 

 

pivot_table 함수로 만든 데이터프레임을 이용해 상관관계 분석을 하여

비슷한 유형의 영화끼리 추천할 수 있도록 해보자.

 

이때 한 아이템의 상관관계를 구하기 위해

corrwith 함수를 사용한다. 

사용법은 다음과 같다.

df.corrwith(df['Titanic (1997)'])                 

# corrwith의 해석 : 파라미터 값에 적은 데이터에 대해 앞에 있는 데이터프레임과의 상관계수를 구하라.

영화 타이타닉과 목록에 있는 영화들의 상관관계를 구했다.

데이터프레임과 파라미터값에 상관관계의 기준이 될 컬럼을 입력하면 된다.

이렇게 구해진 상관관계를 'correlation' 이라 한다.

 

이번엔 corr 함수의 중요한 파라미터 값이 있다.

min_periods 파라미터이다.
min_periods는 최소 입력값 이상의 수를 가진 것만 가져와라. 라고 해석되며
이 값에 80을 입력하면  값이 80이상인 데이터 행만 가져올 수 있게 된다.
 
# 전체 영화의 상관관계
# min_periods: 파라미터의 기능 >> NaN이 아닌 숫자로 되어있는 데이터의 최솟값 지정 가능
# 최소 80개 이상의 데이터가 있는 것만 상관계수로 뽑아라.
movie_corr = df.corr(min_periods= 80)