Linear Regression
=> 입력변수와 출력변수 간의 선형관계를 모델링하는 지도 학습 알고리즘
입력변수 x와 출력변수 y간의 선형 관계를 모델링한다.
ex) y = w0 + w1 * x1 + w2 * x2 + ... + wn * xn
w0, w1, w2, ... wn : 모델의 가중치(weight)
=> 학습 데이터를 통해 추정
오차 제곱합(SSE: Sum of Squared Errors)을 최소화하는 가중치를 찾는
최소제곱법(Least Squares Method)를 사용한다
일부의 경우, 경사 하강법(Gradient Descent) 나 정규 방정식 (Normal Equation)를 사용한다
장점
- 모델이 매우 단순하며, 이해하기 쉽다
- 모델의 결과를 해석하기 쉽다
- 입력변수와 출력변수 간의 선형관계가 존재할 때, 매우 효과적인 모델링이다
단점
- 비선형 관계를 모델링 할 수 없다
pip install scikit-learn
from sklearn.datasets import load_diabetes
import matplotlib.pyplot as plt
diabetes = load_diabetes
print(diabetes.data[0:3]) //첫번째 부터 세번째까지의 당뇨병 진행 상태 값
print(diabetes.target[:3])
plt.scatter(diabetes.data[: , 2] , diabetes.target)
plt.show()
//diabetes 는 scikit-learn 내장 데이터셋 중 하나로, 당뇨병 환자의 데이터를 담고 있다
//diabetes.target => 이 데이터 셋에서 사용되는 목표 변수 ( 당뇨병 환자의 질병 진행 상태를 수치적으로 나타냄)
Ex) 슬라이싱을 사용하여 훈련 데이터 x에서 100번째 부터 109번째 까지 샘플 그래프 그리기
from sklearn.datasets import load_diabetes
import matplotlib.pyplot as plt
diabetes = load_diabetes()
x = diabetes.data[100:110,2]
plt.plot(x)
plt.show()
Ex2) 같은 예제를 scatter로 산점도 그래프 그리기
<생략>
x = diabetes.data[100:10,2]
y = diabetes.data[100:10,3]
plt.scatter(x,y) -> x축 y축을 이용해 산점도를 그리는 함수 //여기서 diabetes.data는 2차원 배열이므로 2차원 scatter 사용
plt.show()
'CS(Computer Science) > 인공지능' 카테고리의 다른 글
6. 로지스틱 회귀 (0) | 2023.03.19 |
---|---|
5. 뉴런 생성 & 시그모이드 함수 (0) | 2023.03.18 |
4. 경사하강법 (0) | 2023.03.18 |
2. 딥러닝을 위한 도구 (0) | 2023.03.18 |
1. 딥러닝을 위한 도구 (0) | 2023.03.17 |