기계 학습 훈련 데이터의 분할, 학습, 예측, 검증

PyData.Tokyo의 자습서 #1를 토대로 머신러닝을 학습·가르치면 훈련 데이터를 쪼개서 보면 학습·예측·검증하는 부분은 이해하기 어렵다고 느낀다.
내가 이 부분을 설명할게.

전제 조건

  • 학습을 위한 교사가 있음-> 태그 데이터
  • 데이터 세트 수 -> 이 자습서에서 890건
  • 학습 및 검증을 위해 테스트 데이터의 20% 보존
  • 특징 행렬은 다차원적이다(이것은 당연한 것이다...)
  • sklearn(scikit-learn)
  • 사용
  • 논리적 회귀를 통한 추정
  • 상세 코드 참조PyData.Tokyo의 자습서 #1pydatatokyo_tutorial_ml.ipynb
  • 트레이닝 데이터 분할


    피쳐 행렬X클래스 레이블 데이터y데이터 분할을 수행할 수 있습니다.
    from sklearn.model_selection import train_test_split
    X_train, X_val, y_train, y_val = train_test_split(X, y, train_size=0.8, random_state=1)
    
  • X_train: 학습특징 매트릭스(80%)
  • X_val: 평가용 특징 매트릭스(20%)
  • y_train: 학습 클래스 탭(80%) 알 수 없는 데이터
  • y_val: 평가 클래스 탭(20%)은 알 수 없는 데이터와 일치합니다(숨김)
  • 학습, 예측, 검증


    분류기(학습기)의 초기화

    from sklearn.linear_model import LogisticRegression
    clf = LogisticRegression()
    
    clf를 초기화하여 다음과 같은 학습, 예측, 검증에 사용합니다.

    배우다

    clf.fit(X_train, y_train)
    
    초기화된 clf의fit 방법을 사용하여 학습
    데이터가 80%의 학습 데이터에 특징 매트릭스와 클래스 라벨을 제공한다

    예측

    y_train_pred = clf.predict(X_train)
    y_val_pred = clf.predict(X_val)
    
    clf의predict 방법으로 예측합니다.
  • y_train_pred: 학습용 데이터로 다시 예측한 결과
  • y_val_pred: 평가용 데이터로 예측한 결과
  • 지금까지 사용하지 않았습니다y_val.즉, y_train를 알 수 없는 데이터로 처리

    평가/검증

    from sklearn.metrics import accuracy_score
    train_score = accuracy_score(y_train, y_train_pred)
    val_score = accuracy_score(y_val, y_val_pred)
    
    accuracy_score 주고クラスラベルデータ上記の予測結果, 출력 정답률
  • train_score: 학습용 데이터로 예측한 결과
  • val_score: 평가용 데이터로 예측한 결과 미지의 데이터로 예측
  • 좋은 웹페이지 즐겨찾기