Python - corr와 corrwith로 상관 관계 표현하기(전체 상관관계, 특정 상관관계)

반응형

상관관계

  • 두 변수는 서로 독립적인 관계이거나 상관된 관계, 두 변수간의 관계의 강도를 표현
  • -1 ~ 1 의 사이로 표현
    • 1에 가까울수록 관계 있음 / -1에 가까울수록 관계 없음
  • 데이터프레임에서 사용
    • corr : 전체 컬럼에 대한 상관관계 계수를 표현
    • corrwith : 특정 컬럼에 대한 상관관계 계수 표현 (시리즈의 상관관계 출력)
    • 시리즈는 한개의 데이터이기 때문에  상관계수 표현 어려움

예시에 사용될 데이터프레임

  • movies_rating_df : 각각의 유저들이 영화의 평점을 기록
  • ratings_mean_count : 영화들의 평점과 평가수를 기록

movies_rating_df.csv
3.81MB

movie_df = pandas.read_csv('movies_rating_df.csv', index_col=0)
movie_df.head(5)


전체 컬럼의 상관관계 구하기 (corr)

  • 상관관계 확인 위해 피벗테이블 생성해보기 (피벗테이블 이름 : movie_df)
    • 자기가 본 영화별로 평점 분류
  • corr : 전체 컬럼에 대한 상관관계 계수를 표현
    • min_periods=n : n의 이상인 값들로만 상관관계 계수 표현
movie_df = movie_df.pivot_table(values= 'rating', index= 'user_id', columns= 'title')
# 인덱스는 각 유저들, 컬럼은 영화 제목, 값은 평가점수
# 각 유저별 영화 평가점수를 피벗테이블로 생성


특정 컬럼의 상관관계 구하기 (corrwith)

  • 피벗 테이블(movie_df)을 이용해 특정 컬럼의 상관관계 구하기
  • corrwith( data ) : 특정 컬럼에 대한 상관관계 계수 표현 (시리즈의 상관관계 출력)
titanic_corr = movie_df.corrwith( movie_df['Titanic (1997)'] )
# 영화 '타이타닉'의 평점과 다른 영화의 평점의 상관관계 저장

titanic_corr = titanic_corr.to_frame() # 시리즈 데이터프레임화
titanic_corr.columns = ['correlation'] # 컬럼명 변경
titanic_corr.head()
# 특정 영화에 대한 상관관계 계수 표현

반응형