일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 무료상담교육
- 그림책심리지도사
- 독서심리
- 김호중노래
- 심리학
- 심리학교수
- 심리상담
- 문학치료사
- 이재연교수
- 김호중방송
- 독서심리지도사
- 부부심리상담
- 심리학강의
- 심리상담사자격증
- 김천심리상담센터
- 독서심리치료사자격증
- 무료상담
- 미술치료자격증
- 독서치료사
- 무료심리상담
- 독서치료
- 독서심리지도사자격증
- 독서심리치료사
- 부모교육
- 학부모교육
- 독서심리치료
- 무료심리치료
- 독서치료사자격증
- 미술심리치료
- 문학치료
- Today
- Total
심리이모저모
파이썬 머신러닝 공부하자! - 02. 선형 회귀 본문
파이썬 머신러닝 공부하자! - 02. 선형 회귀
지난 시간에는 파이썬 텐서플로우를 설치해서 개발 환경을 갖춰보았는데요. 오늘은 머신러닝을 시작하는 첫발로 가장 기본적인 "선형 회귀"에 대해 공부해보고자 합니다. 선형 회귀는 "변수 사이의 선형적인 관계를 모델링 한 것"이라고 할 수 있습니다. 단순히 글로만 보아서는 말이 어렵게 느껴지고 감이 잡히시지 않죠? 하지만 이해하고 나신 후에는 정말 간단한 개념이라는 것을 아실거니 잘 따라와 주세요~^^
먼저 '선형적'이라는 말에는 막막하실 텐데요. 쉽게 말해서 "직선적이다"라는 말입니다. 예를 들어서 자동차가 60km/h로 멈추지 않고 달릴 때, 2시간 뒤 이동한 거리는 120km, 3시간 뒤는 180km인 것처럼 자동차의 속력과 이동한 거리가 정확하게 비례한다는 것을 알 수 있죠? 이를 그래프로 표현한다면 다음과 같이 '직선' 형태의 그래프가 될 것이니다.
파이썬 머신러닝 공부하자! 파이썬 머신러닝 공부하자! 파이썬 머신러닝 공부하자! 파이썬 머신러닝 공부하자!
2. 파이썬 머신러닝 공부하자! - 02. 선형 회귀
그렇다면 다른 예를 통해서 더 알아가 봅시다.
파이썬 머신러닝 공부하자! 파이썬 머신러닝 공부하자! 파이썬 머신러닝 공부하자! 파이썬 머신러닝 공부하자!
◎ 나는 고기집 사장이다.
◎ 오랜 시간 일할수록 많은 돈을 벌 수 있을 것이다.
꼭 고기집이 아니더라도, 자영업을 하시는 분들은 오랜 시간 일을 할수록 많은 돈을 벌 것입니다. 그렇다면 하루에 일하는 시간과 매출은 어떤 관계를 가질까요? 정확한 데이터를 통해 분석해 봅시다.
3. 파이썬 머신러닝 공부하자! - 02. 선형 회귀
실제 데이터를 보니 시간에 따라서 매출이 함께 증가하는 것이 보이죠. 그렇다면 이걸 그래프로 옮겨서 어떤 모습을 띄는지 볼까요.
파이썬 머신러닝 공부하자! 파이썬 머신러닝 공부하자! 파이썬 머신러닝 공부하자! 파이썬 머신러닝 공부하자!
4. 파이썬 머신러닝 공부하자! 02. 선형 회귀
일단 위 그림처럼 점으로만 표시해 보았습니다. 점들 사이로 직선을 그을 수 있을 것 같네요. 한 번 그어봅시다.
파이썬 러닝머신 공부하자! 파이썬 러닝머신 공부하자! 파이썬 러닝머신 공부하자! 파이썬 러닝머신 공부하자!
5. 파이썬 머신러닝 공부하자! 02. 선형 회귀
그렇다면 '아~ 대략적으로 데이터가 직선적인, 그러니까 선형적인 관계를 가지고 있구나'라고 더욱더 명쾌하게 이해하실 수 있겠죠. 물론 데이터 점들 모두가 직선 위에 있지는 않습니다. 조금씩 오차를 가지고 있는 것을 알 수 있지만, 모든 데이터가 직선에 근접해 있기 떄문에 주어진 시간-매출 데이터는 직선으로 표현할 수 있는 선형적 데이터라고 할 수 있는 것이죠.
일상생활의 많은 현상들은 선형적인 성격을 가집니다. 위에서 예를 들었던 자동차의 이동거리라던가, 일한 시간에 따른 매출액, 시간과 읽은 책의 페이지 수 등 많은 현상들을 여러분 주위에서 찾을 수 있을 것입니다. 즉, 일상생활에서의 관계를 하나의 직선으로 표현할 수 있는 것이죠. 이러한 선형적인 관계에 적용하는 기계학습 이론이 바로 선형회귀입니다.
파이썬 머신러닝 공부하자! 파이썬 머신러닝 공부하자! 파이썬 머신러닝 공부하자! 파이썬 머신러닝 공부하자! 파이썬 머신러닝 공부하자!
6. 파이썬 머신러닝 공부하자! 02. 선형 회귀
그헉다면 학습을 시킨다는 것을 어떤 의미일까요? 머신러닝이란 말을 자주 듣고 사용하고 있지만, 어떻게 하는지는 잘 모르죠. 컴퓨터에게 책을 쥐어주고 '공부해!'라고 말하는 것은 아니니까요. 결론을 말씀드리면, '선형 회귀 모델을 구축하는 것'입니다. 방금 우리가 함께 했던 것처럼 주어진 데이터를 보고 데이터를 어떤 직선으로 표현할 수 있을지 생각하고, '가장 합리적인 직선'을 찾아내는 것이죠. 즉 컴퓨터에게 데이터를 주고 그 데이터에서 가장 합리적인 직선을 만들게 하는 것이 학습인 것이죠. 따라서 '직선'을 만들어야하기 때문에 선형 회귀 모델에서는 3개 이상의 데이터가 필요합니다. 2개는 단 하나의 직선을 만들 것이기 때문이죠. 그렇다면 가장 합리적인 직선은 어떤 직선일까요?
파이썬 머신러닝 공부하자! 파이썬 머신러닝 공부하자! 파이썬 머신러닝 공부하자! 파이썬 머신러닝 공부하자!
7. 파이썬 머신러닝 공부하자! - 02. 선형 회귀
데이터와 3가지 직선의 관계에서 어떤 직선이 가장 합리적인 것 같나요?
누가 보더라도 데이터와의 관계에서는 데이터에 가장 근접해 있는 가운데의 노란 직선이 3가지 직선 중 가장 합리적이라고 말할 수 있겠죠.
즉 선형 회귀 이론과 학습은 이런 것이라는 거죠. 특정 상황에 대한 데이터를 보고 합리적인 직선을 찾아나가는 것.
실제로 이런 작업을 위해서는 가설이 필요한데요.
H(x) = Wx + b
◎ 하나의 일차 방정식을 이용
◎ 가설을 수정하면서 '그나마', '가장' 합리적인 식을 찾아나갑니다.
식의 맨 처음 H는 Hypothesis: 즉 가설의 영단어 첫 글자입니다. 뒤의 식은 W는 기울기, b는 y절편(x=0일 때의 y값)이라고 볼 수 있으니 중학교 수준의 일차 방정식이라고 할 수 있겠죠?
컬퓨터는 이제 W와 b값을 계속해서 수정해 나가며 데이터와 '가장', '그나마' 합리적인 식을 완성시키는 것이죠.
즉, '주어진 데이터를 이용해 일차 방정식을 수정해나가는 것!'이라고 할 수 있겠네요. 물론 학습을 많이 하더라도 '완벽한' 식을 찾아내지 못할 수도 있습니다. 하지만 실제 사례들에서는 근사 값을 찾는 것만으로 충분할 때가 많습니다.
친구를 찾을 때도 '학교 도서관 4번째 책상에 앉아 있을거야'가 아닌 '이 시간 즈음엔 학교에 있을거야'라는 결과만으로 친구를 찾으니까요. 파이썬 머신러닝 공부하자! 파이썬 머신러닝 공부하자!
파이썬 머신러닝 공부하자! 파이썬 머신러닝 공부하자! 파이썬 머신러닝 공부하자!
그렇다면 식을 수정해나가는 과정을 직관적으로 이해해 볼까요.
8. 파이썬 머신러닝 공부하자! - 02. 선형 회귀
데이터를 처음 받았을 때는 붉은 선처럼 데이터와 거리가 먼 상태로 가설을 설정합니다. 그리고 데이터와 직선의 거리를 분석해서 조금씩, 조금씩 가까워지는 가설로 수정을 해나가는 과정이죠.
또한 이 과정에서 점점 더 직선 간 간격이 좁아지는 것도 볼 수 있는데요. 데이터에 가까워지면 가까워질수록 좀 더 섬세하고 자세하게 가설을 설정해 나갑니다. 파이썬 머신러닝 공부하자!
오늘 선형회귀에 대해 배우고, 데이터와 가설을 사용해 상황을 컴퓨터에게 학습시킨다는 것을 알았습니다. 파이썬 머신러닝 공부하자! 파이썬 머신러닝 공부하자! 파이썬 머신러닝 공부하자!
9. 파이썬 머신러닝 공부하자! - 02. 선형 회귀
H(x) = Wx + b 파이썬 머신러닝 공부하자! 파이썬 머신러닝 공부하자! 파이썬 머신러닝 공부하자!
그렇다면 구체적으로 어떤 방법을 사용해서 가설을 수정해 나갈까요? 다음 시간에 이에 대해서 한 번 알아봅시다! 파이썬 머신러닝 공부하자! 파이썬 머신러닝 공부하자!
'IT 공부하자! > 파이썬 머신러닝 공부하자!' 카테고리의 다른 글
파이썬 머신러닝 공부하자! - 01. 개발환경 구축하기 (0) | 2018.01.14 |
---|