( 핸즈온 머신러닝 책 study p.67~)

머신러닝이 어떻게 돌아가는지, 어떤 순서로 데이터를 가공하고 적용할지에 대해서 큰 그림을 그려보긔

 

1. 문제정의 - 어떤 기법을 쓰지? 어떤 데이터지? 


2. 성능 측정 지표 선택 - 대표적: 평균 제곱근 오차(RMSE): 유클리디안 노름(방법), 예측값의 벡터와 타깃값의 벡터 사이의 거리를 재는 방법


3. 데이터 가져오기


4. 환경 구축
  1) 데이터 구조 훑기: head(),info(), value_counts(), describe(), 
  2) 데이터 시각화를 통해 데이터 살펴보기
   : 히스토그램을 통해 알 수 있는 결과: 각 컬럼들의 스케일, 상한 하한값, 특성 어떻게 표시되어있는지, 모양의 분포를    통해 정규화해야할지 말지 정하기
   3) 테스트 세트 만들기
   : 테스트 세트를 떼어놓는 이론적인 방법: 무작위로 어떤 샘플을 선택해서 데이터셋의 20% 정도를 (데이터셋이 매우         크다면 그보다 적게) 떼어놓으면 됨.


4. 데이터 이해를 위한 탐색과 시각화
   : 산점도, 상관관계 조사(corr()), 등등


5. 머신러닝 알고리즘을 위한 데이터 준비
   1) 데이터 정제: dropna(), drop(), fillna(), simpleImputer()(누락된 값을 손쉽게 다루게 해줌, 누락된 값을 특성의 중간          값으로 대체 한다고 지정)
   2) 텍스트와 범주형 특성 다루기- > 텍스트를 숫자로 변환(OrdinalEncoder() 사용), OneHotEncoder()
   3) 특성 스케일링: min-max스케일링(정규화), StandardScaler()(표준화)

 

6. 모델 선택과 훈련
   :과소/과대적합 고려하기
    1) 선형회귀 모델: LinearRegression
    2) 의사결정 모델: DecisionTreeRegressor
    3) RandomForestRegressor
    4) 과대 적합일 경우 대안으로 사용하는 방법: 교차검증(k fold cross_val_score)


7. 모델 세부 튜닝

   1) 그리드 탐색(GridSearchCV)

       : 만족할 만한 하이퍼파라미터 조합을 찾아줌

   2) 랜덤 탐색(RandomizedSearchCV)

      : 그리드 서치와 비슷하지만 하이퍼파라미터 탐색공간이 커지면 사용하는 편이 좋음

   3) 앙상블 방법

      : 최상의 모델을 연결해보는 것, 모델의 그룹을 단일 그룹보다 더 나은 성능을 발휘할 때가 많음, 

   4) 최상의 모델과 오차분석

      : 정확한 예측을 위한 특성의 상대적인 중요도를 알려줌

   5) 테스트 세트로 시스템 평가하기

+ Recent posts