8 Dec, 2021

wannabedatazzang·2021년 12월 8일

[Sol] Today I Learned

목록 보기
14/15

[핸즈온 머신러닝]

2장
  • 머신러닝 알고리즘을 위한 데이터 준비를 함수를 만들어서 자동화해야하는 이유 :
    • 어떤 데이터셋에 대해서도 데이터 변환을 손쉽게 반복할 수 있다.(예: 다음번에 새로운 데이터셋을 사용할 때)
    • 향후 프로젝트에 사용할 수 있는 변환 라이브러리를 점진적으로 구축하게 된다.
    • 실제 시스템에서 알고리즘에 새 데이터를 주입하기 전에 변환시키는 데 이 함수를 사용할 수 있다.
    • 여러가지 데이터 변환을 쉽게 시도해볼 수 있고 어떤 조합이 가장 좋은지 확인하는데 편리하다.
  • 결측치 처리 방법 :
    • 해당 구역 제거
    • 전체 특성을 삭제
    • 어떤 값으로 채움 (0, 평균, 중간값 등)
  • OrdianalEncoder : 머신러닝 알고리즘이 가까이 있는 두 값이 떨어져 있는 두 값보다 더 비슷하다고 생각함. 이런 경우 이진 특성 OneHotEncoder가 나은 방법.
  • 특성 스테일링 : 숫자 특성들의 스케일이 많이 다르면 잘 작동하지 않는다.
  • ColumTransformer : 범주형 열과 수치형 열 같이 다룰수 있음
from sklearn.compose import ColumnTransformer

num_attribs = list(housing_num)
cat_attribs = ["ocean_proximity"]

full_pipeline = ColumnTransformer([
    ("num", num_pipeline, num_attribs),
    ("cat", OneHotEncoder(), cat_attribs),
])

housing_prepared = full_pipeline.fit_transform(housing)
  • 여러 종류의 머신러닝 알고리즘으로 하이퍼파라미터 조정에 너무 많은 시간을 들이지 않으면서 다양한 모델을 시도해봐야 한다. 가능성 있는 2~5개 정도의 모델을 선정하는 것이 목적이다. GridSearchCV를 통해서 최적의 하이퍼파라미터 조합을 찾는다.

0개의 댓글