이 책의 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'하면 됩니다.
여러 가지 방법이 있지만 만능적인 해결책은 없는 것 같다매번 노력해야 한다