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))

[그림1] 데이터 타입 확인

  • Bunch 클래스는 파이썬 딕셔너리 자료형과 유사하다.
  • 데이터 세트에 내장돼 있는 대부분의 데이터 세트는 딕셔너리 형태 값을 반환한다.

 

 

keys = iris_data.keys()
print('붓꽃 데이터 키들 : ',keys)

[그림2] key값 확인

 

 

#  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)

[그림3] shape, type

 

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기