Python 머신러닝 프로그래밍 제6장 요약

3668 단어 Python3기계 학습
이 책의 6장

Pipeline 클래스

  • scikit-learn의 변환기와 평가기를 결합하여 함수 호출을 시원하게 한다
  • 변환기: 표준화, PCA(비트다운)
  • .fit () --> 데이터의 통계적 특성을 가져와 메모리에 저장하기
  • .transform () --> 이를 바탕으로 데이터 값 조작
  • 평가기: LogisticRegression(회귀)
  • .fit () --> 학습 훈련 데이터로 모델fit
  • .predict()-->predict
  • 모델 선택


  • 하이퍼패라메트릭 최적화
  • 훈련 전 확정치
  • 학습률 $\gamma$(36페이지)
  • 유지법

  • 모델 서로의 우열을 결정하기 위해서는 훈련 데이터를 사용해야 할 뿐만 아니라 테스트 데이터를 사용하여 정확도를 얻어 평가해야 한다
  • 이 방법일 경우 특정 테스트 데이터에 적합한 모델을 선택하기 때문에 과도한 학습을 방지하기 위해 최종 성능 평가는 다른 테스트 데이터가 필요하다
  • 따라서 훈련 데이터 집합의 일부를 모델 선택 시 테스트에 사용하고 이를 검측 데이터 집합이라고 부른다
  • 그러나 이곳의 구분 방법에 따라 성능 평가가 달라질 수 있다.그래서...
  • k 분할 교차점 검증

  • 훈련 데이터 집합에 대해 k분할을 하고 비복원 추출(얻은 후 혈로 돌아가지 않는 측)을 통해 그 중 하나를 검측 데이터 집합으로 선택하고 k회를 반복하며 k회의 정확도(or 오류율)의 평균을 성능으로 평가한다
  • 만족스러운 정확도를 줄 수 있는 초파라미터를 찾으면 전체 훈련 데이터에 집중해서 다시 학습한다
  • 계층 k 분할 교차 검증
  • 분할 후의 데이터 집합을 분류하여 편향되지 않는 분할을 통해 약간 개선
  • 편차와 편차 진단


    복습(3장)

  • 편차가 높다=학습 부족
  • 모델의 복잡성이 데이터를 포착하기에 부족한 모델
  • 매개변수를 추가하면 됩니다
  • 유효성 높음=과도한 학습
  • 반대로 데이터에 대해 모델이 너무 복잡하다
  • 파라미터를 줄이거나 훈련 데이터를 늘리기 시도
  • 학습 곡선



    커브 유효성 검사

  • 편차, 편차 판정 기준은 학습 곡선과 같고 가로축을 모델의 초파라미터로 한다
  • 논리적 회귀를 위한 정규화 매개변수 C(74페이지)

  • 메쉬 검색


    여러 개의 초파라미터가 있는 상황에서 각종 값의 조합에 대해 어리석은 조사를 해서 가장 좋은 조합을 찾는 방법이지만, 가능한 모든 조합을 조사하려면 계산 원가가 높아진다

    중첩된 교차 검증

  • 먼저 전체 데이터 세트 k1을 분할
  • 그 중 하나를 테스트 데이터 집합으로 하고 나머지 데이터를 훈련 데이터 집합으로 한다
  • k2 분할 교차 검증(훈련 데이터 집합 등을 k2로 나누고 1개를 검증 데이터 집합으로 한다)×k2회)
  • 반복 k1회 1~3
  • 여러 알고리즘을 서로 비교할 때 추천
  • 각종 성능 평가 지표


    혼동 행렬



    이러한 네 가지 연산을 통해 각종 성능 평가 지표(적합률, 재현율, F1 득점 등)를 구한다(모두 scikit-learn에서)

    ROC 커브

  • 양성인지 음성인지 판단하는 한도값이 0에서 1로 변화할 때의 진양성률과 가양성률의 변화
  • 진양성률은 정답이 양성일 때 양성으로 판정되는 조건부 확률
  • 가양성률은 정답이 음성일 때 양성으로 판정되는 조건부 확률
  • 가양성률에 대해 진양성률이 높을수록 좋기 때문에 도표가 대각선 이상이고 왼쪽이나 위에 붙이면 좋은 모델
  • 이라고 할 수 있다
  • 따라서 곡선 아래 면적 AUC는 성능 지표가 된다
  • 이런 방법은 모두가 익숙한 전체적인 생각에 따라 여러 가지 문제로 확장될 수 있을 것 같다

  • 반에 편차가 있을 때

  • 정확도는 만능이 아니다
  • 기계 고장 검사에서 고장이 없는 데이터의 비율이 압도적으로 많기 때문에 일정한 정상적인 모델에 대한 대답은 놀라운 정확도를 나타낸다
  • 바로
  • 이기 때문에 각종 성능 평가 지표를 제시했다
  • 알고리즘에 따라 원가 함수와 보수를 각 훈련 견본에 대한 합계값으로 하지만 그렇다면 편차가 있는 상황에서 다수결이 된다
  • 소수 라벨의 오류 예측에 대해 큰 처벌 등 조치가 필요하다
  • scikit-learn에서 class_weight='balanced'하면 됩니다
  • .
  • 여러 가지 방법이 있지만 만능적인 해결책은 없는 것 같다
  • 매번 노력해야 한다
  • 좋은 웹페이지 즐겨찾기