scikit-learn은 파이썬의 대표적인 머신러닝 패키지이다. 오픈소스 라이브러리이기 때문에 당연히 사용자도 많고 그만큼 관련 글도 쉽게 찾아볼 수 있다. 현재 시점으로, 가장 최근 버전인 1.2.0은 release date가 2022/12/08일 정도로 버전 업데이트도 자주 되는 편이다.
사이킷런 공식 홈페이지: https://scikit-learn.org/
사이킷런 웹페이지에서 API를 누르면 다양한 라이브러리들을 볼 수 있다. 카테고리 별로 회귀, 분류, SVM, 클러스터링 등 머신러닝 기법부터 측정 지표에 관한 함수들까지 그 양이 매우 방대하다. 또한 공식문서의 API에 파라미터들부터 시작해서 활용할 수 있는 method들, 사용 예시까지 자세히 적혀있기 때문에 상당히 편리하고 친절하다.
사이킷런의 설계 철학에 따라 API가 매우 잘 설계되어 있기 때문에 참조가 매우 편리하다.
(앞으로 머신러닝 공부하면서 수시로 찾아볼 예정..)
사이킷런의 객체들은 세 가지 종류로 나눌 수 있다.
- 추정기(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」
'Data Science > Machine Learning' 카테고리의 다른 글
[Machine Learning] 데이터 전처리(1) - 결측치 처리(1) (0) | 2023.06.22 |
---|---|
[Machine Learning] 평가 지표 - 분류(Classification) (0) | 2023.02.07 |
[Machine Learning] 손실 함수 (loss function) (0) | 2023.01.31 |
[Machine Learning] 분류 알고리즘 (0) | 2023.01.29 |
[Machine Learning] 지도 학습 vs 비지도 학습 vs 강화 학습 (0) | 2023.01.19 |