일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 코딩공부
- 코딩
- HTML
- 판다스
- 코딩독학
- 데이터분석
- 윈도우함수
- 머신러닝
- 다항회귀
- 오늘도코드잇
- 코드잇 TIL
- 코드잇
- for반복문
- Seaborn
- 유학생
- 로지스틱회귀
- 선형회귀
- matplotlib
- 결정트리
- 파이썬
- CSS
- SQL
- sql연습문제
- 행렬
- 코드잇TIL
- numpy
- 영국석사
- 나혼자코딩
- 경사하강법
- 런던
- Today
- Total
영국 척척석사 유학생 일기장👩🏻🎓
(Machine Learning) 다중 선형 회귀 구현하기 본문
1. 입력 변수와 파라미터 표현
입력 변수를 표현하는 방법을 알아보겠습니다. 속성이 하나일 때는 모든 데이터를 하나의 벡터로 아래와 같이 표현했습니다.
다중 선형 회귀에서는 기본적으로 한 열에 하나의 데이터를 표현하는 건 똑같습니다.
오른쪽 위에 있는 숫자는 몇 번째 데이터 인지를, 그리고 오른쪽 아래에 있는 숫자는 몇 번째 속성인지를 나타냅니다. 1행에는 첫 번째 데이터가, 2행에는 두 번째 데이터가 이렇게 저장돼있습니다.
첫 번째 행에는 0번째 속성, 1이 저장됩니다. 보통 선형 회귀의 가설 함수를 아래와 같이 표현합니다.
0번째 속성이 없긴 하지만 행렬로 표현할 때는 표현을 좀 더 통일성 있게 하기 위해 가상의 0번째 속성 x_0을 만들고 값을 항상 1로 설정해줍니다. 즉,
그리고 두 번째 행에 첫 번째 속성이, 세 번째 행에 두 번째 속성이 들어갑니다. 그럼 모든 데이터를 하나의 행렬 X에 묶어서 표현할 수 있습니다. 이렇게 입력 변수 데이터를 행렬로 묶어서 표현한 것을 설계행렬, 영어로는 Design Matrix라고 합니다.
theta값들도 두 개에서 그 이상으로 넘어갈 때 1부터 n까지의 모든 theta값들을 묶어서 아래와 같이 하나의 벡터로 표현합니다.
2. 모든 데이터 예측 값
이제 가설 함수를 행렬 연산에서 어떻게 표현할 수 있는지 알아봅시다. 위에서 한 것처럼 입력 변수와 파라미터를 아래와 같이 표현할 수 있습니다.
이렇게 표현하면 모든 데이터에 대한 예측 값은 두 행렬의 곱으로 나타낼 수 있습니다.
각 열에 각 데이터에 대한 예측값이 계산된 걸 확인할 수 있습니다.
3. 예측 오차
각 데이터의 목표 변수는 값이 하나이기 때문에 단일 변수 선형 회귀와 마찬가지로 아래와 같이 표현할 수 있습니다.
Xtheta에서 y를 빼면 아래와 같이 표현할 수 있습니다.
모든 예측 값들과 목표 변수의 차이를 간단히 행렬 연산으로 구할 수 있게 됩니다. 이 값을 error 라고 부릅시다.
4. 경사 하강법
다중 선형 회귀도 일반 선형 회귀와 마찬가지로 0부터 n까지의 theta 값들을 아래와 같이 업데이트 하면 됩니다. (알파는 학습률, m은 데이터 개수)
이 부분도 행렬 연산을 사용하면 훨씬 더 짧고 간결하게 표현할 수 있습니다. 입력 변수, 파라미터, 예측값 오차를
위와 같이 표현할 때, 경사 하강법 공식을 간단한 행렬 연산으로 아래와 같이 나타낼 수 있습니다.
따라서 복잡해 보였던 경사 하강법 공식을 아래와 같이 간단한 행렬 식으로 표현할 수 있게 됩니다.
행렬식으로 표현할 수 있기만 하면 numpy를 이용해서 수학식을 쉽게 구현할 수 있게 됩니다.
'코딩공부 > Machine Learning' 카테고리의 다른 글
(Machine Learning) Convex 함수 (2) | 2023.08.29 |
---|---|
(Machine Learning) 경사 하강법 vs 정규 방정식 (0) | 2023.08.29 |
(Machine Learning) 다중 선형 회귀 경사 하강법 (0) | 2023.08.22 |
(Machine Learning) 다중 선형 회귀 가설 함수 (0) | 2023.08.21 |
(Machine Learning) 다중 선형 회귀 (0) | 2023.08.21 |