카테고리 없음
머신러닝의 이해와 라이브러리 활용 기초1
iron-min
2025. 10. 23. 20:51
1. 선형회귀 이해하기
weights = [87,81,82,92,90,61,86,66,69,69]
heights = [187,174,179,192,188,160,179,168,168,174]



다음과 같은 1차 회귀 식에서 (오차제곱/데이터의 수)의 합이 가장 적은 선을 선형회귀 식이라고 한다.
2. 선형회귀 식 코드로 그려보기
import sklearn
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
weights = [87,81, 82, 92, 90, 61, 86, 66, 69, 69]
heights = [187, 174, 179, 192, 188, 160, 179, 168, 168, 174]
body_df = pd.DataFrame({'height':heights, 'weight':weights})
#산점도
sns.scatterplot(data = body_df, x = 'weight', y = 'height')

이렇게 데이터프레임을 만들어 준다. 기존과 다른점은 머신러닝을 돌리기 위한
import sklearn
라는 라이브러리를 불러와 주었다.
여기서 저번에 배운 비지도 학습을 시키는데 다시 설명하자면 결과를 주지않고 알아서 결과를 찾으라는 머신러닝 기법이다.
우선 회귀 모델을 불러와 주고,
from sklearn.linear_model import LinearRegression
model_lr = LinearRegression()
각 x,y에 들어갈 변수들을 지정해준다.(여기서 대괄호를 두번 쳐줘야한다.)
X = body_df[['weight']]
y = body_df[['height']]
그후 머신러닝을 돌려주면
model_lr.fit(X=X, y=y)

VSCODE에 이런식으로 완료가 된다.
이제 모델의 coef - 가중치, intercept - 편항 을 구해보면
print(model_lr.coef_)
print(model_lr.intercept_)

이런식으로 결과가 나오게 된다.
그리고 이걸 변수에 저장해준뒤
w1 = model_lr.coef_[0][0]
w0 = model_lr.intercept_[0]
선형식으로 나타내주면
print('y = {}x + {}'.format(w1.round(2),w0.round(2)))
이런식으로 익숙한 선형식을 만들수 있게된다.
3. 코드가 어렵다면 참고해야할 것.
| 구글링 | 블로그가 매일 바뀌고 코드의 형태가 일정하지 않음 |
| AI | 편하지만 의존하게 되면 공부가 안되고 나중에는 거짓정보로 인해 코드가 잘못될 수 있음. |
| 공식문서 | 일괄되게 정리되어 있고 동일한 위치에 문서가 있으나 초보자가 읽기 어려움. |
※ 인터넷이 안되는 상황이라면
help(sklearn.linear_model.LinearRegression)
이런식으로 help를 써서 해당 라이브러리에 대한 정보를 알 수 있습니다. -> 이건 영어를 잘해야합니다.