안녕하세요 Dibrary입니다.
이번에는 파이썬을 이용해서 회귀 모형을 확인해 보겠습니다.
회귀는 통계학에서 자주 나오는데, 주어진 데이터를 토대로 선형 모델을 만들어서 해당 데이터 범주 이외의 값을 예측하는 것입니다.
실행 환경은 역시나 Jupyter입니다.
우선 회귀란 무엇인가 간단한 이미지를 보겠습니다.

점들과 직선 하나만 있네요.
저 직선은 점들의 '기준값'의 집합이라고 보시면 됩니다.
여기서 기준값은 평균으로 잡을 수도 있고, 분산으로도 잡을 수도 있고 보고자 하는 통계치를 기준으로 합니다.
즉, 해당 데이터가 저런 직선에 통계치가 근접하니 이 범주외의 값도 이 직선에 근접할 것이다~ 고 예측하는 것이죠.
그럼 먼저 모듈에 있는 데이터를 써보겠습니다.

60개를 가져왔고, print로 X와 y를 살펴본 값과 같은 위치에 찍혀 있습니다.

train_test_split 함수는 홀드아웃 과정을 하는 것으로 test 데이터와 train 데이터로 분류해주는 것이죠.
선형 회귀의 모델은 LinearRegression 을 이용해서 machine이라는 이름으로 만들었습니다.
생성과 동시에 fit을 한 번에 진행했죠.
score는 약 65.9%로 나오네요. 썩 믿음직하지는 않는다는 것이죠.
여기서 중요한 것은 coef_값이 회귀계수 입니다.
이 값이 1에 가까울수록 x와 y는 강한 상관관계가 있고, -1일 수록 굉장히 반대로 상관관계가 있는 것이죠.
한마디로 말해서 직선의 '기울기' 로도 볼 수 있습니다.
과연 그런지 직접 그려보죠.

y = 0.393x 의 그래프를 그린 것입니다.
네 맨 처음에 보여드린 것과 거의 흡사한 것을 볼 수 있습니다.
그럼 예측이 어떻게 되는가 보겠습니다.

X값이 11이면 y값이 4.3정도 될 것이라고 기계가 알려주었네요.
그럼 이제 차트를 좀 늘려서 그려보겠습니다.

와우 아까 회귀계수를 토대로 한 회귀직선의 범주를 -15부터 13까지 늘려놓은 평면에 (11, 4.3) 점 위치를 찍었는데 선과 거의 흡사하네요!
이런 식으로 예측하는 것이 회귀직선 입니다.
우선 현재 이 모델은 데이터가 굉장히 적기 때문에 과대적합을 걱정할 필요가 없습니다.
선형모델은 대부분 과대적합을 조심해야 하므로 이러한 경우에 Ridge, Lasso 규제를 사용할 수 있습니다.
'프로그래밍 > Python' 카테고리의 다른 글
파이썬으로 폴더 생성, 삭제, 복사 해보기 (0) | 2022.06.23 |
---|---|
파이썬으로 미분 해 보기 (0) | 2022.06.20 |
파이썬을 사용한 KNN(최근접 이웃) 구현해보기 (0) | 2022.06.06 |
파이썬으로 주택 매수 지수 확인해보기 (0) | 2022.06.02 |
파이썬 데이터 분석 라이브러리 - Pandas (Series편) (0) | 2022.05.13 |