Data Analysis & AI/E-commerce Data Analysis

Data analysis using python_D6. 11st of Sep, Sat.

makeany 2021. 9. 12. 00:26

Ch02. 고객별 연간 지출액 예측 - 06. 리니어 리그레션 모델 만들기

linear regression 하는 모델링을 불러와서 것이다. 모델링을 하는 파트는 그렇게 많은 코드를 요구하지 않는다. 모델링을 이해하는 많은 시간이 필요하다. 오히려.

여러 모듈이 있는데 statsmodels 불러온다. statsmodels안에 많은 펑션이 있는데 OLS linear regression 만든다. OLS 먼저 train 넣어준다. 특이하게 y값을 먼저 넣는다.

  

이렇게 하면 linear regression 돌리기 위한 준비가 끝난다.

 

 

OLS 펑션안에 y_train, X_train이라는 데이터를 가지고 지정해 주었다. 이것을 트레이닝을 시키기 위해 'fit' 사용한다. 이렇게 하면 보이진 않지만 노란색 선이 생긴 것이다.

  

model.summary() 해주면 리니어 리그레션 레포트를 있다.

 

statsmodels 같은 기능을 하는 다른 명령어에 비해 summary 보여준다.

 

07.모델을 활용하여 예측하고 평가하기_1

X 독립변수, y 종속변수이다.

X_train y_train 써서 모델링을 했다. 그랬더니 예를 들어 y = aX1 + bX2 + cX3 이런 linear regression 얻었다고 한다면,

test 데이터를 집어 넣을 것이다. X_test 집어 넣어서 y_test 어떻게 나올지 예측한다. X_test 값을 각각 X1, X2, X3 집어 넣는다. a, b, c 미지수지만 모델링을 하면 컴퓨터에서 알아서 생성해서 집어 넣는다. 그러면 실제 y값과 예측한 y 값이 어떤 차이가 있는지 알아볼 있다. 

  

model.predict(X_test) model이란 이름에 이안에 모든 정보가 들어있다. 이미 모델링이 끝났음. 그리고 .predict 써주면 예측을 한다. predict() 괄호에는 X_test 들어간다. 위의 그림 참조.

실행하면 예측값이 나온다. 앞의 숫자는 랜덤 샘플링이기 때문이다. 이걸 y_test 비교해 있다.

  

일단 이렇게 나오면 서로 비교하기가 조금 어렵다. 이것을 비교하는 방법은 그림을 그려서 비교하는 . 여기에는 seaborn 사용할 것이다. 

sns.scatterplot(x=y_test, y=pred) 이렇게 하면 되는데 가로, 세로 값을 같게 하기 위해 plt.figure(figsize = (10, 10)) 써준다. 이렇게 하면 정사각형 모양의 plot 있다. y축이 예측값이다. 완전히 일직선이 되지는 않았지만 어느정도 라인으로 보인다. 

  

데이터 시각화를 100% 이해할려고 하지 않아도 된다. 자주 보이는 코드는 자연스럽게 외워진다.