사이킷런(sklearn)이란?
◆ sklearn은 사이킷런(Scikit-learn)이라고 부르며 가장 많이 사용되는 머신러닝 라이브러리 이다.
◆ 여러가지 머신러닝 모듈로 구성되어 있다.
◆ scikit-learn은 오픈 소스로 공개되어 있다.
◆ 초심자가 기계학습을 배우기 시작할 때 적합한 라이브러리라고 합니다.
◆ 파이썬으로 작성된 머신러닝 라이브러리로 데이터 마이닝과 데이터 분석을 위한 다양한 도구들을 제공한다.
◆ 다양한 알고리즘과 도구를 제공하여 데이터 전처리, 모델 구축, 평가, 선택 등의 과정을 효율적으로 수행할 수 있게 해준다.
< 주요 기능 소개 >
◆ 데이터 전처리: StandardScaler, MinMaxScaler 등 다양한 정규화 및 변환 기법을 제공한다.
◆ 지도 학습: 선형 회귀, 로지스틱 회귀, 서포트 벡터 머신(SVM), 최근접 이웃(KNN), 랜덤 포레스트,
결정 트리 등 다양한 모델이 포함되어 있다.
◆ 비지도 학습: K-평균(KMeans), DBSCAN, 주성분 분석(PCA), t-SNE 등의 알고리즘을 지원한다.
◆ 모델 평가: 교차 검증, 정확도, 정밀도, 재현율, F1-score 등의 지표를 활용할 수 있다.
◆ 파이프라인: 전처리 과정과 모델 학습을 하나의 워크플로우로 결합하여 반복적인 작업을 간소화할 수 있다.
◀ 광범위한 알고리즘 ▶
◐ 분류(Classification): SVM, k-NN, 랜덤 포레스트, 로지스틱 회귀, 나이브 베이즈 등 다양한 분류 알고리즘을 제공한다.
- LogisticRegression: 이진 또는 다중 클래스 분류
- KNeighborsClassifier: 최근접 이웃 기반 분류
- RandomForestClassifier: 앙상블 학습 기반 분류
- GradientBoostingClassifier: 부스팅 기반 분류
◐ 회귀(Regression): 선형 회귀, 리지 회귀, 라쏘 회귀, 결정 트리 등 다양한 회귀 알고리즘을 지원한다.
- LinearRegression: 선형 회귀
- Ridge, Lasso: 정규화를 포함한 회귀 모델
- SVR: 서포트 벡터 회귀
- RandomForestRegressor: 앙상블 기반 회귀
◐ 클러스터링(Clustering): K-평균, DBSCAN, 계층적 클러스터링 등 다양한 클러스터링 기법을 포함하고 있다.
- KMeans: K-평균 군집화
- DBSCAN: 밀도 기반 클러스터링
- AgglomerativeClustering: 계층적 군집화
◐ 차원 축소(Dimensionality Reduction): PCA, LDA, t-SNE 등 차원 축소 기법을 통해 고차원 데이터를
저차원으로 변환할 수 있다.
- PCA: 주성분 분석
- TruncatedSVD: 희소 행렬 차원 축소
- TSNE: 고차원 시각화
< 사용하기 쉬운 API >
- 일관된 API 디자인으로 모든 알고리즘과 도구를 동일한 방식으로 사용할 수 있다.
- fit, predict, transform, fit_transform 등의 메소드를 통해 학습, 예측, 변환을 쉽게 수행할 수 있다.
< 효율적인 데이터 전처리 >
- 스케일링(Scaling): StandardScaler, MinMaxScaler 등을 통해 데이터 스케일링을 쉽게 수행할 수 있다.
- 누락값 처리(Imputation): SimpleImputer를 사용하여 누락된 값을 쉽게 처리할 수 있다.
- 카테고리형 데이터 처리: OneHotEncoder, LabelEncoder 등을 통해 범주형 데이터를 처리할 수 있다.
◀ 널리 사용되는 함수 및 도구 ▶
◐ train_test_split: 데이터를 훈련 세트와 테스트 세트로 나누는 데 사용된다.
◐ cross_val_score: 모델의 일반화 성능을 평가하기 위해 교차 검증 점수를 계산한다.
◐ GridSearchCV: 하이퍼파라미터 튜닝을 위한 그리드 탐색 기법을 제공한다.
◐ classification_report: 정밀도, 재현율, F1-score를 포함한 분류 모델의 성능 지표를 출력한다.
◐ confusion_matrix: 예측 결과와 실제 결과 간의 오차 행렬을 생성한다.
◐ Pipeline: 여러 전처리 및 모델 단계를 일괄 구성하여 코드의 재사용성과 가독성을 높인다.
◐ make_pipeline: 파이프라인을 간단히 생성할 수 있는 헬퍼 함수이다.
◐ StandardScaler, MinMaxScaler: 특성 값을 정규화하거나 표준화하는 데 사용된다.