2025년, 코딩은 선택이 아닌 필수!

2025년 모든 학교에서 코딩이 시작 됩니다. 먼저 준비하는 사람만이 기술을 선도해 갑니다~

강의자료/머신러닝

3.1 선형 회귀

원당컴1 2024. 5. 9. 09:29

목표

  • 선형 회귀 모델이 무엇인지, 기계학습은 어떻게 이루어지는 지 살펴 보자.

 

머신러닝 목차 - https://wondangcom.tistory.com/2769

 

머신러닝 목차

머신러닝 1. 머신러닝 소개 1.1 인공지능이란 (혼공머신) - 4차산업 혁명 시대에 꼭 필요한 인공지능에 대해 알아 보자. 링크 : https://wondangcom.tistory.com/2771(2024.3.7) 1.2 머신러닝을 사용하는 이유 (핸

wondangcom.tistory.com

 

1. 선형회귀란?

선형회귀는 종속 변수 ( y )와 하나 이상의 독립 변수 ( X )들 간의 관계를 모델링하는 통계적 방법입니다.

이 모델은 변수들 사이의 선형 관계를 찾아내어, 한 변수의 변화가 다른 변수에 어떤 영향을 미치는지를 예측하는 데 사용됩니다.

예를 들어, 공부 시간과 시험 점수 사이의 관계를 나타내는 선형 회귀 모델은 다음과 같은 형태를 가질 수 있습니다:
[ y = aX + b ]
여기서 ( a )는 기울기(공부 시간당 점수 증가량)를, ( b )는 y절편(공부하지 않았을 때 예상 점수)을 나타냅니다.

주어진 데이터를 바탕으로 모델을 학습시키면, ( a )와 ( b )의 값을 찾아낼 수 있습니다.

예를 들어, 1시간 공부했을 때 50점, 2시간 공부했을 때 60점, 3시간 공부했을 때 70점이라는 데이터가 있다면, 이를 통해 ( a )와 ( b )를 추정할 수 있고, 이를 바탕으로 4시간 공부했을 때의 점수를 예측할 수 있습니다.

2. 기계학습은 어떤 원리로 학습 되는가?

기계학습은 이러한 모델을 데이터로부터 자동으로 학습하는 과정입니다. 

기계학습은 경험을 통해 자동으로 개선하는 컴퓨터 알고리즘의 연구 분야로, 방대한 데이터를 분석하여 미래를 예측하는 기술이자 인공지능의 한 분야로 간주됩니다.

기계학습에서는 알고리즘이 대규모 데이터 세트를 분석하고, 해당 데이터에서 역방향으로 작업하여 선형 회귀 방정식을 계산합니다.

데이터 사이언티스트는 먼저 알려진 데이터 세트나 레이블이 지정된 데이터 세트에 대해 알고리즘을 훈련시킨 다음, 해당 알고리즘을 사용하여 알 수 없는 값을 예측합니다.

이제, 주어진 예제를 바탕으로 4시간 공부했을 때의 예상 점수를 계산해 보겠습니다. 

우선, 간단한 선형 회귀 모델을 사용하여 기울기 ( a )와 y절편 ( b )를 추정해야 합니다.

주어진 데이터를 바탕으로 계산하면, 기울기 ( a )는 10, y절편 ( b )는 40으로 추정할 수 있습니다.

따라서, 선형 회귀 모델은 다음과 같이 됩니다:
[ y = 10X + 40 ]
이 모델을 사용하여 4시간 공부했을 때의 점수를 예측하면:
[ y = 10(4) + 40 = 80 ]
따라서, 4시간 공부하면 예상 점수는 80점이 됩니다.

학습 과정에서 알고리즘은 주어진 데이터 세트를 분석하여 패턴을 찾아내고, 이를 바탕으로 모델을 구축합니다. 

선형회귀의 경우, 알고리즘은 주어진 데이터로부터 최적의 기울기 ( a )와 y절편 ( b )를 찾아내어, 미래의 데이터에 대한 예측을 수행합니다.

이 과정은 데이터로부터 지식을 추출하고, 이를 활용하여 의사결정을 개선하는 데 중요한 역할을 합니다.

이러한 방식으로, 기계학습은 데이터로부터 복잡한 문제를 해결하고, 다양한 분야에서 응용될 수 있는 강력한 도구가 됩니다.

