-
Machine_Learnin카테고리 없음 2022. 12. 28. 19:43
# 머신러닝(machine_learning)
- 프로그래밍 하지 않아도 컴퓨터가 스스로 학습하는 능력이 있게 하는 컴퓨터의 하위 분야
- 지도, 비지도, 강화 학습 3가지 유형으로 나뉜다
1) 지도학습(Supervised)
- 데이터에 label이 같이 붙어 있다
- 회귀(regression)와 분류(classification) 로 나누어 질 수 있다.
예를 들어 회귀(Regression)는 어떤 사람의 교육 수준, 나이 등을 이용해 연봉을 예측하는 것
분류(Classification)는 일반메일 또는 스팸메일인지 예측하는 것
- 지도학습 알고리즘으로는
선형회귀(Linear Regression), 로지스틱 회귀(Logistic Regression), KNN(K-nearest Neighbors), 결정트리(DecisionTree), 랜덤포레스트(Random Forest), 서포트벡터머신(SVM, Support Vector Machine) 등이 있다.
2) 비지도(Unsupervised)
- 데이터에 label이 붙어 있지 않다. 대신에 기계가 데이터에서 숨겨진 패턴을 찾아내서 분류한다
- 비지도학습 알고리즘으로는 주성분분석(PCA), 군집(Clustering) ... 등이 있다
3) 강화(Reinforcement)
==>
## 지도학습에 쓰이는 알고리즘 훝어보기
1. 선형회귀(linear regression)- 데이터(파란색점)를 가장 잘 대변해주는 선을 찾는 것. 이 데이터에 가장 잘 맞는 선(빨강색점)을 찾는 것이다. 영어로는 line of best fit이라고 한다.
- 데이터에 가장 잘 맞는 선(일차 함수)를 찾는 것. 일차함수는 x값에 따라 결과가 얼마든지 작아질 수 있고
또 커질 수 있기 때문에 분류를 하기에 부적합하다선형회귀
2. 로지스틱회귀(logistic regression)
- 데이터에 가장 잘 맞는 시그모이드 함수를 찾는 것. 시그모이드 함수의 결과는 항상 0과 1 사이에 값이
떨어지기 때문에 분류를 하기에 적합하다. 시그모이드의 함수 결과값이 0.5 보다 큰지 아닌지를 보고 분류를 정함- 선형 회귀는 예외적인 데이터 하나에 가설 함수가 너무 민감하게 반응하지만 시그모이드 함수는 그 문제를 해결해 준다. 시그모이드 함수는 이렇게 생겼기 때문에, 많이 동떨어진 데이터 하나가 있어도 크게 영향을 받지 않는다.
시그모이드식 로지스틱회귀
선형회귀(Linear Regression) VS 로지스틱 회귀(Logistic Regression)1. 가설함수
선형회귀
이런 식으로 데이터가 있을 때, 이 데이터들에 가장 잘 맞는 최적선을 찾아내는 거죠?
그러면 우리는 이 최적선을 이용해서 새로운 입력 변수에 대한 목표 변수를 예측할 수 있는 겁니다.
예를 들자면 집의 크기를 갖고 가격을 예측할 수 있는 거죠.
우리는 최적선을 찾아내기 위해 다양한 함수를 시도해 봐야 할 텐데요.
우리가 시도하는 이 함수 하나하나를 '가설 함수', 영어로는 'hypothesis function우리가 찾으려는 선은 어떤 곡선이 아니라 그냥 직선
아웃이 굉장히 작아질수도 있고 굉장히 커질수도 있다
- 세타를 조절해서 최적선을 찾는것
일단 우리가 찾으려는 선은 어떤 곡선이
로지스틱 회귀
- 아웃풋이 0~1 사이의 수이다
- 예를 들어. 0.8이라고 하면은 목표변수가 1이 될 확률이 80%라는 것
2. 손실함수
- 가설 함수를 평가하는 어떤 기준이 있어야 하는데, 그 기준이 되는 게 손실 함수
- 인풋이 세타이다. 세터 값들을 바꿔 손실 함수의 아웃풋을 최소화 하는 것이다
선형회귀
- 선형 회귀의 손실 함수는 평균 제곱 오차라는 개념으로 구한다
- 데이터 하나하나의 오차를 구하고, 그 오차들을 다 제곱해서 평균을 내는 작업
로지스틱 회귀
- 로지스틱 회귀의 손실 함수는 평균 제곱 오차를 사용하지는 않습니다. 대신 '로그 손실', 영어로는 log loss라는 걸 사용합니다. 좀 더 어려운 표현으로는 cross entropy라고도 합니다.
3. 경사하강법
- 손실을 최소화하는 건데, 경사 하강법은 그 손실을 최소화하는 하나의 방법
- 즉, 극소점을 찾고 싶은것이다. 인풋이 세터값을 랜덤하게 지정하거나 아니면은 0으로 시작하낟
인풋이 한개일때
인풋이 여러개 일 때- 기울기 벡터가 알려주는것
- 극소점으로 가야하기때문에 기울기 벡터에 -를 붙이면은 된다
*note
linear regresssion 과 logistic regression 의 차이는 어떻게 사용되어지냐에 따라 다르다
linear regression은 주로 regression 문제에 사용이 되어지고(물론 분류문제에도 사용이 되어진다)
logistic regression 은 분류문제에 사용이 되어진다
linear regression 이 분류문제에 잘 사용이 안되는 이유는 예외적인 데이터에 너무 민감하게
반응하기 때문에 잘 사용이 안된다
ex) x가 공부시간이고 y가 시험의 통과여부 일 때, 예외적인 데이터(공부시간이 100000시간) 데이터가
하나 들어오면 통과 기준이 확 바뀌어 버린다( 기존에는 100 시간이었는데 예외적인 데이터가
들어옴으로써 200시간으로 변경됨)
로지스틱 회귀 손실 함수 노트
출처:
https://computer-science-student.tistory.com/64