뮤트 개발일지

AIFFEL 아이펠 사이킷런으로 구현해보는 머신러닝 본문

AIFFEL

AIFFEL 아이펠 사이킷런으로 구현해보는 머신러닝

박뮤트 2022. 1. 10. 19:47

https://blogs.sas.com/content/saskorea/2017/08/22/%EC%B5%9C%EC%A0%81%EC%9D%98-%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EC%9D%84-%EA%B3%A0%EB%A5%B4%EA%B8%B0-%EC%9C%84%ED%95%9C-%EC%B9%98%ED%8A%B8/

 

최적의 ‘머신러닝 알고리즘’을 고르기 위한 치트키

“어떤 알고리즘을 사용해야 할까요?

blogs.sas.com

지도학습에 속하는 대표적인 알고리즘

- 분류classification: 예측해야할 데이터가 범주형 변수일때 분류라고 함
- 회귀regression: 예측해야할 데이터가 연속적인 값일때 회귀라고 함
- 예측forecastiog: 과거 및 현재 데이터를 기반으로 미래를 예측하는 과정. 예를 들어 올해와 전년도 매출을 기반으로 내년도 매출을 추산하는 것

 

비지도학습에 속하는 대표적인 알고리즘

- 클러스터링: 특정 기준에 따라 유사한 데이터끼리 그룹화함
- 차원축소: 고려해야할 변수를 줄이는 작업. 변수와 대상간 진정한 관계를 도출하기 용이

 

특정 알고리즘의 예

: 선형회귀, 로지스틱회귀, 트리, 앙상블트리(랜덤포레스트. 그래디언트 부스팅), 신경망&딥러닝을 사용하는 알고리즘, K평균, K모드, 가우시안혼합모델 클러스터링, DBSCAN, 계층적 군집화, PCA, SVD, LDA

 

사이킷런에서 알고리즘의 task

: Classification, Regression, Clustering, Dimensionality Reduction

 

사이킷런에서 알고리즘 분류 기준

: 데이터수량, 라벨의 유무(정답의 유무), 데이터의 종류(수치형 데이터quantity, 범주형 데이터 category 등)

 

사이킷런에서 소개하는 Classification용 알고리즘 종류

: SGD Classifier, KNeighborsClassifier, LinearSVC, NaiveBayes, SVC, Kernel approximation, EnsembleClassifiers

 

사이킷런에서 소개하는 Regression용 알고리즘 종류

: SGD Regressor, Lasso, ElasticNet, RidgeRegression, SVR(kernel='linear'), SVR(kernel='rbf'), EnsembleRegressor

 

사이킷런에서 훈련 데이터와 테스트 데이터를 나누는 기능을 제공하는 함수

: sklearn.model_selection 안의 train_test_split

 

사이킷런에서 ETL(Extract Transform Load) 기능을 수행하는 함수

: transformer()

 

사이킷런에서 모델model로 표현되는 클래스

: Estimator

 

Estimator클래스의 메소드

: fit(), predict()

 

Estimator와 transformer() 2가지 기능을 수행하는 사이킷런의 API

: Pipline 혹은 meta-estimator

 

사이킷런의 주요 모듈

(1) 데이터 표현법

비고 모듈명 설명
데이터셋 sklearn.datasets 사이킷런에서 제공하는 데이터셋
데이터타입 sklearn.utils.Bunch 사이키선에서 제공하는 데이터셋의 데이터 타입(자료형)
데이터 전처리 sklearn.preprocessing 데이터 전처리(정규화, 인코딩, 스케일리 등)
데이터 분리 sklearn.model_selection.train_test_split 학습용/테스트용 데이터셋 분리
평가 sklearn.metrics 분류, 회귀, 클러스터링 알고리즘의 성능을 측정하는 함수를 제공
머신러닝 알고리즘
(모델)
sklearn.ensemble 앙상블관련 머신러닝 알고리즘 - 랜덤 포레스트, 에이다 부스트, 그래디언트 부스팅
sklearn.linear_model 선형 머신러닝 알고리즘 - 릿지, 라쏘, SGD 등
sklearn.naive_bayes 나이브 베이즈 관련 머신러닝 알고리즘
sklearn.neighbors 최근접 이웃 모델 관련 - 릿지, 라쏘, SGD 등
sklearn.svm SVM 관련 머신러닝 알고리즘
sklearn.tree 트리 관련 머신러닝 알고리즘 - 의사결정 트리 등
sklearn.cluster 군집관련 머신러닝 알고리즘

 

데이터 표현법

사이킷런에서 제공하는 데이터셋: NumPy의 ndarray, Pandas의 DataFrame, SciPy의 Sparse Matrix

데이터 표현방식: 특성 행렬Feature Matrix, 타겟 벡터Target Vector

 

특성 행렬Feature Matrix

- 입력 데이터를 의미한다.

- 특성feature: 데이터에서 수치 값, 이산 값, 불리언 값으로 표현되는 개별 관측치 의미. 특성 행렬에서는 열에 해당하는 값

- 표본sample: 각 입력 데이터. 특성 행렬에서는 행에 해당하는 값

- n_samples: 행의 개수(표본의 개수)

- n_features: 열의 개수(특성의 개수)

- X: 통상 특성 행렬은 변수명 X로 표기

- [n_samples, n_features]는 [행, 열] 형태의 2차원 배열 구조를 사용하며 이는 NumPy의 ndarray, Pandas의 DataFrame, SciPy의 Spares Matrix를 사용해서 나타낼 수 있다.

 

타겟 벡터Target Vector

- 입력 데이터의 라벨(정답)을 의미한다.

- 목표target: 라벨, 타겟값, 목표값이라고도 부르며 특성 행렬로부터 예측하고자 하는 것을 말한다.

- n_samples: 벡터의 길이(라벨의 개수)

- 타겟 벡터에서 n_features는 없다.

- y: 통상 타겟 벡터는 변수명 y로 표기

- 타겟 벡터는 보통 1차원 벡터로 나타내며, 이는 NumPy의 ndarray, Pandas의 Series를 사용하여 나타낼 수 있다.

- 단, 타겟 벡터는 경우에 따라 1차원으로 나타내지 않을 수도 있다.

 

* 특성 행렬 X의 n_samples와 타겟 벡터 y의 n_samples는 동일해야 한다.

'AIFFEL' 카테고리의 다른 글

AIFFEL 아이펠 11일차  (0) 2022.01.11
AIFFEL 아이펠 10일차  (0) 2022.01.11
AIFFEL 아이펠 9일차  (0) 2022.01.06
AIFFEL 아이펠 8일차  (0) 2022.01.05
AIFFEL 아이펠 다양한 데이터 전처리 기법  (0) 2022.01.05