일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 코드잇TIL
- 코딩
- 행렬
- for반복문
- 판다스
- 파이썬
- Seaborn
- 오늘도코드잇
- 결정트리
- 코드잇
- 유학생
- 머신러닝
- 영국석사
- numpy
- 선형회귀
- 코딩독학
- 다항회귀
- 코드잇 TIL
- 나혼자코딩
- sql연습문제
- CSS
- 로지스틱회귀
- 윈도우함수
- matplotlib
- HTML
- 경사하강법
- SQL
- 런던
- 코딩공부
- 데이터분석
- Today
- Total
목록코딩공부/Machine Learning (48)
영국 척척석사 유학생 일기장👩🏻🎓
1. 다중 다항 회귀 입력 변수가 많은데 다항 회귀를 하는 것을 '다중 다항 회귀'라고 합니다. 예를 들어 봅시다. 입력 변수가 집 크기만 있는게 아니라 방, 수, 지하철역 까지의 거리도 있습니다. 각각x1, x2, x3라고 이름을 붙입시다. 그리고 목표 변수는 똑같이 집 가격 입니다. 가설 함수가 이차 함수라고 가정해봅시다. 이차 함수니까 제일 큰 항이 이차항이어야 합니다. 이차항이랑 변수 두 개가 곱해진 것입니다. x1제곱도 이차하이고, x1과 x2의 곱도 이차항 입니다. 따라서 x1x2, x2x3, x3x1, x1제곱, x2제곱, x3제곱 이렇게 6개 입니다. 그러면 가설 함수는 아래와 같이 생겼습니다. 맨 앞에 상수항이 있고, 그 다음은 일차항들이고, 그 다음은 이차항이 있습니다. 이 6가지에 대..
1. 단일 속성 다항 회귀 다항 회귀도 두 가지로 나뉩니다. 속성이 하나인 경우랑, 속성이 많은 경우, 속성이 많고 다항 회귀를 하면 '다중 다항 회귀' 라고 부릅니다. 속성이 하나인 경우부터 봅니다. 집 크기를 이용해서 집 가격을 예측한다고 합시다. 선형 회귀에서 가설 함수는 다음과 같습니다. 우리가 선형 회귀를 통해 하려는 건, 학습 데이터에 가장 잘맞는 세타0, 세타1을 찾아내는 것입니다. 선형 회귀가 아니라 다항 회귀를 한다면, 가설 함수가 이차함수라면 아래와 같이 생겼을 것입니다. 선형 회귀와 마찬가지로, 다항 회귀에서 하려는 건 학습 데이터에 가장 잘 맞는 세타0,세타1,세타2를 찾아내는 것입니다. 만약 가설 함수가 삼차함수라면 아래와 같이 생겼습니다. 이 경우에도 학습 데이터에 가장 잘 맞는..
선형회귀에 대해 알아보았습니다. 그런데 입력 변수와 목표 변수의 관계를 가장 잘 나타내는 게 직선이 아닐 수도 있습니다. 아래의 예시를 봅시다. 직선을 최대한 잘 그린것 같지만 이 직선이 데이터를 잘 표현한 것 같진 않습니다. 직선이 아닌 곡선을 사용해봅시다. 이 곡선을 어떻게 찾을 수 있을까요? 선형 회귀에서는 가설 함수가 아래와 같이 생겼었습니다. 이 가설함수는 직선이니까, 가설 함수를 곡선으로 바꾸면 됩니다. 예를 들어, 이 데이터에 가장 잘 맞는 곡선이 이차 함수 일 것 같으면 이런 식으로 써주면 됩니다. 만약 데이터에 가장 잘 맞는 곡선이 이차 함수가 아니라 삼차 함수일 것 같으면 이렇게 가설 함수를 정하면 되고, 4차 함수 일 것 같으면 5차 함수 일 것 같으면 이런 식으로 함수의 차수가 더 ..
1. convex 함수 경사 하강법, 정규 방정식을 이용하여 선형, 다중 회귀 손실 함수를 최소화시킬 수 있었습니다. 손실함수 J(theta)의 경사를 구한 뒤에 이걸 이용해서 최솟값을 갖는 theta를 찾았습니다. 그런데 단순히 경사 하강법과 정규 방정식만 이용하면 항상 손실 함수의 최소 지점을 찾을 수 있을까요? 예를 들어 봅시다. 이 지점에서 시작을 해서 경사를 따라 쭉 내려갑니다. 내려가다 보면 어느 순간 여러 극소값 중 하나에 오겠죠? 그럼 여기서는 경사가 0이어서 경사 하강이 종료가 됩니다. 그럼 손실 함수의 최저점을 찾아갈 수가 없습니다. 정규 방정식도 마찬가지입니다. 이렇게 수많은 극소값들과 극대값들이 있으면 아무리 방정식을 해결해도 구한 수많은 지점 중에서 어떤 지점이 최소점인지 알 수 ..
1. 경사 하강법 vs 정규 방정식 경사 하강법 정규 방정식 적합한 학습률 a를 찾거나 정해야 함 학습율 a를 정할 필요가 없음 반복문 사용해야함 한 단계로 계산을 끝낼 수 있음 입력 변수의 개수 n이 커도 효율적으로 연산 가능 입력 변수의 개수 n이 커지면 커질수록 비효율적임 (행렬 연산을 하는 비용이 경사 하강법을 하는 것 보다 큼) 역행렬이 존재하지 않을 수도 있음 (이때는 pseudo inverse를 이용해서 다르게 계산할 수 있음) 둘 중 어떤 걸 선택해야 할 지 정해져 있지는 않으나 입력 변수(속성)의 수가 엄청 많을 때는(1000개 기준) 경사 하강법을, 비교적 입력 변수의 수가 적을 때는 정규 방정식을 사용합니다.
1. 입력 변수와 파라미터 표현 입력 변수를 표현하는 방법을 알아보겠습니다. 속성이 하나일 때는 모든 데이터를 하나의 벡터로 아래와 같이 표현했습니다. 다중 선형 회귀에서는 기본적으로 한 열에 하나의 데이터를 표현하는 건 똑같습니다. 오른쪽 위에 있는 숫자는 몇 번째 데이터 인지를, 그리고 오른쪽 아래에 있는 숫자는 몇 번째 속성인지를 나타냅니다. 1행에는 첫 번째 데이터가, 2행에는 두 번째 데이터가 이렇게 저장돼있습니다. 첫 번째 행에는 0번째 속성, 1이 저장됩니다. 보통 선형 회귀의 가설 함수를 아래와 같이 표현합니다. 0번째 속성이 없긴 하지만 행렬로 표현할 때는 표현을 좀 더 통일성 있게 하기 위해 가상의 0번째 속성 x_0을 만들고 값을 항상 1로 설정해줍니다. 즉, 그리고 두 번째 행에 첫..
1. 다중 선형 회귀 경사 하강법 다중 선형 회귀에서도 선형 회귀와 마찬가지로 손실 함수가 아래와 같이 생겼습니다. 다중 선형 회귀에서는 입력 변수가 여러 개라서 가설 함수가 살짝 달라지지만, 손실 함수는 완전히 똑같습니다. 손실을 줄이기 위해서는 경사 하강법을 해야 하는데, 입력 변수가 하나일때와 차이가 있습니다. 입력 변수가 하나일때는 theta_0과 theta_1만 업데이트 하면 됩니다. 입력 변수가 하나일때는 위와 같이 하면 되는데, 입력 변수가 여러 개면 세타 값도 여러개입니다. 그러면 업데이트 할 세타 값디 많아지는 것 뿐입니다. 입력 변수가 n개 있다고 하면 theta_0 부터 theta_n까지 쭉 업데이트를 해야 경사 하강을 한 번 했다고 할 수 있습니다. 이렇게 나열된 식을 하나로 표현하..
1. 다중 선형 회귀 가설 함수 다중 선형 회귀에서는 가설 함수가 아래와 같습니다. 다중 선형 회귀에서는 x_1, x_2, x_3 이런 식으로 입력 변수가 여러 개 있습니다. 입력 변수가 n개 있으면 x_1부터 x_n까지 있는 것이죠. 그리고 theta_0은 상수항이고 그 뒤에 theta_1부터 theta_n까지 있습니다. 이전 글의 집 데이터를 생각해보면 x_1은 집 크기, x_2는 방 수, x_3은 지하철까지의 거리, x_4는 건물 나이 이렇게 있습니다. theta_1은 집 크기가 집 가격에 미치는 영향, theta_2는 방 수가 가격에 미치는 영향, theta_3은 지하철까지의 거리가 가격에 미치는 영향, 마지막으로 theta_4는 건물 나이가 가격에 미치는 영향입니다. 그리고 여기 있는 항들을 다..
1. 다중 선형 회귀 다중 선형 회귀는 선형 회귀를 하나의 입력 변수가 아니라 여러 개의 입력 변수를 사용해서 목표 변수를 예측하는 알고리즘입니다. 이러한 학습 데이터가 있다고 하면 집 크기, 방 수, 건물 나이, 지하철 거리 등 이런 정보를 선형 회귀를 이용해서 집 값을 예측하려고 하는 것입니다. 2. 입력 변수와 목표 변수 선형 회귀에서는 입력 변수가 하나 있었고, 목표 변수가 하나 있었습니다. 입력 변수는 x라는 문자로 나타냈고, 목표 변수는 y라는 문자로 나타냈습니다. 그런데 다중 선형 회귀에서는 입력 변수가 여러 개 있습니다. 위의 표에서 집 크기, 방 수, 건물 나이, 지하철 거리 이렇게 입력 변수가 4개 있습니다. 입력 변수를 다른 말로는 '속성(feature)'라고도 합니다. 첫 번째 입력..
가설 함수는 세상에 일어나는 상황을 수학적으로 표현한다는 의미에서 '모델'이라고 부릅니다. 1. 모델의 평가 선형 회귀 모델을 학습시켜서, 나름 최적선이라고 생각하는 아래와 같은 가설 함수가 나왔다고 가정해봅시다. 그런데 모델을 학습시키고 나서는 이 모델이 얼마나 좋은지 평가를 해야 합니다. 이 모델이 결과를 얼마나 정확히 예측하는지를 평가해야한다는 것입니다. 2. RMSE 이때 많이 쓰는 게 '평균 제곱근 오차' 영어로는 'root mean square error' 줄여서 'RMSE'라고 합니다. 평균 제곱 오차에 루트를 한 것입니다. 루트를 하는 이유는 만약 우리가 집 가격을 예측한다고 하면, 목표 변수의 단위는 '원'입니다. 그런데 오차 제곱을 하면 단위가 '원 제곱'이 됩니다. 따라서 마지막에 루..