티스토리 뷰
[Python] 선형회귀 / Linear Regression Model / Basic
또야 2021. 3. 26. 00:361. 선형회귀란
독립 변수 X와 X의 값에 따라 달라지는 종속 변수 Y와의
선형적인 상관 관계를 모델링하는 것이다.
즉 X에 따른 Y값을 예측하고 설명하는 것이다.
2. 예제
공부한 시간 | 2 | 4 | 6 | 8 |
성적 | 81점 | 93점 | 91점 | 97점 |
위의 표를 보면,
공부한 시간 [2, 4, 6, 8]의 표본에서
'공부한 시간에 비례해 5점이 오른다.' 와 같은
정확한 규칙성은 딱히 보이지 않는다.
선형회귀는 y=ax+b의 식에서
예측값 - 실제값 (오차) 을 가장 최소화하여야 한다.
그러므로 a와 b의 값을 정확히 예측해야 한다.
모든 독립 변수 X가 y=ax+b에 대입 시
실제 값과 가장 가까운 예측값 Y를 구해야 한다는 것이다.
3. 최소제곱법
위에서 기울기인 a와 y절편인 b를
정확히 구해내야 한다고 했는데,
이를 최소 제곱법 공식을 이용하면 바로 구할 수 있다.
기울기 a는 아래와 같이 구한다.
$a = \frac{(x-x의\ 평균)(y-y의\ 평균)의\ 총\ 합}{(x-x 의\ 평균)^{2}의\ 총\ 합}$
이를 위 예제의 값을 대입하여 계산하면,
$a = \frac{(2-5)(81-90.5)+(4-5)(93-90.5)+(6-5)(91-90.5)+(8-5)(97-90.5)}{(2-5)^{2}+(4-5)^{2}+(6-5)^{2}+(8-5)^{2}}$
= 46/20이니, 기울기 a의 값은 2.3인 것이다.
그렇다면 남은 b는 어떻게 구할까?
b를 구하는 공식은
$b = y의\ 평균- (x의\ 평균 \times 기울기\ a)$ 이다.
y의 평균은 90.5이고, x의 평균은 5, a는 2.3이므로
= 90.5 - (5 * 2.3)
= 90.5 - 11.5
= 79 이다.
즉 최소제곱법으로 구한 위의 예제의 일차식은
y = 2.3x + 79인 것이다.
그러므로 예측 성적을
공부한 시간 | 2 | 4 | 6 | 8 |
성적 | 81점 | 93점 | 91점 | 97점 |
예측 성적 (y = 2.3x + 79) |
83.6점 | 88.2점 | 92.8점 | 97.4점 |
와 같이 나타낼 수 있다.
- 한마디
이 다음 포스팅에서는
위의 예제에서 나타난 값을 토대로 한
예측 성적과 실제 성적 값을
간단한 그래프로 나타내는 프로그램을 만드는 것을 실습한다.
'Programming Language > AI with Python' 카테고리의 다른 글
[Python] 경사 하강법 / 코딩으로 확인하기 (7) | 2021.04.09 |
---|---|
[Python] 선형회귀 (2) / 기울기 a와 y절편 b에 따른 평균 오차 제곱(MSE) 프로그래밍 하기, 선형회귀 실습 (0) | 2021.03.30 |
[Python] 선형회귀 (1) / 최소제곱법의 프로그래밍과 결과값 그래프로 나타내기 (0) | 2021.03.26 |
[Python] 로봇 기자가 쓰는 야구 기사 (0) | 2021.03.24 |
[Python] 텍스트 파일에 있는 단어의 개수를 세는 프로그램 (0) | 2021.03.24 |
- Thanks for comming.
- 오늘은
- 명이 방문했어요
- 어제는
- 명이 방문했어요