[머신러닝] 7. 지도학습(회귀): 선형회귀

PurinYun·2023년 11월 23일
0

AIffel

목록 보기
27/75

1. 선형회귀

• 단순 선형회귀와 다중 선형회귀가 있지만 흔히 사용하는 것은 다중 선형회귀입니다.
• Feature가 한 개인 경우가 드물기 때문에 보통 feature가 두 개 이상인 다중 선형회귀를 만들게 됩니다.

단순 선형회귀: 독립변수(피처)가 1개
다중 선형회귀: 독립변수(피처)가 2개 이상

2. 비용/손실/목적 함수

• 데이터와 모델 간의 거리를 계산합니다.
• 오차(error)를 계산합니다. (실제 값과 예측값의 차이)
• 평균 제곱 오차를 최소화하는 파라미터를 찾습니다.

3. 경사하강법

• 오차를 찾아 나가는 방식
• 비용함수의 기울기 절대값이 가장 작은 지점을 찾아서 오차가 작은 모델을 만듭니다.

# 라이브러리 불러오기
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
# 데이터 생성
from sklearn.datasets import load_diabetes # 당뇨병 환자 데이터

def make_dataset():
    dataset = load_diabetes()
    df = pd.DataFrame(dataset.data, columns=dataset.feature_names)
    df['target'] = dataset.target
    X_train, X_test, y_train, y_test = train_test_split(
        df.drop('target', axis=1), df['target'], test_size=0.2, random_state=1004)
    return X_train, X_test, y_train, y_test

X_train, X_test, y_train, y_test = make_dataset()
X_train.shape, X_test.shape, y_train.shape, y_test.shape
# 선형 회귀
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train, y_train)
pred = model.predict(X_test)
mean_squared_error(y_test, pred)
profile
Fantivation

0개의 댓글