Regression



Binary Classification


Binary이기 때문에 0 또는 1로 encoding


예시?

Spam mail Detection : Spam or Ham


Facebook feed : Show or Hide


Credit Card Fraudulent Transaction detection : Legitimate or Fraud


주식 : Buy or Sell


이미지 인식 : Positive or Negative


등등..



이런 형태라면.. 알고리즘 적용하면 어떻게 될까?

Linear Regression으로도 할 수 있을거 같은데???

선을 그으면..


그럼 대략.. 

특정 hours 값 이상에서는 pass, 미만은 fail 




여기서 발생하는 여러 문제는?? 


1) hours가 엄청 높은 값을 가지는 데이터에 대해 Linear Regression에서 잘못된 결과를 가지는 문제가 생김

  아무리 hours가 올라 가더라도, y축 값은 pass 그대로이기 때문..


liner 모델 학습 후, pass 또는 fail로 나누기 위한 값(강의에선 0.5)을 기준으로 수직선(Y축과 평행)을 그었을 때,

왼쪽 영역(fail)에 pass가 포함되는 경우가 발생. 실제로 데이터를 극단적으로 넣고 학습해 봄 x_data = [1, 2, 3, 20] y_data = [0, 0, 1, 1] 의 데이터로 linear 모델 학습 후 1, 2, 3을 테스팅하면 0.19, 0.23, 0.28이 나옴. 결국 3은 fail로 판별되는데, 실제 데이터에선 3은 pass이니 문제가 있다고 볼 수 있음. (learning rate만 무한대 발산을 막기위해 0.001로 수정)



2) Y값, 즉 H(x) 값은 0 또는 1인데..

x_data 값이 엄청 커진다면 H(x)값은 1보다 훨씬 큰 숫자가 나옴.


그럼 값을 강제로 0~1로 만들순 없을까??


logistic function, sigmoid function


z값이 아무리 커져도 1에 수렴.


반대로 z값이 아무리 작아져도 0에 수렴



(T = transform, ML1-3 참조)





+ Recent posts