혼공 머신러닝/딥러닝 #2

이번 장은 데이터 세트를 훈련용과 테스트용으로 나누는 것(train_test_split)과 데이터 전처리에 대해 다룬다.

훈련 세트와 테스트 세트

  • 1장 과정의 문제점 : 모든 데이터를 저장하고 그 중 데이터를 맞추는 건데 이상하지 않니? → 훈련 세트와 테스트 세트
  • ML 알고리즘의 분류
    • 지도(Supervised)학습 : 데이터와 정답이 주어지는 경우
    • 비지도(Unsupervised)학습 : 데이터만 있을 때, 데이터를 파악하거나 변형하는 데 도움을 줌.
    • 강화학습 : 행동과 보상 매커니즘
  • 훈련 데이터 : 입력(피쳐의 집합)과 타깃(정답)
  • 넘파이 numpy
    • 파이썬 배열 라이브러리
    • 내장 리스트 보다 좋고 빠르고 편함..

데이터 전처리

  • numpy column_stack 함수, 리스트를 nparray로 세워줌.. 행 → 열
  • 훈련 세트, 테스트 세트 나누기는 sklearn의 train_test_split 함수로 편하게 하자.
  • 무작위로 데이터를 나눌 때 .. 가급적이면 전체 집합의 비율과 비슷하게 나오도록.. stratify 인자, 비율 기준으로 삼을 array
  • kn.kneighbors 메서드 : 이웃 반환
  • 스케일
    • 스케일 맞추기 – 표준점수(z 점수)를 사용하는 방법 : 평균에서 표준편차의 몇 배만큼 떨어져 있는지..
    mean = np.mean(train_input, axis=0) std = np.std(train_input, axis=0) train_scaled = (train_input - mean) / std # Standard score
    • 대부분의 ML 알고리즘은 특성의 스케일이 다르면 제대로 작동 안함.
    • 표준점수 말고 다른 표준화 방법도 있당

예제

  • 데이터 준비
  • 학습 시키기, 훈련 세트와 테스트 세트를 잘못 나누면 샘플링 편향이 생긴다.
  • 스케일이 서로 다른 두 특성(length, weight)을 표준화 함.
  • 스케일을 맞춘 데이터
  • 스케일 맞추기
  • kNN은 distances로 어떤 값들이 이웃으로 선택됐는지 확인할 수 있다.
  • 분류 문제에서는 훈련 세트가 전체 세트의 비율과 유사한지 확인해야 한다.
  • 사이킷런에는 훈련 세트와 테스트 세트를 나눌 수 있는 train_test_split 함수를 제공
  • numpy로 데이터 만들기
  • 샘플링의 편향을 없애고 다시 훈련
  • numpy 데이터로 훈련
  • numpy로 데이터 처리

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다