3.실습

# 필요한 라이브러리를 불러옵니다.
import numpy as np
from sklearn.linear_model import LinearRegression

# 공부 시간(X)과 시험 점수(Y) 데이터를 정의합니다.
X = np.array([[1], [2], [3]])
Y = np.array([50, 60, 70])

# 선형회귀 모델 객체를 생성합니다.
model = LinearRegression()

# 모델을 데이터에 맞추어 학습시킵니다.
model.fit(X, Y)

# 4시간 공부했을 때의 시험 점수를 예측합니다.
predicted_score = model.predict([[4]])

print(f'4시간 공부하면 예상 시험 점수는 {predicted_score[0]:.0f}점입니다.')

4시간 공부하면 예상 시험 점수는 80점입니다.

 `LinearRegression` 클래스를 사용하여 모델 객체를 생성하고

`.fit()` 메소드로 모델을 학습시킨 후

`.predict()` 메소드로 새로운 데이터의 시험 점수를 예측합니다.

이렇게 예측한 모델의 파라미터, 즉 기울기 (a)와 절편 (b)를 확인하는 코드는 다음과 같습니다.

# 모델의 기울기(a)와 y절편(b)을 출력합니다.
print(f'모델의 기울기: {model.coef_[0]:.2f}')
print(f'모델의 y절편: {model.intercept_:.2f}')

모델의 기울기: 10.00

모델의 y절편: 40.00

모델이 찾은 기울기와 절편을 이용해서 선을 그려 보자.

# 학습 데이터와 선형 회귀 선을 그래프로 나타냅니다.
plt.scatter(X, Y, color='blue') # 실제 데이터를 점으로 표시합니다.
plt.plot(X, model.predict(X), color='red') # 학습된 선형 회귀 선을 그립니다.

# 예측 데이터를 그래프에 추가합니다.
plt.plot([4], [predicted_score[0]], 'ro')

# 그래프에 제목과 축 라벨을 추가합니다.
plt.title('Study Time vs Test Score')
plt.xlabel('Study Time (hours)')
plt.ylabel('Test Score')

# 그래프를 화면에 표시합니다.
plt.show()

`plt.scatter()` 함수는 데이터 포인트를 그리고, `plt.plot()` 함수는 선을 그립니다. 

그래프의 제목과 축 라벨을 추가하여 정보를 명확하게 전달합니다. 

마지막으로, `plt.show()` 함수를 호출하여 그래프를 화면에 표시합니다. 

 

4. 맺음말

선형회귀는 데이터 사이의 관계를 이해하고 미래의 결과를 예측하는 데 매우 유용한 도구입니다. 

우리가 살펴본 공부 시간과 시험 점수의 예는 선형회귀의 간단한 응용 사례에 불과합니다. 실제로, 선형회귀는 경제학에서 수요 예측, 의학에서 질병의 위험도 평가, 기상학에서 기후 변화 모델링 등 다양한 분야에서 활용됩니다.

예를 들어, 부동산 시장에서는 선형회귀를 사용하여 주택 가격을 예측할 수 있습니다. 여기서 주택의 크기, 위치, 연령 등이 독립 변수가 되고, 주택 가격이 종속 변수가 됩니다. 마찬가지로, 소매업에서는 고객의 구매 이력과 마케팅 캠페인 데이터를 분석하여 판매량을 예측하는 데 선형회귀를 사용할 수 있습니다.

기계학습과 선형회귀를 이해하고 적용하는 것은 데이터로부터 의미 있는 인사이트를 얻고, 보다 정확한 의사결정을 내리는 데 도움이 됩니다. 이러한 기술은 비즈니스 전략을 개선하고, 과학적 연구를 발전시키며, 일상 생활의 편의성을 증진시키는 데 기여할 수 있습니다. 따라서, 선형회귀와 기계학습은 현대 사회에서 중요한 역할을 하며, 앞으로도 그 가치는 계속 커질 것입니다.

사업자 정보 표시
원당컴퓨터학원 | 기희경 | 인천 서구 당하동 1028-2 장원프라자 502호 | 사업자 등록번호 : 301-96-83080 | TEL : 032-565-5497 | Mail : icon001@naver.com | 통신판매신고번호 : 호 | 사이버몰의 이용약관 바로가기