사이킷런은 파이썬을 기반으로 하는 대표적인 머신러닝용 라이브러리입니다.
1) 사이킷런 설치
https://scikit-learn.org/stable/
scikit-learn: machine learning in Python — scikit-learn 1.1.2 documentation
Model selection Comparing, validating and choosing parameters and models. Applications: Improved accuracy via parameter tuning Algorithms: grid search, cross validation, metrics, and more...
scikit-learn.org
클라우드 개발 환경에서는 대부분 사이킷런이 이미 설치되어 있습니다.
[사이킷런 설치하기]
$ pip install scikit-learn
[설치 여부 확인하기]
!pip list | grep scikit-learn
[라이브러리 임포트]
import sklearn
[버전 확인하기]
print(sklearn._version_)
2) 사이킷런의 주요 기능
사이킷런에서는 훈련과 예측 등 머신러닝 모델을 다룰 때 CoreAPI라고 불리는 fit, tranformer,predict와 같은 함수들을 이용합니다.
① 변환기 (transformer) : 데이터셋을 변환하는 추정기.
↳ transform() 메서드가 데이터셋을 매개변수로 받아 변환된 데이터셋을 반환.
② 추정기 (estimator) : 데이터셋을 기반으로 일련의 모델 파라미터를 추정하는 객체.
↳ fit() 메서드에 의해 수행.
③ 예측기 (predictor) : 일부 추정기는 주어진 데이터셋에 대해 예측을 만들 수 있음.
↳ predict() 메서드가 새로운 데이터셋을 받아 이에 상응하는 예측값을 반환하며, 테스트 세트를 사용해 예측의 품질을 측정하는 score() 메서드를 가짐.
④ pipeline 추정기 : 여러 변환기를 연결한 다음 마지막에 추정기 하나를 배치한 것.
3) 사이킷런에서의 데이터 표현 방법
사이킷런에서는 보통 특성 행렬과 타겟 벡터, 이렇게 두 가지로 데이터를 표현합니다.
① 특성 행렬 (Feature Matrix) : 입력 데이터.
- 특성 (Feature) : 데이터에서 수치 값 / 이산 값 / 불리언 갑으로 표현되는 개별 관측치. 특성 행렬에서 열에 해당하는 값.
↳ n_features : 열/특성의 개수
- 표본 (Sample) : 각각의 특성에 상응하는 입력 데이터. 특성 행렬에서 행에 해당하는 값.
↳ n_sample : 행/표본의 개수
- [n_samples, n_features] :[행, 열] 형태의 2차원 배열 구조를 사용하며 이는 NumPy의 ndarray, Pandas의 DataFrame, SciPy의 Sparse Matrix를 사용하여 나타낼 수 있음.
* 통상 특성 행렬은 변수명 X로 표기합니다.
② 타겟 벡터 (Target Vector) : 입력 데이터의 라벨(정답).
- 목표(Target) : 라벨, 타겟값, 목표값이라고도 부르며 특성 행렬로부터 예측하고자 하는 것.
↳ n_samples : 벡터의 길이 / 라벨의 개수
- 타겟 벡터는 보통 1차원 벡터로 나타내며 이는 NumPy의 ndarray, Pandas의 Series를 사용하여 나타낼 수 있음.
* 통상 타겟 벡터는 변수명 y로 표기합니다.
* 특성 행렬 X의 n_samples와 타겟 벡터 y의 n_samples는 동일해야 합니다. 즉, 입력 데이터의 행의 개수와 라벨의 개수가 동일 해야 합니다.