사이킷런 소개
- https://scikit-learn.org/stable/
- 쉽고 파이썬스러운 API 제공
- 머신러닝에 필요한 다양한 알고리즘과 편리한 프레임 워크, API 제공
- 오랜기간 실전 환경에서 검증되었고 매우 많은 환경에서 사용
- 주로 Numpy와 Spicy 기반 위에 구축된 라이브러리
사이킷런 장점
- 자유롭게 사용하거나 배포 가능
- 누구나 소스 코드를 보고 실제로 어떻게 동작하는지 쉽게 확인
- 꾸준히 개발, 향상되고 있고 커뮤니티 활발
- 알고리즘을 설명한 풍부한 문서
- 산업 현장이나 학계에서도 널리 사용
- 많은 튜토리얼과 예제 코드를 온라인에서 쉽게 확인
- 다른 파이썬의 과학 패키지들과 연동
알고리즘 선택 가이드
사이킷런의 설계 철학
- 일관성
- 추정기 (estimator) : 데이터셋을 기반으로 일련의 모델 파라미터들을 추정하는 객체 fit(X, [y])
- 변환기 (transformer) : 데이터셋을 변환하는 추정기 transform(X), fit_transform(X, [y])
- 예측기 (predictor) : 주어진 데이터셋에 대한 예측을 만들 수 있는 추정기 predict(X), score(X,y)
- 검사 가능 : 모델 파라미터와 하이퍼파라미터를 공개 변수로 접근 가능
- 클래스 남용 방지 : 기본 데이터 타입으로 넘파이 배열을 사용
- 조합성 : Pipeline 클래스
- 합리적 기본값 : 모든 매개변수에 합리적인 기본값을 둠
첫 번째 머신러닝 - 붓꽃 품종 예측하기
- 붓꽃 데이터 세트로 붓꽃의 품종을 분류(Classification)
- 데이터 세트의 특성(Feature)은 꽃잎의 길이와 너비, 꽃받침의 길이와 너비
- 다양한 붓꽃의 특성들과 그에 따른 붓꽃 종류로 학습한 뒤 새로운 붓꽃 데이터가 어떤 붓꽃 종류(Class)일지 예측
- 품종은 Setosa, Vesicolor, Virginica
분류 예측 프로세스
- 데이터 세트 분리
: 데이터를 훈련 데이터와 테스트 데이터로 분리
- 모델 학습
: 훈련 데이터를 기반으로 머신러닝 알고리즘을 적용해 모델 학습
- 예측 수행
: 훈련된 머신 러닝 모델을 이용해 테스트 데이터 분류를 예측
- 평가
: 예측된 결과값과 테스트 데이터의 실제 결과값을 비교해 머신 러닝 모델의 성능을 평가
분류 예측 프로세스(붓꽃 데이터)
- 데이터 적재
- 데이터 세트 분리, 모델 학습
- 예측 수행, 평가
사이킷런 기반 프레임워크
- 분류 구현 클래스
- Decision Tree Classifier
- Random Forest Classifier
- Gradient Boosting Classifier
- GaussianNB
- SVC
- 회귀 구현 클래스
- Linear Regression
- Ridge
- Lasso
- Random Forest Regressor
- Gradient Boosting Regressor
사이킷런 주요 모듈
사이킷런 내장 예제 데이터셋
- 분류나 회귀 연습용 예제 데이터
API | Description |
datasets.load_boston() | 회귀 용도, 미국 보스턴의 집 피처들과 가격에 대한 데이터 세트 |
datasets.load_breast_cancer() | 분류 용도, 위스코신 유방암 피처들과 악성/음성 레이블 데이터 세트 |
datasets.load_diabetes() | 회귀 용도, 당뇨 데이터 세트 |
datasets.load_digits() | 분류 용도, 0에서 9까지의 숫자 이미지 픽셀 데이터 세트 |
datasets.load_iris() | 분류 용도, 붓꽃에 대한 피처를 가진 데이터 세트 |
- 내장 예제 데이터셋 구성
model selection 소개 - 훈련데이터 / 테스트데이터
- 훈련 데이터
- 머신러닝 알고리즘의 훈련을 위해 사용
- 데이터의 특성과 레이블을 모두 가지고 있음
- 머신러닝 알고리즘이 훈련 데이터의 특성과 레이블 값의 패턴을 인지
- 테스트 데이터
- 훈련 데이터로 학습된 머신러닝 알고리즘을 테스트
- 테스트 데이터는 특성값만 머신러닝 알고리즘에 제공하며 데이터 기반으로 타깃값 예측
- 테스트 데이터는 학습데이터와 별도로 제공되어야 한다
'Machine Learning' 카테고리의 다른 글
머신러닝 알고리즘의 개요 (1) | 2022.08.31 |
---|---|
파이썬 기반의 머신러닝 (0) | 2022.08.31 |
머신러닝 개요 (0) | 2022.08.31 |