728x90
반응형
Estimator 이해 및 fit(), predict() 메서드
- ML 모델 학습 fit()
- 학습된 모델의 예측을 위해 predict()
- 지도학습의 분류(Classification), 회귀(Regression)의 다양한 알고리즘을 구현한 모든 사이킷런 클래스는 fit()과 predict()만을 이용해 간단하게 학습과 예측 결과를 반환한다.
사이킷런의 주요 모듈
분류 | 모듈명 | 설명 |
예제 데이터 | sklearn.datasets | 사이킷런에 내장되어 예제로 제공하는 데이터 세트 |
피처 처리 | sklearn.preprocessing | 데이터 전처리에 필요한 다양한 가공 기능 제공(문자열을 숫자로형 코드 값으로 인코딩, 정규화, 스케일링 등) |
sklearn.feature_selection | 알고리즘에 큰 영향을 미치는 피처를 우선순위대로 셀렉션 작업을 수행하는 다양한 기능 제공 | |
피처 처리 | sklearn.feature_extraction | 텍스트 데이터 이미지 데이터의 벡터화된 피처를 추출하는데 사용됨. 예를 들어 텍스트 데이터에서 Count Vectorize나 Tf-Idf Vectorizer 등을 생성하는 기능 제공. 텍스트 데이터 피처 추출은 sklearn.feature_extraction. text 모듈에, 이미지 데이터의 피처 추출은 sklearn.feature_extraction.image 모듈에 지원 API가 있다. |
피처 처리 & 차원 축소 | sklearn.decomposition | 차원 축소와 관련한 알고리즘을 지원하는 모듈임. PCA, NMF, Truncated SVD 등을 통해 차원 축소 기능을 수행할 수 있다. |
데이터 분리, 검증 & 파라미터 튜닝 | sklearn.model_selection | 교차 검증을 위한 학습용/테스트용 분리, 그리드 서치(Grid Search)로 최적 파라미터 추출 등의 API 제공 |
평가 | sklearn.metrics | 분류, 회귀, 클러스터링, 페어와이즈(Pairwise)에 대한 다양한 성능 측정 방법 제공 Accuracy, Precision, Recall, ROC-AUC, RMSE 등 제공 |
ML 알고리즘 | sklearn.ensemble | 앙상블 알고리즘 제공 랜덤 포레스트, 에이다 부스트, 그래디언트 부스팅 등을 제공 |
sklearn.linear_model | 주로 선형 회귀, 릿지(Ridge), 라쏘(Lasso) 및 로지스틱 회귀 등 회귀 관련 알고리즘을 지원. 또한 SGD(Stochastic Gradient Descent) 관련 알고리즘도 제공 | |
sklearn.naive_bayes | 나이브 베이즈 알고리즘 제공, 가우시안 NB, 다항 분포 NB 등. | |
sklearn.neighbors | 최근접 이웃 알고리즘 제공, K-NN 등 | |
sklearn.svm | 서포트 벡터 머신 알고리즘 제공 | |
sklearn.tree | 의사 결정 트리 알고리즘 제공 | |
sklearn.cluster | 비지도 클러스터링 알고리즘 제공 (K-평균, 계층형, DBSCAN 등) |
|
유틸리티 | sklearn.pipeline | 피처 처리 등의 변환과 ML 알고리즘 학습, 예측 등을 함께 묶어서 실행할 수 있는 유틸리티 제공 |
내장된 데이터 세트
API 명 | 설명 |
datasets.load_boston() | 회귀 용도이며, 미국 보스턴의 집 피처들과 가격에 대한 데이터 세트 |
datasets.load_breast_cancer() | 분류 용도이며, 위스콘신 유방암 피처들과 악성/음성 레이블 데이터 세트 |
datasets.load_diabetes() | 회귀 용도이며, 당뇨 데이터 세트 |
datasets.load_digits() | 분류 용도이며, 0에서 9까지 숫자 이미지 픽셀 데이터 세트 |
datasets.load_iris() | 분류 용도이며, 붓꽃에 대한 피처를 가진 데이터 세트 |
fetch 계열의 명령은 최초 사용시 인터넷에서 내려받아 홈 디렉터리 아래의 scikit_learn_data라는 서브 디렉터리에 저장한 후 추후 불러들이는 데이터다.
- fetch_convtype() : 회귀 분석용 토지 조사 자료
- fetch_20newsgroups() : 뉴스 그룹 텍스트 자료
- fetch_olivetti_faces() : 얼굴 이미지 자료
- fetch_lfw_people() : 얼굴 이미지 자료
- fetch_lfw_pairs() : 얼굴 이미지 자료
- fetch_rcv1() : 로이터 뉴스 말뭉치
- fetch_mldata() : ML 웹사이트에서 다운로드
분류와 클러스터링을 위한 표본 데이터 생성기
API 명 | 설명 |
datasets.make_classifications() | 분류를 위한 데이터 세트를 만든다. 특히 높은 상관도, 불필요한 속성 등의 노이즈 효과를 위한 데이터를 무작위로 생성해 준다. |
datasets.make_blobs() | 클러스터링을 위한 데이터 세트를 무작위로 생성해 준다. 군집 지정 개수에 따라 여러 가지 클러스터링을 위한 데이터 세트를 쉽게 만들어 준다. |
data, target 확인
# data, target 타입, 확인
from sklearn.datasets import load_iris
iris_data = load_iris()
print(type(iris_data))
- Bunch 클래스는 파이썬 딕셔너리 자료형과 유사하다.
- 데이터 세트에 내장돼 있는 대부분의 데이터 세트는 딕셔너리 형태 값을 반환한다.
keys = iris_data.keys()
print('붓꽃 데이터 키들 : ',keys)
# data', 'target', 'frame', 'target_names', 'DESCR', 'feature_names', 'filename' 확인
print('\n feature_names 의 type : ', type(iris_data.feature_names))
print(' feature_names 의 shape : ', len(iris_data.feature_names))
print(iris_data.feature_names)
print('\n target_names 의 type : ', type(iris_data.target_names))
print(' target_names 의 shape : ', len(iris_data.target_names))
print(iris_data.target_names)
print('\n data 의 type : ', type(iris_data.data))
print(' data 의 shape : ', iris_data.data.shape)
print(iris_data['data'])
print('\n target 의 type : ', type(iris_data.target))
print(' target 의 shape : ', iris_data.target.shape)
print(iris_data.target)
728x90
반응형
최근댓글