Aiffel 13일차 1/12(수)

DeepML 풀잎스쿨에서 공부했던 내용

특성공학

기존에 쓰였던 특성들을 서로 곱하거나 제곱하는 형식을 통해 새로운 여러 특성들을 뽑아내는 작업을 특성공학이라고 한다. 선형 회귀의 여러 특성을 생성해낼 때 쓰인다.

  • 사이킷런의 PolynomialFeatures라는 변환기 클래스를 사용하면 여러 특성을 만들어낼 수 있다. 아래는 PolynomialFeatures를 통해 각 특성을 제곱한 항을 추가하고 특성끼리 서로 곱한 항을 추가한 예시.
    from sklearn.preprocessing import PolynomialFeatures
    poly = PolynomialFeatures()
    poly.fit([[2, 3]])    # 훈련(fit)을 해야 변환(transform)이 가능함
    print(poly.transform([[2, 3]])
    --> [[1, 2, 3, 4, 6, 9]]

다중회귀

여러 개의 특성을 사용한 선형 회귀를 다중 회귀(Multiple regression)라고 함.
특성이 많은 고차원에서는 선형 회귀가 매우 복잡한 모델을 표현할 수 있다.

특성의 개수를 적당히 늘리면 과대적합 혹은 과소적합이 발생하지 않지만, 특성을 너무 많이 추가하게 되면 훈련세트를 거의 완벽하게 학습하다보니 심각한 과대적합이 나올 수 있다.

이러한 문제를 해결하기 위해 특성을 줄이는 방법도 있지만, 특성을 줄이지 않는 다른 방법도 있다. 바로 밑에서 설명할 규제이다.

규제

머신러닝 모델이 훈련 세트를 너무 과도하게 학습하지 못하도록 훼방하는 것을 말한다. 선형회귀 모델에서는 특성에 곱해지는 계수(또는 기울기)의 크기를 작게 만들어 모델이 훈련 세트에 과대적합되지 않도록 만든다.
선형회귀 모델에 규제를 적용할 때 특성에 곱해지는 계수 값의 크기가 서로 많이 다르면 공정하게 제어되지 않기 때문에 특성들의 정규화가 필요하다. 사이킷런의 StandardScaler 변환기 클래스로 가능하다.

선형회귀 모델에 규제를 추가한 모델을 릿지회귀(Ridge), 라쏘회귀(Lasso)라고 부른다. 릿지는 계수를 제곱한 값을 기준으로 규제를 적용하고, 라쏘는 계수의 절댓값을 기준으로 규제를 적용한다.

좋은 웹페이지 즐겨찾기