caret 내가 원하던 데이터 마이닝 함수들이 모두 여기 있었구나..

caret(Classification And REgression Training)

 

image

 

모델을 만들기 위한 여러 알고리즘도 중요하지만 데이터 작업의 대부분의 시간을 차지하는 전처리, 모델 튜닝 쪽 인터페이스와 함수들이 절대적으로 필요하다.

이 caret 패키지가 바로 이런 가려운 곳을 긁어주는 패키지인데, 이 패키지는 decision tree나 SVM같은 알고리즘을 구현하고 있지 않고, 전처리, 튜닝, variable importance쪽 인터페이스만 제공한다. 

학습셋 10-fold로 만드는거 이거 만들기 귀찮아서 그냥 hold out 방법으로 해왔는데, 여기에 그게 있었다.

PCA 전처리, ICA, centering, scaling, 목적변수의 비율에 따라서 data set나누는 함수 bootstrap resampling 등등 본인이 만든 전처리 함수도 모델 튜닝까지 일괄적으로 적용 가능하다.

학습관련된 함수들은 대부분 모델 변수 튜닝에 관련된 것들이다. 게다가…. 전처리 부분도 함께 튜닝하기 전에 적용 되도록 할 수 있게 되어 있다.

만일 이 패키지가 없다면, 자신이 모델 빌드를 하기전에 적용했던 전처리 과정을 모두 함수화 하고 이를 모델 빌드할 때 마다 적용을 하게끔 스크립트를 짜야 한다. 사실 이런 과정이 필요 없는게 아니지만 빠르게 프로토타이핑 모델을 만들어서 테스트 하길 원하는 사람들에게는 시간 소모가 많이 되는 일이 아닐 수 없다. 게다가 여기에 resampling 기법을 이용해서 모델 파라메터 튜닝을 할라면 정말 코드 작성 때문에 머리에 쥐가 날지도 모른다. 코드가 어려운게 아니라, 굉장히 시간 소모적인 스크립팅이 될 수 있다는 이야기다.

위 나열된 사항 말고 정말 다양한 함수들을 제공하고 있다.

정말 PCA 돌려보고 지가 알아서 95%의 설명력을 가진 변수만을 리턴해주는걸 보고 정말 이걸 만든 사람에게 뽀뽀라도 해주고 싶은 마음을 느낄정도였다. 예전에는 pca돌려보고 변수 개수에 따른 설명력을 보여주는 복잡한 도표를 보고 95%정도 설명력을 가진 변수개수만을 선택해  필요한 해당 matrix만을 잘라내고 그런 소모적인 작업들을 해왔는데, 완전히 이건 원샷에 끝내준다. 물론 세밀한 조절을 하려면 원조 pca 함수를 들여다보고 직접 핸들링 해야 하지만 대부분의 경우 여기서 제공하는 정도로 해결이 된다.

이걸 만든 사람 메일을 보니 pfizer 제약쪽 사람인듯 한데, 얼마나 시간 소모적인 스크립팅을 했으면 이런 패키지를 만들 생각을 했는지 약간은 느낄 수 있을거 같다.

여튼 너무 감사하게 쓸 따름이다.

CC BY-NC 4.0 caret 내가 원하던 데이터 마이닝 함수들이 모두 여기 있었구나.. by from __future__ import dream is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.