What if you wanted to predict how many out of 100 employees will eat a donut at the office on Friday?What if you wanted to predict how many out of 100 employees will eat a donut at the office on Friday?What if you wanted to predict how many out of 100 employees will eat a donut at the office on Friday?What if you wanted to predict how many out of 100 employees will eat a donut at the office on Friday?직원 100명 중 몇 명이 금요일에 사무실에서 도넛을 먹을지 예측하고 싶다면 어떻게 해야 할까요? JMP 매우 강력한 통계 발견 도구이며 다양한 통계 모델을 만드는 데 능숙합니다. 그러나 예측 이진 분류 모델에 대한 임계값을 포괄적으로 평가하려면 여러 플랫폼과 여러 단계가 필요합니다. ㅏ 디스커버리 서밋 2018 이 강연에서는 분류 모델의 임계값을 평가하고 선택하는 과제를 살펴보겠습니다. 나는 ~의 팀에 합류했다 @카렌C 그리고 @mia_stephens 모델 이해 및 임계값 선택을 용이하게 하기 위해 추가 기능을 만듭니다.
그만큼 모델 분류 탐색기 추가 기능 모델 컷오프와 오류 트레이드오프를 동시에 시각화할 수 있는 통합 대시보드를 제공합니다. 모델 임계값을 대화형으로 변경하고 성능 측정, 혼동 행렬 및 ROC 곡선에 전파된 결과를 즉시 확인할 수 있습니다. 또한 추가 기능은 리프트 곡선, 누적 이득 곡선을 보고 분류 비용을 기반으로 최적의 임계값을 계산하기 위한 사용자 지정 빨간색 삼각형 옵션을 구현합니다.
첨부된 데이터 테이블을 사용하여 예를 살펴보겠습니다. 금요일에 사무실에서 도넛을 먹는 날이고 직원 100명 중 몇 명이 도넛을 먹을지 예측하려고 합니다. 각 사람이 도넛을 소비했는지 여부와 여러 예측 변수에 대한 데이터를 수집하고 모델을 적합시켜 소비 확률을 추정합니다. 이제 각 모델 구분점과 관련된 장단점을 탐색하려고 합니다. 아이디어는 향후 금요일에 도넛 낭비를 최소화하기 위해 컷오프를 선택하는 것입니다. 세 개의 열이 있습니다.
- Prob[도넛]은 개인이 도넛을 소비할 확률입니다.
- 소비는 누군가가 도넛을 먹었는지 여부에 따른 실제 결과입니다.
- 선택적 유효성 검사 열이 있습니다.
Input DataInput DataInput DataInput Data입력 데이터
데이터
추가 기능을 다운로드하고 설치한 후 Donuts Blog example.jmp 데이터 테이블을 엽니다. 데이터는 목표 결과의 확률을 모델링하는 하나의 숫자 연속 열(이 경우 Prob[Donut] 열)이 있도록 형식화됩니다. 이 열은 "확률 공식 저장"을 사용하여 이진 결과에 대한 적합 모델을 저장하여 JMP에서 생성할 수 있습니다. 다른 필수 열은 문자 및 명목상의 실제 결과 상태(이 경우 소비 열)입니다. 선택적으로 유효성 검사 범주에 따라 플랫폼에 추가 출력을 추가하는 유효성 검사 열을 추가할 수 있습니다. 당신이 사용하는 경우 JMP 프로 , 분석 -> 예측 모델링 -> 유효성 검사 열 추가로 이동하여 쉽게 이 작업을 수행할 수 있습니다. 유효성 검사 열에는 두 개 또는 세 개의 범주가 있을 수 있으며 숫자 값으로 구성되어야 합니다.
Column CastingColumn CastingColumn CastingColumn Casting컬럼 캐스팅
진수
1 단계: Prob[Donut]를 X로, 소비를 Y로 캐스트합니다. 이 두 열은 필수입니다.
2 단계: 모델이 예측하는 대로 목표 수준을 "도넛"으로 설정합니다.
3단계: 통계 분석을 위한 알파 수준을 설정합니다. 기본값은 0.05입니다.
4단계: 오른쪽 상단에는 특정 응용 분야를 기반으로 성능 용어를 선택할 수 있는 옵션이 있습니다. 이는 다양한 측정값의 레이블에 대한 순전히 시각적 옵션입니다. 이 경우에는 '일반'으로 두겠습니다.
5단계: 시각적 접근성 체크박스는 그래프에서 색상을 구분하지 않고도 결과를 해석할 수 있도록 그래픽 출력을 변경하는 기능으로, 지금은 생략하도록 하겠습니다.
6단계: 이러한 초기 매개변수가 모두 설정된 상태에서 "확인"을 클릭하여 플랫폼을 시작합니다. 데이터 세트의 크기와 유효성 검사 열 사용 여부에 따라 시작하는 데 몇 초 정도 걸릴 수 있습니다.
결과 – 생성된 데이터 테이블
플랫폼 외에도 새로운 데이터 테이블도 출시됩니다. 이 데이터 테이블은 Prob[Donut] 및 Consumption 열을 사용하고, 각 사람이 도넛을 먹을 확률에 대해 모든 사람을 반복하고 현재 값을 비교하여 참양성, 참음성, 거짓양성에 대한 개수를 생성합니다. 개인의 실제 소비와 다른 개인에 대한 소비 확률.
이러한 개수로부터 민감도 또는 참양성률 열이 생성되는데, 이는 실제로 도넛을 소비한 사람을 정확하게 식별하는 모델의 기능입니다. 특이성 또는 진음성률은 도넛을 소비하지 않은 개인을 정확하게 식별하는 모델의 능력입니다.
오분류율은 해당 행의 총 관측치 수에 대한 거짓양성 + 거짓음성의 합입니다.
유효성 검사 열을 사용한 경우 모든 하위 집합이 함께 결합된 하나의 테이블과 함께 각 유효성 검사 범주에 대해 백그라운드에서 개별 테이블이 열립니다.
Generated Data TableGenerated Data TableGenerated Data TableGenerated Data Table생성된 데이터 테이블
결과 - 보고서 창
플랫폼으로 돌아갑니다. 우리가 보는 첫 번째 그래프는 95% Wald 신뢰 구간을 사용하여 곡선 아래 영역과 함께 1에 대한 민감도 - 특이도를 그래프로 표시하는 표준 ROC 곡선입니다. 오른쪽에는 이진 분류 결과의 분포를 시각적으로 보여주는 클러스터 그래프가 있습니다. y축은 모델링된 범주를 표시하고 x축은 모델 점수를 나타냅니다. 수직 슬라이더는 현재 임계값에 있습니다. 빨간색 점은 모델이 도넛 소비를 잘못 예측한 반면 파란색 점은 올바르게 예측한 지점입니다.
Interactivity of the PlatformInteractivity of the PlatformInteractivity of the PlatformInteractivity of the Platform플랫폼의 상호작용 두 번째 행에는 수치 분석이 있습니다. 성능 측정표는 7가지 측정값에 대한 추정치와 신뢰 구간을 제공합니다. 유병률은 실제로 도넛을 먹은 직원의 비율입니다. 진양성률/민감도 및 진음성률/특이성은 앞서 논의되었으며 여기에도 포함되어 있습니다. 긍정적 예측 가치(PPV)는 긍정적인 도넛 결과가 실제 도넛 소비를 얼마나 잘 예측하는지로 해석됩니다. NPV는 그 반대입니다. 부정적인 도넛 결과가 실제 도넛 소비 부족을 얼마나 잘 예측하는지를 나타냅니다. 긍정적 우도비(LR+)는 테스트에서 도넛 소비에 대해 긍정적인 결과가 나올 때 도넛 소비 확률이 얼마나 증가하는지를 나타냅니다. LR-는 그 반대입니다. 즉, 테스트에서 소비하지 않음이 반환될 때 도넛 소비 확률이 감소하는 정도입니다. 성능 지표 오른쪽에는 TP, TN, FP 및 FN의 비율과 개수를 보여주는 2x2 혼동 행렬이 있습니다. 그 옆에는 오분류율과 매튜스 상관계수(MCC) . MCC는 이진 분류 품질의 또 다른 척도입니다. 값이 1이면 도넛을 먹을 것으로 예측된 모든 사람이 실제로 도넛을 먹었음을 의미하고, 0은 모델이 무작위 분류와 동일함을 의미하며, -1은 전체 오분류를 의미합니다. 먹는 사람은 하나도 먹지 않았습니다. 맨 아래 행의 오류 트레이드오프 곡선은 Y축을 개수가 아닌 비율로 변경하는 사용자 정의 빨간색 삼각형 옵션과 함께 거짓양성 및 거짓음성 오류 개수의 선 그래프를 보여줍니다.
Visual Accessibility Turned OnVisual Accessibility Turned OnVisual Accessibility Turned OnVisual Accessibility Turned On시각적 접근성이 켜졌습니다
이러한 표와 그래프는 그 자체로도 훌륭하지만 실제 가치는 대화형 측면에서 나옵니다. 분류 모델의 성능 측정은 임계값 또는 컷오프를 기반으로 합니다. 임계값을 변경하면 성능 메트릭이 변경됩니다. 상태 대 점수 및 오류 트레이드오프 곡선의 수평선에는 모델 임계값을 나타내는 드래그 마커가 있습니다. 임계값을 변경하고 성능 측정을 업데이트하려면 이 선 중 하나를 잡고 이동하십시오.
또는 혼동 행렬 위의 개요 상자 "확률 임계값 설정" 아래에 있는 슬라이더나 편집 가능한 숫자 상자를 사용하여 임계값을 변경합니다. 이러한 드래그 마커와 슬라이더는 모두 동기화되며, 하나를 움직이면 다른 것도 함께 움직입니다. 이 슬라이더가 수행하는 작업은 모델이 도넛을 소비할 것이라고 예측하는지 여부에 대한 이진 분류를 결정하는 지점인 새로운 확률 임계값을 설정하는 것입니다. 컷오프를 높이면 모델이 도넛 소비를 예측하기 위한 더 엄격한 임계값이 설정되고 그 반대의 경우도 마찬가지입니다. 예를 들어 임계값을 0.8로 설정하면 모델이 도넛을 소비할 것이라고 예측하려면 Prob[Donut] > 0.8이 있어야 하며, 그렇지 않으면 도넛을 소비하지 않을 것이라고 예측하게 됩니다.
추가 기능
"분류 오류 최소화" 버튼은 거짓양성과 거짓음성의 합을 최소화하는 최적의 컷오프를 설정합니다. 결과적으로 MCC도 극대화됩니다.
Minimizing MisclassificationMinimizing MisclassificationMinimizing MisclassificationMinimizing Misclassification오분류 최소화
상단의 사용자 정의 "임계값/컷오프 분석" 빨간색 삼각형에는 리프트 곡선을 표시할 수 있는 기능이 있으며, Pro 사용자인 경우 누적 이득 곡선도 출력 하단에 표시됩니다. 유효성 검사 열을 사용할 때 성능 측정 빨간색 삼각형 아래의 각 유효성 검사 범주에 대해 이러한 옵션을 사용할 수도 있습니다.
Expanding with Further AnalysisExpanding with Further AnalysisExpanding with Further AnalysisExpanding with Further Analysis추가 분석을 통한 확장
또한 분류 비용을 기반으로 최적의 임계값을 계산하는 새 창을 여는 "비용 기반 임계값" 메뉴 옵션도 표시됩니다. 예를 들어 도넛 소비 보급률이 0.5, TP 및 TN 분류 비용이 0, FP 비용이 1, FN 비용이 3이라고 가정해 보겠습니다. 이 예에서 거짓 음성 도넛 분류를 수행하는 것은 거짓 긍정을 갖는 것보다 세 배 더 많은 비용이 듭니다. 아마도 사람들은 잉여가 아닌 도넛 부족에 대해 세 배 더 화를 낼 것입니다. 이러한 비용을 사용하는 경우 최적의 임계값은 0.25이며 숫자 편집 상자에 수동으로 입력할 수 있습니다.
Cost Based ThresholdingCost Based ThresholdingCost Based ThresholdingCost Based Thresholding비용 기반 임계값 마지막으로, 원래 데이터 테이블에 새 분류 열을 저장하여 현재 기준을 기준으로 새 소비 열을 생성하는 옵션이 있습니다.
Saving a New Classification ColumnSaving a New Classification ColumnSaving a New Classification ColumnSaving a New Classification Column새 분류 열 저장
결론
이 추가 기능 도넛 소비 예측이나 제조 결함률 예측 등 모든 분류 모델의 컷오프를 평가하는 매우 강력한 도구입니다. 하나의 대화형 플랫폼에 모든 그래픽과 테이블을 포함함으로써 데이터 시각화 및 모델 임계값 설정이 간단해졌습니다.
이 추가 기능을 사용하여 어떤 유형의 모델을 평가하고 있습니까? 제안 사항이 있으면 아래 댓글로 알려주세요!
이 매우 귀중한 추가 기능을 활성화하면 모든 사람을 반복하고 현재 사람의 실제 소비 및 소비 확률을 다른 개인.
또한 확률 임계값 설정 섹션에서 '오분류 최소화' 버튼도 찾을 수 없습니다.
마지막으로 MCC는 계산되지 않습니다(Matthews Corrolation Coefficient).
F1 점수가 자동으로 계산되는지 아는 사람 있나요?
어쩌면 업데이트된 버전이 있을까요?
저는 지난 10월 JMP 컨퍼런스에서 이 내용을 시연하는 것을 보았습니다.이제 드디어 실제 데이터로 시도해 보겠습니다.나는 약 n=10,000인 데이터 파일에서 n=1000의 샘플을 채취했습니다. 어쨌든 내 Y, 응답 변수는 일반적인 0/1 이항식입니다."Y,Response" 상자에 입력하려고 클릭하면 "JMP 경고" 메시지가 표시됩니다.-> 'Assign' 액세스 또는 평가 시 아래 첨자 범위, newCol[i] = /*###*/"No " /*###*/".여전히 변수를 입력한 다음 확률 열을 "S, 예측 값"에 연결합니다.Run을 누르면 메시지가 표시됩니다.-> Name Unresolved: targetselect in access orevaluation of 'targetselect' , targetselect/*###*/.그리고 출력이 없습니다.어떤 아이디어가 있나요?