반응형
- 이 공부는 다음 멋진 책과 함께 합니다. 위키북스와 저자님 너무나도 감사합니다.
이번 포스팅에서는 머신러닝을 수행할 때 자주 만나는 친구들(?)의 정체를 밝혀보겠습니다.
머신러닝의 코드를 하나 하나 음미할 수 있는 포스팅이 되길 바랍니다!
모델 학습 & 예측 메서드
- 모든 사이킷런 클래스에서 머신러닝 모델 학습을 위해서 fit()을, 학습된 모델의 예측을 위해서는 predict() 메서드를 사용합니다.
- 사이킷런에서는 분류 알고리즘을 구현한 클래스를 Classifier로, 회귀 알고리즘을 구현한 클래스를 Regressor로 지칭합니다. 사이킷런에서는 매우 많은 유형의 Classifier와 Regressor 클래스를 제공합니다.
- Classifier와 Regressor를 합쳐서 Estimator 클래스라고 부릅니다. 즉, 지도학습의 모든 알고리즘을 구현한 클래스를 통칭하여 Estimator 클래스라고 부릅니다.
- 분류 구현 클래스: DecisionTreeClassifier, RandomForestClassifier, GradientBoostingClassifier, GaussianNB, SVC
- 회귀 구현 클래스: LinearRegression, Ridge, Lasso, RandomForestRegressor, GradientBoostingRegressor
- 사이킷런에서 비지도학습인 차원 축소, 클러스터링, 피처 추출 등을 구현한 클래스 역시 대부분 fit()과 transform()을 적용합니다.
- fit(): 입력 데이터의 형태에 맞춰 데이터를 변환하기 위한 사전 구조를 맞추는 작업
- transform(): 사전 구조를 맞춘 후 입력 데이터의 차원 변환, 클러스터링, 피처 추출 등의 실제 작업을 수행
- 이 둘을 합친 fit_transforma()도 있음
사이킷런의 주요 모듈
- 예제 데이터
- sklearn.datasets
- 피처 처리
- sklearn.preprocessing : 데이터 전처리에 필요한 다양한 가공 기능 제공
- sklearn.feature_selection : 알고리즘에 큰 영향을 미치는 피처를 우선순위대로 셀렉션 작업을 수행하는 다양한 기능 제공
- sklearn.feature_extraction : 텍스트 데이터나 이미지 데이터의 벡터화 된 피처를 추출하는 데 사용됨.
- 피처 처리 & 차원 축소 : sklearn.decomposition
- 데이터 분리, 검증 & 파라미터 튜닝
- sklearn.model_selection : 교차 검증을 위한 학습용/테스트용 분리, 그리드서치로 최적 파라미처 추출 등의 API 제공
- 평가 : 다양한 성능 측정 방법 제공
- sklearn.metrics : Accuracy, Precision, Recall, ROC-AUC, RMSE 등 제공
- ML 알고리즘
- sklearn.ensemble : 앙상블 알고리즘, 랜덤포레스트, 에이다 부스트, 그래디언스 부스팅
- sklearn.linear_model : 회귀 관련 알고리즘
- sklearn.naive_bayes : 나이브 베이즈 알고리즘
- sklearn.neighbors : 최근접 이웃 알고리즘. K-NN 등
- sklearn.svm : 서포트 벡터 머신 알고리즘
- sklearn.tree : 의사 결정 트리 알고리즘
- sklearn.cluster : 비지도 클러스터링 알고리즘
- 유틸리티
- sklearn.pipeline : 피처 처리 등의 변환과 ML 알고리즘 학습, 예측 등을 함께 묶어서 실행할 수 있는 유틸리티 제공
- 위 모듈들을 지금 외우려고 하지 마세요. 앞으로 예제를 실습하면서 접하다보면 우리가 자주 사용하는 모듈에 대해 더 깊이 알아갈 수 있을 거에요.
- 이제 사이킷런에 내장된 예제 데이터의 구성을 살펴보겠습니다.
내장 예제 데이터셋의 구성
- 사이킷런에 내장된 데이터셋은 일반적으로 딕셔너리 형태로 되어 있습니다.
- 키는 보통 data, target, target_name, feature_names, DESCR로 구성이 되어 있습니다.
- data : 피처의 데이터셋(numpy array)
- target : 분류-레이블 값, 회귀-숫자 결괏값 데이터셋(numpy array)
- target_name : 개별 레이블의 이름(numpy array or Python list)
- feature_names : 피처의 이름(numpy array or Python list)
- DESCR : 데이터셋에 대한 설명과 각 피처의 설명(string type)
'Python > Machine Learning' 카테고리의 다른 글
[ML]_하이퍼 파라미터 튜닝(GridSeachCV) (0) | 2023.08.27 |
---|---|
[ML]_파라미터도 있는데 하이퍼 파라미터는 또 뭐야? (0) | 2023.08.27 |
[ML]_머신러닝에서의 교차 검증 - K 폴드 vs. Stratified K 폴드 (0) | 2023.08.22 |
[ML]_붓꽃 품종 예측하기 (0) | 2023.08.21 |
[ML]_머신러닝, 같이 할래요? (0) | 2023.08.17 |