들어가며

지난 글에서 데이터 정제구간에서 사이킷런의 imputer를 사용하여 데이터셋을 갱신했습니다. 여기서 잠깐동안 사이킷런의 설계철학에 대해서 짚고 넘어가도록 하겠습니다.

 

1. 일관성

모든 객체가 단순하고 일관된 인터페이스를 제공합니다.(대부분 같은 함수나 파라미터를 사용합니다.)

  1. 추정기(estimator) : 데이터셋을 기반으로 일련의 모델 파라미터들을 추정하는 객체를 추정기라고 합니다. (ex.imputer는 데이터셋을 기반으로 누락된값을 추측하는 추정기입니다.) 추정자체는 fit() 메서드에 의해 수행되고 하나의 매개변수로 하나의 데이터셋만 전달합니다.(단, 지도학습에서는 레이블 때문에 두 개의 파라미터를 받습니다.)
  2. 변환기(transformer) : 데이터셋을 변환하는 추정기를 변환기라고 합니다. fit으로 인해 수행된 학습된 모델 파라미터를 매개변수로 받아 transform 메소드를 통해서 변환된 데이터셋을 반환합니다. 이따금 fit_transform()이 최적화되어 있어 두 개의 메소드를 연속적으로 호출하는 것보다 빠르게 처리할 수 있습니다.
  3. 예측기(predictor) : 일부 추정기는 주어진 데이터셋에 대해 예측을 만들 수 있습니다. 예측기의 fit으로 학습된 모델을 이용해 predict()을 통해서 새로운 데이터에 대한 추정값을 계산 할 수 있습니다. 또한 score() 메서드는 테스트 세트를 통해서 예측값의 품질을 측정할 수 있습니다.

2. 검사 가능

 모든 추정기의 하이퍼파라미터는 public 형식의 인스턴스로 접근이 가능하고 학습된 모델 파라미터 또한 _을 끝에 추가하여 접근이 가능하게 설계되어 검사에 용이합니다.

3. 클래스 남용 방지

데이터셋을 별도의 클래스가 아닌 넘파이 배열이나 사이파이 희소행렬만 사용하게 하여 클래스가 남용되는것을 방지합니다.

하이퍼 파라미터는 문자열이나 숫자를 사용합니다.

4. 조합성

기존의 구성요소는 조합되어 사용하기 용이합니다. 여러 변환기를 연결한 다음 마지막에 추정기를 달아 Pipeline 추정기를 쉽게 만들수 있습니다.

4.합리적인 기본값

사이킷런은 시스템이 빠르게 움직이기 위해서 대부분의 매개변수에 기본값이 설정되어 있습니다.

 

여기에서 언급하는 용어를 혼동 할 수 있으니 살짝 정리해보도록 하겠습니다.

  1. 모델 파라미터 : 모델 내부에서 결정되는 변수로서 데이터셋에 의해서 결정됩니다.
  2. 하이퍼파라미터 : 사용자가 직접 세팅해주는 값을 의미합니다.
  3. 매개변수 : 메서드에서 직접 받는 인자입니다. 원래 컴퓨터 공학에서는 파라미터와 매개변수를 동일한 의미로 사용하는데 여기서는 엄연히 다른 의미로 사용합니다.

+ Recent posts