공부/AIFFEL

FUNDAMENTAL 9. 사이킷런으로 구현해 보는 머신러닝

dong_dong_2 2021. 1. 18. 20:42

1. 머신러닝의 알고리즘
    - 지도학습 : 분류, 예측, 회귀 
    - 비지도학습 : 클러스터링, 차원축소
    - 선형회귀, 로지스틱 회귀, 앙상블트리(랜덤포레스트, 그래디언트 부스팅), 신경망과 딥러닝, K-평균, K-모드, 가우시안혼합모델 클러스터링, DBSCAN, 계층적 군집화, PCA, SVD, LDA
    - 강화학습 : 에이전트(학습 주체), 환경(에이전트에게 주어진 상황, 조건), 행동(에이전트의 판단), 보상(행동에 대한 보상)
2. 사이킷런에서 가이드하는 머신러닝 알고리즘
    - 분류, 회귀, 군집화, 차원축소가 있음
    - 알고리즘은 크게 데이터 양, 라벨의 유무, 데이터 종류(수치형, 범주형)으로 나뉨
    - 분류 알고리즘 : SVC, EnsembleClassifiers, SGD Classifier, NaiveBayes, Linear SVC,

                           K Neighbors Classifier, Kernel approximation
    - 회귀 알고리즘 : SGD Regressor, Lasso, ElasticNet, RidgeRegression,

                           SVR(kernel = "linear"), SVR(kernel = "rbf"), EnsembelRegressor
    - 클러스터링 알고리즘 : Spectral Clustering, GMM, K-Means, MiniBatch K-Means, MeanShift, VBGMM
    - 차원축소 알고리즘 : Randomized PCA, Isomap, Spectral Embedding, LLE, Kernel approximation

3. Hello Scikit-learn
    - pip install scikit-learn
    - scipy + toolkit = scikit
    - sklearn.model_selection.train_test_split (훈련데이터와 테스트 데이터를 나누는 함수)
    - transfomer, estimator, fit, predict, pipline(meta-estimator)

4. 사이킷런의 주요 모듈 (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 (군집관련 머신러닝 알고리즘)

    - 데이터 표현법 : 특성 행렬, 타겟 벡터
5. 사이킷런의 주요 모듈 (2) 회귀 모델 실습
    - 선형 회귀, RMSE으로 실습함
6. 사이킷런의 주요 모듈 (3) datasets 모듈

    - datasets.load로 시작

    - boston, brest_cancer, digits, iris, wine 등이 있음
    - 파이썬의 딕셔너리와 유사한 데이터
7. 사이킷런의 주요 모듈 (4) 사이킷런 데이터셋을 이용한 분류 문제 실습
    - 랜덤포레스트를 이용하여 실습
8. 사이킷런의 주요 모듈 (5) Estimator
    - 데이터셋을 기반으로 머신러닝 모델의 파라미터를 추정하는 객체를 말함
    - 사이킷런의 Estimator 객체를 사용하면 비지도학습, 지도학습에 관계 없이 학습과 예측을 할 수 있음
9. 훈련 데이터와 테스트 데이터 분리하기
    - train_test_split(X, Y, test_size = (보통 0.2로 함), random_state = (랜덤시드숫자))
    - 4개의 원소를 반환함 : [0] : x_train, [1] : x_test, [2] : y_train, [3] : y_test