[데이터 엔지니어링 데브코스 2기] TIL-16주차 머신러닝, Scikit-learn, 실전 머신러닝 문제 실습 (1)

이재호·2024년 1월 30일
0

1. ML 프로젝트의 전체적인 단계


  1. 큰 그림 그리기.

    • 주제는 무엇인지.
    • 지도학습, 비지도학습, 강화학습 중 무엇인지.
    • 분류 문제인지 회귀 문제인지.
    • 배치학습인지 온라인학습인지.
  2. 데이터 구하기.

  3. 데이터 시각화로 통찰 얻기.

  4. 학습용 데이터 준비.

  5. 모델 선택 및 훈련.

  6. 모델 조정(fine-tuning).

  7. 모델을 기반으로 솔루션 제시.

  8. 시스템 런칭 및 유지 보수.

2. 테스트 데이터셋


좋은 모델을 만들기 위해서는 전체 데이터셋 중 20%는 테스트용으로 분리하는 것이 좋음.

  • train_dataset, test_dataset = split_train_test(dataset, 0.2) 처럼 full-refresh 처럼 분리하는 것보다는 데이터의 identifier를 활용해서 하는 것이 좋음.
  • crc32(np.int64(identifier)) & 0xffffffff < test_ratio * 2**32처럼 식별자의 해싱 개념으로 활용 가능.
  • Scikit-Learn에서는 기본적으로 train_test_split()이라는 함수로 데이터 분할이 가능함.

3. 데이터 탐색 및 시각화


  • matplotlib을 활용하여 plot하여 데이터를 시각화.
  • 데이터셋에서 여러 특성들 간의 조합으로 새로운 특성 정의. ex) 침대 수 / 방의 수 => 방 대비 침대 수 비율. => 방이 많을 수록 침대가 많다.

데이터 정제(data cleaning).

  • 누락된 특성 다루기. (해당 행 제거 및 해당 열 제거(비추), 어떤 값으로 채우기(추천) 등)

4. Estimator, Transformer, Predictor


  • Estimator: 데이터셋을 기반으로 모델 파라미터들을 추정하는 객체.(예, imputer.fit())
  • Transformer: 데이터셋을 변환하는 추정기. imputer.transform()
  • Predictor: 일부 추정기는 주어진 새로운 데이터셋에 대해 예측값 생성 가능. or 선형회귀 모델.
profile
천천히, 그리고 꾸준히.

0개의 댓글