scikit-learn
scikit-learn 주요 라이브러리
gggg21
2024. 12. 25. 10:42
1. 예제 데이터 (sklearn.datasets)
- 설명: sklearn.datasets는 머신러닝 학습을 위한 예제 데이터를 제공합니다. 이 데이터들은 모델 훈련과 테스트, 실험을 위해 자주 사용됩니다.
- 주요 기능:
- 간단한 예제 데이터셋을 제공 (load_iris, load_boston, make_classification 등)
- 커스텀 데이터셋을 생성할 수 있는 함수들 제공.
2. 데이터 분리, 검증 & 파라미터 튜닝 (sklearn.model_selection)
- 설명: sklearn.model_selection은 데이터셋을 훈련용과 테스트용으로 나누고, 모델의 성능을 검증하며, 하이퍼파라미터 튜닝을 위한 도구를 제공합니다.
- 주요 기능:
- 교차 검증: train_test_split을 통해 데이터를 훈련 세트와 테스트 세트로 나눔.
- 그리드 서치(Grid Search): GridSearchCV를 사용하여 모델의 하이퍼파라미터를 최적화.
- 랜덤 서치(Randomized Search): RandomizedSearchCV를 사용하여 그리드 서치보다 빠르게 최적 하이퍼파라미터를 찾음.
- 교차 검증: 여러 폴드(fold)를 사용하여 모델을 훈련하고 검증할 수 있는 기능을 제공.
3. 피처 처리 (sklearn.preprocessing)
- 설명: sklearn.preprocessing은 데이터 전처리와 관련된 여러 가지 기능을 제공합니다. 모델의 성능을 높이기 위해 데이터를 적절히 변환하고 정규화하는 작업에 사용됩니다.
- 주요 기능:
- 정규화 및 표준화: StandardScaler, MinMaxScaler, RobustScaler 등으로 데이터를 정규화하거나 표준화.
- 범주형 데이터를 숫자형으로 변환: LabelEncoder, OneHotEncoder를 사용하여 범주형 데이터를 숫자형으로 변환.
- 결측치 처리: 결측치를 처리하기 위한 SimpleImputer와 같은 도구를 제공.
4. 피처 선택 (sklearn.feature_selection)
- 설명: sklearn.feature_selection은 피처(특성) 선택을 위한 다양한 방법을 제공하여 모델 성능을 개선합니다. 특히, 알고리즘에 큰 영향을 미치는 중요한 피처를 선택하는 데 사용됩니다.
- 주요 기능:
- 피처 중요도 평가: SelectFromModel, RFE(Recursive Feature Elimination), SelectKBest 등을 사용하여 중요하지 않은 피처를 제거.
- 피처의 상관관계 파악: f_classif, mutual_info_classif 등을 사용하여 피처들 간의 상관관계를 분석.
5. 피처 추출 (sklearn.feature_extraction)
- 설명: sklearn.feature_extraction은 텍스트나 이미지 데이터에서 유용한 피처를 추출하는 도구를 제공합니다.
- 주요 기능:
- 텍스트 데이터 처리:
- CountVectorizer와 TfidfVectorizer로 텍스트 데이터를 벡터화.
- HashingVectorizer를 사용하여 매우 큰 텍스트 데이터셋을 처리.
- 이미지 데이터 처리:
- sklearn.feature_extraction.image 모듈을 사용하여 이미지 데이터를 벡터화.
- 기타: DictVectorizer를 사용해 딕셔너리 형태의 데이터를 벡터화.
- 텍스트 데이터 처리:
6. 차원 축소 (sklearn.decomposition)
- 설명: sklearn.decomposition은 고차원 데이터를 저차원으로 변환하여 분석을 용이하게 만드는 차원 축소 기법들을 제공합니다.
- 주요 기능:
- 주성분 분석(PCA, Principal Component Analysis): 고차원 데이터를 저차원으로 변환하는 가장 대표적인 방법.
- 비음수 행렬 분해(NMF, Non-negative Matrix Factorization): 행렬에서 비음수로만 결과를 도출하는 차원 축소 기법.
- 특이값 분해(SVD, Singular Value Decomposition): PCA와 유사하지만 더 일반적인 형태로 사용되는 기법.
- Truncated SVD: 대규모 행렬에서 특이값 분해를 수행할 때 계산 비용을 줄일 수 있는 기법.
요약
- sklearn.datasets: 예제 데이터 제공
- sklearn.model_selection: 데이터 분리, 교차 검증, 파라미터 튜닝
- sklearn.preprocessing: 데이터 전처리 및 변환
- sklearn.feature_selection: 중요 피처 선택
- sklearn.feature_extraction: 텍스트 및 이미지 피처 추출
- sklearn.decomposition: 차원 축소 및 특성 추출
이렇게 다양한 모듈들을 활용하면 데이터 처리, 모델 구축, 평가, 최적화까지 머신러닝 파이프라인의 모든 과정을 효율적으로 진행할 수 있습니다. 각 모듈들은 서로 유기적으로 연결되어 있기 때문에 복잡한 문제를 해결하는 데 매우 유용합니다