단순회귀분석 with Python

2023. 12. 3. 22:00프로그래밍/Python

반응형

안녕하세요? 분석하는 디제이입니다.

 

오늘은 파이썬으로 단순회귀분석을 하는 방법에 대해서 알려드리려고 합니다.

 

먼저 파이썬으로 단순회귀분석을 하기 위한 절차는 크게 다음과 같습니다.

 

1. 라이브러리 import하기

2. 데이터 import하기

3. 데이터를 train 데이터와 test데이터로 나누기

4. train데이터에 모형 적합시키기

5. training 결과 시각화하기

6. test데이터를 모형에 넣어서 예측하기

7. test 결과 시각화하기

 

그럼 이제 자세한 내용으로 넘어가볼까요?


1. 라이브러리 import하기 

pandas, numpy, matplotlib.pyplot 3개의 라이브러리를 불러옵니다.

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

 

 

 

2. 데이터 import하기

data의 마지막 열에 있는 값들 y로 정의하고, 나머지를 X로 정의해줍니다.

dataset = pd.read_csv('Data.csv')
X = dataset.iloc[:, :-1].values
y = dataset.iloc[:, -1].values

 

 

 

3. 데이터를 train 데이터와 test데이터로 나누기

sklearn.model_selection모듈에서 train_test_split 크래스를 

train 데이터를 전체 데이터의 80%, 나머지 20%를 테스트 데이터로 나눕니다.

여기서 random_state는 동일한 랜덤 분류를 하기 위해 지정해주는 임의값이므로 아무 값이나 지정해주셔도 됩니다.

random_state 값을 동일하게 지정하면 저나 여러분의 분석 결과가 동일하게 나올 것이고, 그렇지 않다면 다른 값이 나오게 될 거에요. 

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 0)

 

 

 

4. train데이터에 모형 적합시키기

reg라는 변수에 단순회귀모형을 지정해줍니다.

reg.fit을 통해 X와 Y의 train 데이터에 맞는 단순회귀모형을 만들어줍니다.

from sklearn.linear_model import LinearRegression
reg = LinearRegression()
reg.fit(X_train, y_train)

 

 

 

5. test데이터를 모형에 넣어서 예측하기

만든 모형에 test X값을 넣어서 y 예측치를 만들어줍니다.

y_pred = reg.predict(X_test)

 

 

 

6. training 결과 시각화하기

train X와 train Y는 산점도로, 우리가 만든 모형은 직선으로 그래프를 그립니다.

 

plt.scatter(X_train, y_train, color = 'red')
plt.plot(X_train, reg.predict(X_train), color  = 'blue')
plt.title('Salary vs Experience (Training set)')
plt.xlabel('Years of Experience')
plt.ylabel('Salary')
plt.show()

 

 

7. test 결과 시각화하기

test X와 test Y는 산점도로, 우리가 만든 모형은 직선으로 그립니다.

plt.scatter(X_test, y_test, color = 'red')
plt.plot(X_train, reg.predict(X_train), color = 'blue')
plt.title('Salary vs Experience (Test set)')
plt.xlabel('Years of Experience')
plt.ylabel('Salary')
plt.show()

 

 

 

추가로 만든 모형에서 특정 X에 대한 y 예측치를 얻고 싶을 때는 

print(reg.predict([[특정값]])) 

 

만든 모형의 회귀식을 알고 싶으면 아래 명령어를 실행하면 회귀식을 알 수 있습니다.

print(reg.coef_) - 기울기 회귀계수

print(reg.intercept_) - 절편

 

이상입니다.

 

혹시 질문이나 어려운 부분 있었다면 댓글 달아주시면 답변 드리겠습니다.

 

감사합니다.

반응형