I can do it!!

He can do! She can do! why cannot me? i can do it!

개발/sk infosec cloud ai 전문가 양성과정

[파이썬 라이브러리를 활용한 머신러닝 #3]

gogoriver 2020. 9. 22. 23:48

해당 게시글은 안드레이스 뭘러의 [Introduction to machine learning with python]을 정리한 내용입니다.

 

2. 지도학습

(2) 선형 회귀 [ 선형모델 ]

  • 정의 : 입력 특성(x)에 대한 선형함수를 만들어 예측을 수행
  • 예측 함수 :
    • y = Wx + b   => 단순
    • y=W1x1+W2x2+...Wnxn+b  => 다중
  • w : 기울기 파라미터
    • 가중치 또는 계수라고도 한다
    • LinearRegression().fit()한 값의 coef__로 알 수 있다. => 실수값 하나만 출력
    • 편향, 절편(b)는 LinearRegression의 intercept에 있다. => numpy 배열로 출력
  •  
     
회귀 선형회귀(최소제곱법)
LinearRegression( )
- 가장 간단하고 오래된 회귀용 선형 알고리즘
- 예측과 훈련 세트에 있는 타깃 y 사이의
평균제곱오차최소화하는 파라미터
w와 b를 찾는다.
========================================================
- 장점 : 매개변수가 없다
- 단점 : 매개변수가 없어 모델 복잡도를 제어할 방법이 없다
========================================================
주의점
    + 훈련 세트와 테스트 점수의 차를 통해 과소적합인지 과대적합인지 판단! 
    + 성능 차이는 모델이 과대적합되었다는 확실한 신호 
리지회귀
Ridge( )
-  리지도 오차를 최소화하려고 하는데, point는 가중치의 절댓값을 가능한 한 작게 만들고자 한다는 것이다.
- 즉, w의 모든 원소가 0에 가깝게 되길 원한다.( = 기울기를 작게 만든다 = 특성이 출력에 주는 영향을 최소한으로 만든다.)
- 이를 규제라고 한다. 즉, 과대적합이 되지 않도록 모델을 강제로 제한한다는 의미이다.
- 리지는 L2 규제를 적용하고 있다.
- 모델을 얼마나 단순하게 할지는 alpha를 통해서 한다(규제의 정도 = alpha)

=> 과대적합이 적어진다!(= 자유롭다 = 복잡도가 높아진다)
라소
Lasso( )
- 리지와 같이 계수를 0에 가깝게 하려고 한다.
- 규제 L1을 적용하고 있다. => 모델에서 완전히 제외되는 특성이 생긴다
    -> 특성 선택이 자동으로 이루어진다. (이해도 ↑, 중요 특성 드러남)
- 장점 : featrue 선택이 좋다
- 단점 : 과소적합의 가능성(0으로 아예 만들어 버린 것들이 많아서)
========================================================
주의점
    + alpha값을 낮추면 규제의 효과가 없어져 과대적합된다.
========================================================
if~
  • - 특성이 많고 그중 일부분만 중요 = lasso
  • - 분석하기 쉬운 모델을 원한다면 = lasso
분류 로지스틱 회귀
linear_model.LogisticRegression( )
* Regression(회귀)가 들어가지만 회귀 알고리즘이 아니라 분류 알고리즘이므로 LinearRegression과 혼동하면 안된다.

- L2규제 사용(규제의 정도 = C)/ C 값은 alpha 값의 역수 
     > C ↑ = 규제가 감소 = 훈련세트에 가능한 최대로 맞추려고 한다. 
     > C ↓ = 규제가 증가 = W(가중치, 계수)에 맞출려고 한다.


선형 서포트 벡터 머신
svm.LinearSVC( )
* SVC는 Support vector classifier의 약자이다. SVM이라고 불리기도 한다

- L2규제 사용(규제의 정도 = C)
     > C ↑ = 규제가 감소 = 훈련세트에 가능한 최대로 맞추려고 한다. 
     > C ↓ = 규제가 증가 = W(가중치, 계수)에 맞출려고 한다.

 

* 평균제곱오차 : 예측값과 타깃값 차이를 제곱하여 더한 후에 샘플의 개수로 나눈 것

* 학습곡선 : 데이터셋의 크기에 따른 모델의 성능 변화를 나타낸 그래프


다중분류 -> 이진분류를 다대다로 연결