머신러닝/머신러닝 할 때 꼭 짚고 넘어갈 것
머신러닝 전 꼭 알고 가자! - 상관분석 _ DataFrame 의 corr 함수, 차트로 표현하는 방법
Cong_S
2022. 5. 4. 23:40
데이터를 분석하는데에 있어 가장 중요한 것 중에
하나는 데이터들간의 어떤 관계에 놓여있는지 파악하는 것이다.
파이썬에도 이와 같은 기능을 하는 함수가 있는데
corr 함수와 차트로 시각화하여 파악할 수 있는 scatter 함수이다.
비례, 반비례 등의 관계를 파악할 수 있는 함수에 대해 알아보자.
위 데이터는 각종 차량에 대한 데이터이다.
이 중 displ , comb 컬럼 데이터들간의 어떤 관계가 있는지 파악해보자.
plt.scatter(data = df, x = 'displ', y= 'comb')
plt.title('Displ Vs Comb')
plt.xlabel('Displacement (L)')
plt.ylabel('Combined Fuel Eff (mpg)')
plt.show()
먼저 차트로 만들어보도록 하자.
scatter 함수로 만들 수 있다.
파라미터에는 데이터프레임, x축에 들어갈 컬럼, y축에 들어갈 컬럼 을 입력한다.
이와 같은 차트가 표시되는 것을 볼 수 있다.
시작점에서 좌상단으로 꾸준히 올라가는 모습을 보이면 비례관계
역으로 갈수록 낮아지는 모습을 보이면 반비례관계
파악할 수 없으면 두 데이터는 서로 영향이 없는 관계를 뜻한다.
# seaborn 의 regplot 을 이용하는 방법
sb.regplot(data = df, x= 'displ',y = 'comb')
# reg 의 뜻은? 차트에 선이 있는데 regression (회귀) : 데이터의 fitting 한다는 의미! 데이터를 최적으로 맞추는 선
# 오른쪽 아래로 내려가니 반비례이다.
seaborn의 regplot으로도 관계를 파악할 수 있다.
이 함수는 데이터들간의 평균값을 선으로 그려주기 때문에 보다 쉽게
상관관계를 파악할 수 있다.
이를 corr 함수로 수치화시켜 파악할 수 있다.
df[['displ','comb']].corr()
+ 일수록 비례관계이고, - 일수록 반비례관계이다.
0에 가까울수록 서로 관계없음을 뜻한다.
위 데이터의 1.0000은 자기 자신과의 비교이므로 의미없는 데이터이다.