개요

선형회귀는 두 변수 사이의 관계를 가장 잘 설명하는 직선을 찾는 것이다.
고등학교 때 배웠던 절대온도가 생각난다.
절대온도는 선형 변환의 좋은 예시로 k = C + 273.15의 식으로 표현되며 이는 y = x + b의 형태다.
섭씨 온도를 절대온도로 바꾸는 것도 선형식으로 표현할 수 있고, 이런 선형 관계는 선형회귀가 찾으려는 그 직선과 같다.

마치 섭씨 20도일 때 절대온도가 얼마인지 알고 싶다면 회귀식을 이용해 C=20을 넣어서 K를 얻는 것과 같이 예측하는 것이다.

기본 코드를 보자

간단한 선형회귀

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

# 데이터 임포트
dataset = pd.read_csv('/content/drive/MyDrive/Colab Notebooks/Data.csv')
# integer location
# 독립변수와 종속변수를 나누어 각각 x,y에 활당한다.
X = dataset.iloc[:, :-1].values
y = dataset.iloc[:, -1].values
print(X)
print(y)

# 훈련 데이터와 테스트 데이터 분리
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)

from sklearn.linear_model import LinearRegression
# 훈련
regressor = LinearRegression()
regressor.fit(X_train, y_train)

# 실제 X_test값을 넣었을 때 y예측값
y_pred = regressor.predict(X_test)

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