본문 바로가기
Data Science/Machine Learning

[Machine Learning] scikit-learn에 대하여

by 인사이티드 2023. 1. 18.

scikit-learn은 파이썬의 대표적인 머신러닝 패키지이다. 오픈소스 라이브러리이기 때문에 당연히 사용자도 많고 그만큼 관련 글도 쉽게 찾아볼 수 있다. 현재 시점으로, 가장 최근 버전인 1.2.0은 release date가 2022/12/08일 정도로 버전 업데이트도 자주 되는 편이다.

 

사이킷런 공식 홈페이지: https://scikit-learn.org/

 

사이킷런 웹페이지

 

사이킷런 웹페이지에서 API를 누르면 다양한 라이브러리들을 볼 수 있다. 카테고리 별로 회귀, 분류, SVM, 클러스터링 등 머신러닝 기법부터 측정 지표에 관한 함수들까지 그 양이 매우 방대하다. 또한 공식문서의 API에 파라미터들부터 시작해서 활용할 수 있는 method들, 사용 예시까지 자세히 적혀있기 때문에 상당히 편리하고 친절하다.

 

사이킷런 API 문서 - 왼쪽 API Reference로 쉽게 찾을 수 있다.

사이킷런의 설계 철학에 따라 API가 매우 잘 설계되어 있기 때문에 참조가 매우 편리하다.

(앞으로 머신러닝 공부하면서 수시로 찾아볼 예정..)

 

사이킷런의 설계 철학 - 「API design for machine learning software: experiences from the scikit-learn project」

 

사이킷런의 객체들은 세 가지 종류로 나눌 수 있다.

  • 추정기(estimator) : 일련의 모델 파라미터들을 추정하는 객체이며 fit() 메서드에 의해 학습이 수행된다. 학습된 파라미터는 언더스코어(_)를 붙여서 public 변수로써 볼 수 있다.
    (ex: linear 모델의 학습된 coeffcient 값 coef_)

  • 변환기(transformer) : 데이터셋을 변환하는 추정기를 말한다. 변환은 데이터셋을 매개변수로 전달받은 transform() 메서드가 수행하며, 변환된 데이터셋을 반환한다. 모든 변환기는 fit()과 transform()을 연달아 호출하는 fit_transform() 메서드 또한 가지고 있다.
    (ex: sklearn.preprocessing.StandardScaler(): 데이터셋을 정규화시킴)

  • 예측기(predictor) : 일부 추정기(estimator)은 주어진 데이터셋에 대해 예측을 만들 수 있다. predict() 메서드는 새로운 데이터셋을 받아 이에 상응하는 예측값을 반환한다. 또한 예측기는 예측이 끝난 후 score() 메서드를 제공하여 예측의 품질을 알려준다.

 

앞으로 사이킷런과 함께 머신러닝을 공부해나갈 것 같다. 간결하게 API가 설계되었다 하더라도 양이 워낙 방대해서 쉽지는 않겠지만 공식문서를 열심히 참조하면서 데이터분석 역량을 올려야겠다.

 


참고자료:

[1] Aurélien Géron, 「Hands-On Machine Learning with Scikit-Learn, Keras & TensorFlow」, 한빛미디어, 2020

[2] Lars Buitinck 외 다수, 「API design for machine learning software: experiences from the scikit-learn project」