머신러닝

다중 회귀 알고리즘

UniCoti(유니코티) 2024. 12. 20.
반응형

다중 회귀 알고리즘이란 여러 가지 특성을 반영하여 연관성을 찾는 알고리즘을 말한다.

이전 선형 회귀 모델에서 입력되는 특성, 출력되는 특성의 2가지 특성만 가지고

연관성을 분석하여 그래프를 만들었는데,

 

사실 결과를 도출할 수 있는 특성은 여러 개일 수 있다.

예를 들어 농어의 무게를 예측하고 싶다면 농어의 길이 말고도 두께, 암수컷 등

여러 가지 특성을 함께 고려한다면 조금 더 정확한 무게 예측 시스템이 될 것이다.


다중 회귀

다중 회귀 모델의 경우 그래프가 저렇게 평면 이상으로 나타나기도 한다.

당연하게도 입력이 여러 개인데 그래프의 x는 여러 개일 수가 없기 때문에 x, z 등의 축이 특성으로 나타나기에 그렇다.

근데 우리는 4차원 이상은 볼 수 없기 때문에 보통 3차원 축 안의 평면까지만 나타낸다.

 

import pandas as pd
df = pd.read_csv('https://bit.ly/perch_csv_data')
perch_full = df.to_numpy()

import numpy as np
perch_weight = np.array([5.9, 32.0, 40.0, 51.5, 70.0, 100.0, 78.0, 80.0, 85.0, 85.0, 110.0,
       115.0, 125.0, 130.0, 120.0, 120.0, 130.0, 135.0, 110.0, 130.0,
       150.0, 145.0, 150.0, 170.0, 225.0, 145.0, 188.0, 180.0, 197.0,
       218.0, 300.0, 260.0, 265.0, 250.0, 250.0, 300.0, 320.0, 514.0,
       556.0, 840.0, 685.0, 700.0, 700.0, 690.0, 900.0, 650.0, 820.0,
       850.0, 900.0, 1015.0, 820.0, 1100.0, 1000.0, 1100.0, 1000.0, 1000.0])

from sklearn.model_selection import train_test_split
train_input, test_input, train_target, test_target = train_test_split(perch_full, perch_weight, random_state=42)

from sklearn.preprocessing import PolynomialFeatures

poly = PolynomialFeatures(degree=5, include_bias=False)
poly.fit(train_input)
train_poly = poly.transform(train_input)
test_poly = poly.transform(test_input)

from sklearn.preprocessing import StandardScaler
ss = StandardScaler()
ss.fit(train_poly)
train_scaled = ss.transform(train_poly)
test_scaled = ss.transform(test_poly)

from sklearn.linear_model import Lasso
lasso = Lasso(alpha=10)
lasso.fit(train_scaled,train_target)
print(lasso.score(train_scaled, train_target))
print(lasso.score(test_scaled, test_target))

 

예제코드)

pandas 덕분에 쉽게 처리가 가능하다.

lasso와 ridge를 사용하면 좋다.


이번 글은 다중 회귀 모델에 대해서 알아봤다. 사실 너무 거시적으로만

정리하는 게 아닌가 싶긴 한데, 코드도 되돌아봐야겠다고 느꼈다.

빠르게 진행하는 만큼 이해가 동반되려면 어느 정도의 추가적인 노력이 필요하다.


이상으로 도움이 되었길 바라며,

 

끝.

반응형

'머신러닝' 카테고리의 다른 글

머신 러닝) padding, same  (0) 2024.12.25
머신 러닝) 필터와 커널  (0) 2024.12.25
로지스틱 회귀  (2) 2024.12.20
선형 회귀 알고리즘  (0) 2024.12.20
k - 최근접 이웃 알고리즘 (KNN)  (1) 2024.12.20

댓글

💲 추천 글