본문 바로가기

카테고리 없음

[AI] 2. Scikit-Learn (사이킷런) 사용하기

 

 

 

사이킷런은 파이썬을 기반으로 하는 대표적인 머신러닝용 라이브러리입니다. 

 

 

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 추정기 : 여러 변환기를 연결한 다음 마지막에 추정기 하나를 배치한 것. 

 

 

사이킷런의 주요 모듈/API


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는 동일해야 합니다. 즉, 입력 데이터의 행의 개수와 라벨의 개수가 동일 해야 합니다.