머신 러닝 및 신경망 - 페이지 73

 

11.1 Lecture Overview (L11 Model Eval. Part 4)


11.1 Lecture Overview (L11 Model Eval. Part 4)

Hello everyone, and welcome! In our previous session, we delved into the topic of hyperparameter tuning and model selection. Our focus was on k-fold cross-validation, a technique used to rank different models with various hyperparameter settings in order to select the best one. We explored practical methods such as grid search and randomized search, which facilitate the process of model comparison.

Today, we will delve further into the aspect of model comparison. Suppose you come across a research paper that shares the predictions of one model on a test set. You may want to compare these predictions to those of your own model and determine if there is a statistically significant difference in their performance. Although this practice is not very common, it can be useful. One statistical test that can be employed in such cases is the McNemar test. Additionally, we will discuss algorithm comparisons, allowing us to compare different models and algorithms more equitably.

However, please note that today's lecture will be shorter than usual due to the Thanksgiving week. For those interested, the lecture notes provide more detailed explanations. They also cover additional statistical tests, such as the five-times-two F-test and various t-test procedures. While these topics are not examinable, they serve to satisfy your intellectual curiosity.

To optimize our time, we will not delve deeply into these methods since a lecture on performance metrics awaits us next week. If time permits, we may also touch upon feature selection and feature extraction. For your convenience, I have shared supplementary materials on these subjects via Canvas.

Now, let's get started with the main lecture on model evaluation, beginning with statistical tests for model comparisons. We will then address the challenges associated with multiple pairwise comparisons and explore methods to address them. Subsequently, we will delve into algorithm selection and examine a concrete code example related to the technique of nested cross-validation. This lecture overview sets the stage for our discussion today.

Before we proceed, let's recap the topics we covered in the previous lectures on model evaluation. We began with the fundamentals, including the bias-variance tradeoff, underfitting and overfitting, and the simple holdout method. We then delved into confidence intervals and introduced the bootstrap method for constructing empirical confidence intervals. We explored the repeated holdout method, which offers insights into model stability, although it is not commonly used in practice. It served as a good introduction to resampling methods.

Last week, we ventured into the realm of cross-validation, which added more depth to our exploration. We discussed hyperparameter tuning using grid search and randomized search and employed these techniques for model selection. Our primary focus was on the three-way holdout method, which involves splitting the dataset into training, validation, and test sets. We used the validation set to rank different models and the test set to estimate their final performance. For smaller datasets, we turned to k-fold cross-validation and leave-one-out cross-validation.

Today's lecture will introduce model and algorithm comparisons. While these concepts relate to model selection, our aim here is to compare different algorithms, seeking to determine which performs better across a range of related tasks. Ideally, we would have a collection of disjoint training and test sets for each algorithm. For example, when comparing image classification methods, we would employ various image datasets to train different models using different algorithms. We would then compare their performances on multiple datasets. However, practical constraints often limit our ability to follow this ideal approach. We encounter issues with violations of independence and other nuisances within datasets. This problem is reminiscent of the challenges discussed in the CIFAR-10 paper.

Moreover, how can we compare the performance of a model we have trained with that of a model published in a research paper or found on the internet? To address this, we can examine the actual difference in performance between the two models using statistical tests. One such test is the McNemar test, which is commonly used for comparing the predictive performance of two models on a binary outcome.

The McNemar test is suitable when we have paired data, meaning that each instance in the dataset is classified by both models, and the results are recorded as a contingency table. The contingency table has four cells representing the four possible outcomes:

              Model 2
           |  Positive | Negative |
---------------------------------
Model 1    |           |          |
---------------------------------
  Positive |           |          |
---------------------------------
  Negative |           |          |
---------------------------------
To apply the McNemar test, we count the number of instances in each cell of the contingency table. Let's denote these counts as follows:

  • a: The number of instances where both models 1 and 2 predict positive.
  • b: The number of instances where model 1 predicts positive and model 2 predicts negative.
  • c: The number of instances where model 1 predicts negative and model 2 predicts positive.
  • d: The number of instances where both models 1 and 2 predict negative.

With these counts, we can perform the McNemar test to determine if there is a significant difference in the models' performances. The null hypothesis (H0) is that the two models have the same performance, while the alternative hypothesis (H1) is that there is a difference.

The McNemar test statistic follows a chi-square distribution with 1 degree of freedom. We compute the test statistic using the formula:

chi2 = ((|b - c| - 1)^2) / (b + c)

If the test statistic chi2 exceeds a critical value from the chi-square distribution (with 1 degree of freedom) at a chosen significance level (e.g., 0.05), we reject the null hypothesis and conclude that there is a significant difference in performance between the two models.

It's important to note that the McNemar test assumes that the paired instances are independent and identically distributed. This assumption may not hold if the paired instances are not truly independent or if there is some form of dependency between them. Additionally, the McNemar test is primarily applicable to binary outcomes. If the outcome is multi-class, alternative tests such as the Cochran's Q test or the Stuart-Maxwell test may be more appropriate.

Now, let's move on to discussing the challenges of multiple pairwise comparisons. When comparing multiple models or algorithms, it becomes increasingly likely to find significant differences by chance alone. This phenomenon is known as the multiple comparison problem or the problem of multiple testing.

When conducting multiple pairwise comparisons, the probability of at least one significant result increases as the number of comparisons grows. This inflation of the Type I error rate can lead to false positive findings, where we reject the null hypothesis erroneously.

To address the multiple comparison problem, we need to adjust the significance level of our statistical tests. One common approach is the Bonferroni correction, which involves dividing the desired significance level (e.g., 0.05) by the number of comparisons being made. For example, if we are comparing three models, we would adjust the significance level to 0.05/3 = 0.0167 for each individual test.

The Bonferroni correction is a conservative method that controls the familywise error rate, ensuring that the overall Type I error rate across all comparisons remains below a specified threshold. However, it can be overly stringent, leading to a loss of power to detect true differences.

Other methods for adjusting the significance level include the Holm-Bonferroni method, the Benjamini-Hochberg procedure, and the false discovery rate (FDR) control. These methods provide less conservative alternatives to the Bonferroni correction and may be more appropriate in certain situations.

In summary, the McNemar test is a statistical test that can be used to compare the performance of two models on a binary outcome. However, when conducting multiple pairwise comparisons, it's important to account for the multiple comparison problem by adjusting the significance level.

 

11.2 쌍별 분류기 비교를 위한 McNemar의 테스트(L11 모델 평가. 파트 4)


11.2 쌍별 분류기 비교를 위한 McNemar의 테스트(L11 모델 평가. 파트 4)

이제 두 모델을 서로 비교하는 데 사용할 수 있는 McNemar 테스트에 대해 논의해 보겠습니다. 이 테스트는 모델 선택을 위해 지난주에 논의한 교차 검증 방법과 다릅니다. 교차 검증과 달리 McNemar 테스트는 훈련 세트를 사용하여 모델을 조정하지 않습니다. 대신 웹 앱이나 GitHub를 통해 액세스할 수 있는 출판된 문헌에 언급된 기계 학습 분류기와 같은 기존 모델이 이미 있다고 가정합니다. 목표는 우리의 모델을 테스트 세트에 대한 성능을 기반으로 이 기존 분류기와 비교하는 것입니다.

McNemar 테스트를 사용하면 테스트 세트의 성능을 기반으로 두 분류기를 비교할 수 있습니다. 1947년 Quinn McNemar에 의해 도입되었으며 쌍 비교를 위한 비모수 통계 테스트입니다. 이 경우 예측의 정확성(예: 정확함 또는 부정확함)을 나타내는 두 개의 범주가 있는 범주형 종속 변수와 비교되는 두 모델을 나타내는 두 개의 관련 그룹이 있는 범주형 독립 변수가 있습니다. 페어링은 두 모델에 대해 동일한 테스트 세트를 사용하여 이루어집니다. 테스트를 수행하기 위해 McNemar 테스트용으로 특별히 설계된 혼동 행렬의 특수 버전인 2x2 혼동 행렬을 사용합니다.

McNemar 테스트의 2x2 혼동 행렬에는 두 모델에서 수행한 예측 수가 포함됩니다. 예를 들어, 0과 1의 실제 클래스 레이블이 있는 경우를 생각해 봅시다. 모델 1은 1과 2를 예측하고 모델 2는 1과 1을 예측합니다. 이 경우 카운트 "a"는 모델 1과 1 모두에 대한 예측을 나타냅니다. 모델 2가 맞았습니다(예: 실제 레이블이 1일 때 1을 예측함). 카운트 "b"는 모델 1이 맞고 모델 2가 틀린 예측을 나타내고, 카운트 "c"는 모델 1이 틀리고 모델 2가 맞는 예측을 나타냅니다. 주어진 테스트 데이터 세트에 대한 이러한 수를 표로 작성하여 2x2 혼동 행렬을 구성할 수 있습니다.

2x2 혼동 행렬을 사용하여 다양한 메트릭을 계산할 수 있습니다. 예를 들어 "a" 및 "b" 카운트를 테스트 세트의 총 예 수로 나누어 각 모델의 예측 정확도를 계산할 수 있습니다. 또한 모델 1과 모델 2가 다른 경우(혼동 행렬에서 "b" 및 "c" 개수로 표시됨)에 관심이 있습니다. 이러한 사례는 한 모델이 올바른 예측을 한 반면 다른 모델은 잘못된 예측을 한 위치를 나타냅니다. 두 모델의 성능을 비교하기 위해 McNemar 테스트를 실행할 수 있습니다.

McNemar 검정은 일반적인 가설 검정 절차를 따릅니다. 귀무가설과 대립가설을 정의합니다. 귀무 가설은 두 모델의 성능이 같다고 가정하고 대립 가설은 성능이 다르다고 제안합니다. 우리는 카이 제곱 분포에 가까운 카이 제곱 검정 통계량을 계산합니다. 검정 통계량은 (b - c)^2 / (b + c)로 계산됩니다. 이 테스트 통계를 기반으로 귀무 가설이 참이라고 가정하고 p-값을 계산합니다. p-값은 주어진 검정 통계량 또는 귀무 가설 하에서 더 극단적인 값을 관찰할 확률을 나타냅니다.

귀무 가설을 기각할지 여부를 결정하기 위해 p-값을 선택한 유의 수준(예: 0.05)과 비교합니다. p-값이 유의 수준보다 작으면 귀무 가설을 기각하고 두 모델의 성능이 같지 않다는 결론을 내립니다. 반대로 p-값이 유의 수준보다 크면 귀무 가설을 기각하지 못하고 두 모델의 성능이 동일하다고 가정합니다.

연속성 수정은 2x2 분할표의 데이터가 불연속적인 반면 카이제곱 분포가 연속 분포인 문제를 해결하기 위해 도입되었습니다. 분자의 절대 차이에서 1을 빼면 연속성 수정은 p-값의 더 나은 근사치를 제공하는 데 도움이 됩니다. 그러나 연속성 보정의 사용이 항상 필요한 것은 아니며 특정 컨텍스트 및 데이터에 따라 다르다는 점에 유의하는 것이 중요합니다.

McNemar 검정의 또 다른 고려 사항은 정확한 이항 검정을 사용하는 것입니다. 정확한 이항 검정은 표본 크기가 작거나 카이제곱 검정의 가정이 충족되지 않을 때 McNemar 검정의 통계적 유의성을 결정하기 위한 대안적인 접근 방식을 제공합니다. 정확한 이항 검정은 카이제곱 근사에 의존하지 않고 귀무 가설 하에서 관찰된 데이터를 얻을 확률을 직접 계산합니다.

또한 McNemar의 검정은 두 개 이상의 모델 또는 처리를 처리하도록 확장될 수 있습니다. 이러한 경우 일반화된 McNemar 테스트 또는 Cochran-Mantel-Haenszel 테스트로 알려진 확장을 사용하여 테스트를 수행할 수 있습니다. 이러한 확장을 통해 서로 다른 그룹 간의 종속성을 고려하여 여러 모델 또는 처리를 동시에 비교할 수 있습니다.

요약하면 McNemar의 검정은 쌍을 이룬 범주 데이터를 기반으로 두 모델 또는 처리의 성능을 비교하는 데 사용되는 비모수 통계 검정입니다. 모델 간의 성능 차이가 통계적으로 유의한지 여부를 평가하는 방법을 제공합니다. 테스트에는 2x2 분할표를 구성하고 카이제곱 분포와 비교하거나 정확한 이항 테스트를 사용하여 평가할 수 있는 테스트 통계를 계산하는 작업이 포함됩니다. McNemar의 테스트를 수행함으로써 연구원은 기계 학습, 의학 및 사회 과학을 포함한 다양한 분야에서 다양한 모델 또는 치료의 상대적 성능에 대한 통찰력을 얻을 수 있습니다.

 

11.3 다중 쌍대 비교(L11 모델 평가. 파트 4)


11.3 다중 쌍대 비교(L11 모델 평가. 파트 4)

문헌이나 GitHub와 같은 플랫폼에서 발견된 여러 다른 모델과 비교하려는 모델이 있는 시나리오에서 쌍별 비교를 수행하는 것은 문제가 될 수 있습니다. k개의 서로 다른 모델이 있는 경우 각 쌍에 대해 쌍별 테스트를 수행하면 k번(k - 1)/2개의 조합이 발생하며 이는 큰 수일 수 있습니다. 이것은 다중 가설 테스트를 수행할 때 오류율에 대한 우려를 제기합니다.

일반적으로 가설 검정은 0.05 이하의 유의 수준에서 수행됩니다. 즉, 귀무가설이 참이면 이를 잘못 기각할 확률이 5%이므로 오류율은 5%입니다. 여러 테스트를 수행할 때 귀무가설을 잘못 기각하는 오류율은 알파의 r배로 증가할 수 있습니다. 여기서 r은 수행된 테스트의 수입니다. 최악의 경우 오류율은 쌍별 귀무가설이 모두 참인 경우 최대 r 곱하기 알파가 될 수 있습니다.

이 문제를 해결하기 위한 일반적인 접근 방식은 2단계 프로세스가 포함된 보호 프로시저를 사용하는 것입니다. 첫 번째 단계는 결합된 모든 모델의 성능에 상당한 차이가 있는지 평가하는 옴니버스 테스트입니다. 귀무 가설은 모든 모델의 분류 정확도가 동일하다고 가정하는 반면, 대립 가설은 동일하지 않다고 제안합니다.

옴니버스 테스트에서 귀무가설이 기각되어 모델 성능에 차이가 있음을 나타내는 경우 쌍별 사후 테스트를 포함하는 두 번째 단계로 진행할 수 있습니다. 그러나 오류율을 제어하기 위해 다중 비교를 조정하는 것이 중요합니다. 일반적으로 사용되는 조정 방법 중 하나는 유의 수준을 비교 수로 나누는 Bonferroni 방법입니다.

쌍별 검정의 경우 McNemar 검정을 사용할 수 있습니다. 이러한 통계 절차는 공식적이고 귀중한 통찰력을 제공하지만 기계 학습 실습에서는 이러한 광범위한 비교를 수행하는 것이 그리 일반적이지 않다는 점에 유의해야 합니다. 일반적으로 연구자들은 예측 정확도 또는 오류를 보고하고 성능에 따라 모델의 순위를 매깁니다.

Cochran-Q 테스트는 여러 모델을 비교하기 위해 "mlxtend" 라이브러리에서 구현될 수 있지만, 여러 모델 비교를 위해 이러한 절차를 사용하는 것은 기계 학습 분야에서 여전히 상대적으로 흔하지 않다는 점을 언급할 가치가 있습니다. 그러나 여러 모델을 비교하고 통계 테스트를 수행하려는 경우 이러한 옵션을 탐색하고 강의 노트 및 관련 문헌을 참조하여 더 자세한 정보를 얻을 수 있습니다.

기능 선택과 같은 다른 필수 개념을 다룰 충분한 시간을 허용하기 위해 이 강의에서는 이러한 주제를 광범위하게 다루지 않는다는 점에 유의해야 합니다.

다중 비교의 한 가지 문제는 가양성이라고도 하는 유형 I 오류의 위험이 증가한다는 것입니다. 여러 테스트를 수행할 때 귀무 가설을 잘못 기각하여 잘못된 결론을 내릴 가능성이 높아집니다. 이를 완화하기 위해 연구자들은 종종 Bonferroni 보정 또는 FDR(False Discovery Rate) 제어와 같은 조정 방법을 적용합니다.

Bonferroni 수정은 유의 수준(알파)을 비교 횟수(k)로 나누는 보수적인 조정입니다. 알파 프라임(α')으로 표시되는 이 조정된 유의 수준은 전체 familywise 오류율을 제어할 수 있도록 합니다. Bonferroni 보정을 사용하여 각 개별 pairwise 테스트는 alpha/k 수준에서 수행됩니다.

또 다른 널리 사용되는 방법은 모든 거부 중에서 잘못된 발견의 비율을 제어하는 데 중점을 둔 FDR 제어입니다. 각 비교에 대한 유의 수준을 줄이는 대신 FDR 제어는 개별 테스트의 p-값을 조정하여 전반적인 잘못된 발견 비율을 제어합니다. 이 방법은 Bonferroni 보정에 비해 덜 엄격한 조정을 허용하므로 많은 수의 비교가 관련된 상황에서 유리할 수 있습니다.

Bonferroni 보정 및 FDR 제어가 널리 사용되지만 한계가 있다는 점에 유의해야 합니다. Bonferroni 보정은 지나치게 보수적일 수 있으므로 잠재적으로 유형 II 오류 또는 위음성 가능성이 높아질 수 있습니다. 반면에 FDR 제어는 실제 차이를 감지하는 데 더 많은 권한을 가질 수 있지만 잘못된 긍정의 위험을 증가시킬 수도 있습니다.

기계 학습의 맥락에서 목표가 쌍별 차이를 종합적으로 평가하는 것인지 또는 최고 성능 모델을 식별하는 것인지를 고려해 볼 가치가 있습니다. 가능한 모든 조합에 대해 쌍별 테스트를 수행하는 것은 계산 비용과 시간이 많이 소요될 수 있습니다. 실제로 연구자들은 공식적인 통계 테스트를 수행하기보다는 성능 메트릭을 기반으로 모델 순위를 지정하고 최고 성능 모델을 식별하는 데 집중하는 경우가 많습니다.

통계 테스트는 모델 비교의 한 측면일 뿐이라는 사실을 인식하는 것도 중요합니다. 모델을 평가하고 선택할 때 해석 가능성, 계산 효율성, 도메인 관련성 및 실용적인 고려 사항과 같은 다른 요소도 고려해야 합니다.

결론적으로, 다중 비교 및 통계 테스트는 모델 성능 비교에 대한 귀중한 통찰력을 제공할 수 있지만 기계 학습에서의 실제 적용은 덜 일반적입니다. 연구원은 종종 예측 정확도 또는 오류 보고, 시각적 비교 및 성능 메트릭을 기반으로 한 순위 모델에 의존합니다. 기본 통계 개념과 다중 비교의 잠재적 문제를 이해하는 것은 엄격한 연구를 수행하고 결과를 정확하게 해석하는 데 필수적입니다.

 

11.4 알고리즘 비교를 위한 통계적 테스트(L11 모델 평가. 파트 4)


11.4 알고리즘 비교를 위한 통계적 테스트(L11 모델 평가. 파트 4)

이전 동영상에서는 통계적 추론을 사용하여 주어진 데이터 세트에 이미 적용된 다양한 모델을 비교하는 방법에 대해 논의했습니다. 이제 알고리즘을 비교할 수 있는 통계 테스트를 살펴보겠습니다. 즉, 서로 다른 훈련 세트 또는 훈련 하위 집합에 맞춰진 모델을 비교할 수 있습니다. 이 논의는 알고리즘 비교를 위한 통계적 추론 및 다양한 통계 테스트의 적용에 중점을 둡니다.

각각 장단점이 있는 알고리즘을 비교하는 데 사용할 수 있는 몇 가지 통계 테스트가 있습니다. 강의 노트에서 추가 자료와 함께 이러한 테스트에 대한 자세한 설명을 찾을 수 있습니다. 여기에서는 테스트에 대한 개요를 제공하고 몇 가지 핵심 사항을 강조합니다.

일반적인 테스트 중 하나는 알고리즘보다는 모델을 비교하는 데 주로 사용되는 McNemar의 테스트입니다. 그것은 낮은 오탐율을 가지고 있고 계산적으로 효율적이기 때문에 언급할 가치가 있습니다. 그러나 알고리즘 비교를 위해 특별히 설계된 것은 아닙니다.

또 다른 테스트는 비율 테스트의 차이로, 안타깝게도 위양성률이 높습니다. 이 테스트는 여러 모델을 피팅해야 하므로 알고리즘 비교에 더 적합합니다. 그러나 여러 모델 피팅이 필요하기 때문에 계산 비용이 많이 들 수 있습니다.

K-fold cross-validated t-test는 알고리즘 비교에 사용되는 또 다른 방법입니다. 보다 정확한 평가를 제공하지만 여전히 오탐률이 약간 높습니다. 이러한 결점에도 불구하고 여전히 유용한 테스트입니다.

교차 검증을 반복하는 쌍체 t-테스트는 여러 모델을 피팅해야 하는 또 다른 접근 방식입니다. 다른 테스트보다 오탐률이 낮지만 반복되는 모델 피팅으로 인해 여전히 계산 집약적일 수 있습니다.

보다 발전된 기술은 5x2 교차 검증 쌍체 t-테스트로, McNemar의 테스트에 비해 낮은 위양성률과 약간 높은 통계적 검정력을 나타냅니다. 알고리즘 비교에 대한 보다 강력한 접근 방식을 제공합니다. 또한 추가 개선을 제공하는 5x2 교차 검증 쌍체 f-테스트와 같은 새로운 접근 방식이 있습니다.

강의 노트에서 이러한 테스트 및 기타 통계적 접근 방식에 대해 자세히 설명합니다. 또한 강의 자료와 함께 제공되는 라이브러리인 MLA extend에서 이러한 테스트의 대부분을 구현했습니다. McNemar의 테스트, Cochrane의 Q 테스트, 리샘플링된 쌍 t-테스트(권장하지 않음), K-폴드 교차 검증 쌍 t-테스트, 5x2 교차 검증 결합 t-테스트 등의 구현을 찾을 수 있습니다.

통계 테스트는 귀중한 통찰력을 제공하지만 알고리즘 비교에 대한 전산 또는 경험적 접근 방식도 있습니다. 다음 비디오에서는 실제 응용 프로그램에서 알고리즘 선택 및 비교의 동기를 살펴보겠습니다. 예를 들어 이메일 애플리케이션 개발이나 연구 논문 추천 시스템 생성과 같은 시나리오에서 최고의 성과를 식별하기 위해 서로 다른 알고리즘을 비교하고자 할 수 있습니다.

결론적으로 알고리즘을 비교하는 데 사용할 수 있는 몇 가지 통계 테스트가 있으며 각각의 강점과 한계가 있습니다. 이러한 테스트는 서로 다른 훈련 세트에 맞는 알고리즘 간의 성능 차이에 대한 통찰력을 제공할 수 있습니다. 그러나 적절한 테스트를 선택할 때 계산 효율성, 위양성률 및 통계적 검정력을 고려하는 것이 중요합니다. 또한 경험적 접근 방식은 알고리즘 비교에서 통계 테스트를 보완할 수 있습니다.

 

11.5 알고리즘 선택을 위한 중첩된 CV(L11 모델 평가. 파트 4)


11.5 알고리즘 선택을 위한 중첩된 CV(L11 모델 평가. 파트 4)

자, 계산 알고리즘 선택에 대한 주제로 들어가 봅시다. 이 토론에서는 중첩 교차 검증이라는 기술에 초점을 맞추고 다음 비디오에서 몇 가지 코드 예제를 살펴봅니다. 중첩된 교차 검증을 살펴보기 전에 앞에서 다룬 몇 가지 핵심 사항을 빠르게 요약해 보겠습니다.

이전에 우리는 모델 선택의 수단으로 3방향 홀드아웃 방법에 대해 논의했습니다. 프로세스에 대한 간략한 요약은 다음과 같습니다. 원본 데이터 세트를 교육 세트와 테스트 세트로 분할하는 것으로 시작합니다. 다음으로 훈련 세트를 더 작은 훈련 세트와 검증 세트로 나눕니다. 학습 세트는 기계 학습 알고리즘 및 특정 하이퍼파라미터 값과 함께 모델을 학습하는 데 사용됩니다. 다양한 하이퍼파라미터 설정을 반복함으로써 각각의 성능을 가진 여러 모델을 얻습니다. 마지막으로 유효성 검사 세트에서 측정된 최고 성능의 모델을 선택하고 테스트 세트에서 최종 성능을 평가합니다. 모델 선택 중에 도입된 선택 편향을 완화하기 위해 독립적인 테스트 세트를 포함하는 것이 중요합니다.

이제 이해를 돕기 위해 다른 그림을 사용하여 개념을 다시 살펴보겠습니다. 이 다이어그램에서 세 가지 시나리오를 시각화할 수 있습니다. 첫 번째 시나리오에서는 훈련 세트에서 훈련되고 모델 조정 없이 테스트 세트에서 테스트되는 단일 모델을 평가합니다. 이 접근 방식은 모델 튜닝이 필요하지 않은 경우에 적합합니다.

두 번째 시나리오에서는 동일한 교육 및 테스트 세트에서 여러 모델을 평가합니다. 각 모델은 서로 다른 하이퍼파라미터 설정으로 학습되며 테스트 세트 성능에 따라 가장 성능이 좋은 모델을 선택합니다. 그러나 모델 선택을 위해 테스트 세트를 여러 번 사용하면 선택 편향이 발생할 수 있으므로 이 접근 방식이 덜 바람직합니다.

세 번째 시나리오는 앞서 논의한 3방향 홀드아웃 방법에 해당합니다. 여러 모델이 서로 다른 하이퍼파라미터 설정으로 훈련 세트에서 훈련됩니다. 그런 다음 유효성 검사 세트를 사용하여 가장 성능이 좋은 모델을 선택하고 이후에 테스트 세트에서 평가합니다. 이 접근 방식은 모델 순위 지정을 위해 별도의 검증 세트를 사용하여 선택 편향을 완화하는 데 도움이 됩니다.

3방향 홀드아웃 방법이 효과적이지만 더 나은 접근 방식은 이전 논의에서 다룬 k-겹 교차 검증입니다. 이 방법은 데이터를 k개의 접기로 나누고 각 접기는 검증 세트로, 나머지는 훈련 세트로 사용합니다. 이 접근 방식은 데이터 세트의 크기가 제한되어 있을 때 특히 유용합니다. 더 큰 데이터 세트의 경우 3방향 홀드아웃은 특히 데이터 세트 크기가 일반적으로 더 크고 모델 수렴과 같은 추가 고려 사항이 작용하는 딥 러닝에서 여전히 실행 가능한 옵션이 될 수 있습니다.

이제 다른 알고리즘을 비교하여 한 단계 더 나아가는 중첩 교차 검증에 대해 논의해 보겠습니다. K-최근접 이웃, 결정 트리, 그래디언트 부스팅, 랜덤 포레스트와 같은 알고리즘을 비교한다고 가정해 보겠습니다. 각 알고리즘은 하이퍼파라미터 튜닝을 거쳐 최상의 모델을 선택합니다. 교차 검증 절차에 또 다른 루프를 도입하여 중첩된 교차 검증을 생성합니다. 외부 루프는 모델 평가를 담당하고 내부 루프는 하이퍼파라미터 튜닝에 중점을 둡니다. 이 2단계 절차는 본질적으로 두 개의 중첩된 k-겹 교차 검증으로 구성되므로 일반 k-겹 교차 검증보다 중첩 교차 검증을 더 복잡하게 만듭니다.

이 프로세스를 더 잘 이해하기 위해 원본 데이터 세트로 시작하는 그림을 살펴보겠습니다. 최종 평가를 위한 독립적인 테스트 세트가 있지만 지금은 기본 훈련 세트로 충분하다고 상상해 보십시오. k-겹 교차 검증과 유사하게 지정된 접기 수(이 경우에는 5개라고 가정)에 대해 루프를 반복합니다. 각 반복에서 데이터는 훈련 접기와 테스트 접기로 나뉩니다. 그러나 훈련 접기에서만 모델을 훈련하고 테스트 접기에서 평가하는 대신 다음 단계로 진행합니다.

다음 단계에서는 다이어그램 하단에 있는 것과 같은 훈련 접기 중 하나를 가져와 더 작은 훈련 세트와 검증 세트로 나눕니다. 더 작은 훈련 세트는 다양한 하이퍼파라미터 설정으로 다양한 모델을 훈련하는 데 사용되는 반면 검증 세트는 가장 성능이 좋은 모델을 선택하는 데 사용됩니다.

내부 루프가 현재 훈련 폴드에 대해 완료되면 해당 하이퍼파라미터 설정이 있는 선택된 모델이 있습니다. 그런 다음 내부 루프에서 사용되지 않은 외부 루프의 테스트 폴드에서 이 모델을 평가합니다.

프로세스는 외부 루프의 각 접기에 대해 계속됩니다. 매번 다른 접기가 테스트 접기로 유지되고 나머지 접기는 훈련 및 검증에 사용됩니다. 이렇게 하면 모든 접기가 테스트 세트와 유효성 검사 세트로 모두 사용되고 각 모델이 다른 데이터 세트에서 평가됩니다. 모델의 최종 성능은 모든 폴드의 성능을 평균화하여 결정됩니다.

중첩된 교차 유효성 검사는 성능에 대한 보다 강력한 추정치를 제공하여 서로 다른 알고리즘을 비교하는 데 도움이 됩니다. 중첩된 교차 검증 프로세스를 여러 번 반복함으로써 보다 안정적이고 안정적인 성능 추정치를 얻을 수 있습니다.

요약하면 중첩 교차 검증은 모델 선택과 하이퍼파라미터 튜닝의 이점을 결합한 기술입니다. 이를 통해 데이터의 여러 겹에 대한 성능을 평가하고 교차 검증의 중첩 반복을 기반으로 최상의 모델을 선택하여 서로 다른 알고리즘을 비교할 수 있습니다. 이 접근 방식은 선택 편향을 완화하고 알고리즘 성능을 보다 정확하게 추정하는 데 도움이 됩니다.

다음 비디오에서는 중첩된 교차 검증이 실제로 어떻게 구현되는지 보여주는 코드 예제를 살펴볼 것입니다. 이 시리즈의 다음 부분을 기대해 주세요.

 

11.6 알고리즘 선택 코드 예제에 대한 중첩된 CV(L11 모델 평가. 파트 4)


11.6 알고리즘 선택 코드 예제에 대한 중첩된 CV(L11 모델 평가. 파트 4)

이제 중첩 교차 검증의 개념에 대해 논의했으므로 코드 예제를 살펴보겠습니다. 이 예제는 계산 관점에서 중첩된 교차 유효성 검사를 더 잘 이해하는 데 도움이 됩니다. 또한 알고리즘을 비교할 때 수업 프로젝트에 유용할 것입니다.

첫째, 코드 예제는 GitHub에서 찾을 수 있습니다. "l11_code"라는 이름으로 일반 클래스 저장소에 업로드했습니다. "verbose_one", "verbose_two" 및 "compact"의 세 가지 노트북을 사용할 수 있습니다. 세 노트북 모두 동일한 결과를 생성하지만 구현 방식이 다릅니다.

"verbose_one" 노트북에서는 계층화된 k-폴드 방법을 수동으로 사용하여 보다 수동적인 접근 방식을 취했습니다. 반면에 "verbose_two" 노트북에서는 cross_validate 기능을 활용했습니다. 마지막으로 "compact" 노트북에서 cross_val_score를 사용했습니다. 각 노트북은 분석 시 다양한 수준의 정보를 제공합니다. 계층화된 k-겹 개체에 이미 익숙하므로 지금은 "verbose_one" 노트북으로 시작하는 것이 좋습니다.

진행하기 전에 선택한 구현 방식이 결과에 큰 영향을 미치지 않는다는 점을 언급할 가치가 있습니다. 그러나 하이퍼파라미터 세트에 대한 정보가 적기 때문에 "소형" 노트북을 사용하지 않는 것이 좋습니다. 나중에 다음 내용을 논의한 후 하이퍼 매개변수 세트가 어떻게 보이는지 간략하게 보여줄 수 있습니다.

이제 중첩된 교차 유효성 검사에 대한 수동 접근 방식을 보여주는 "verbose_one" 노트북을 살펴보겠습니다. 이 노트북에서는 중첩된 교차 유효성 검사와 작동 방식에 대한 그림을 볼 수 있습니다. 프로세스에는 내부 루프를 실행하는 외부 루프가 포함됩니다. 각 외부 루프에 대해 접기는 훈련 부분과 테스트 부분으로 나뉩니다. 훈련 부분은 하이퍼파라미터 조정 또는 모델 선택을 수행하는 내부 루프로 전달됩니다. 이는 이전 강의에서 배운 그리드 검색을 사용하여 달성할 수 있습니다.

노트북에서 필수 라이브러리 및 모듈 가져오기와 같은 필수 설정 단계를 찾을 수 있습니다. 여기에는 내부 루프에서 모델 튜닝을 위한 그리드 검색, 계층화된 k-겹 교차 검증, 파이프라인, 표준 스칼라 및 비교하려는 분류자를 사용하여 데이터 세트를 분할하는 것이 포함됩니다. 이 예제의 목적을 위해 우리는 계산 타당성을 그대로 유지하기 위해 5000개의 훈련 예제로 구성된 "emnes" 데이터 세트의 더 작은 버전을 사용하고 있습니다. 또한 데이터 세트의 20%는 테스트 데이터로 따로 설정되어 중첩 교차 검증의 성능을 테스트 세트 성능과 비교할 수 있습니다.

앞으로 우리가 사용할 분류자를 초기화합니다. 첫 번째 분류기는 로지스틱 회귀 분류기, 특히 다항 로지스틱 회귀 분류기입니다. 이 분류기는 딥 러닝에서 소프트맥스 회귀라고도 합니다. 이 수업에서는 다루지 않았지만 "Statistics 453"에서 다룰 것입니다. 이 분류기를 사용하는 이유는 비교할 알고리즘의 범위가 더 넓기 때문입니다. 또한 다른 알고리즘에 비해 상대적으로 빠릅니다. 우리가 고려하는 또 다른 상대적으로 빠른 분류기는 서포트 벡터 머신, 특히 선형 머신입니다. 이러한 분류자를 포함하여 다양한 하이퍼파라미터 설정을 비교하는 것을 목표로 합니다.

의사결정 트리 자체 및 랜덤 포레스트 분류기와 같은 의사결정 트리 기반 분류자는 매개변수 스케일링이 필요하지 않다는 점에 유의해야 합니다. 따라서 다른 분류자에 대해서만 스케일링을 수행합니다. 이를 용이하게 하기 위해 표준 스케일러와 각 분류기를 결합하는 파이프라인을 사용합니다. 따라서 파이프라인은 분류자 자체로 볼 수 있습니다. 각 분류자에 대해 검색할 하이퍼파라미터 그리드를 정의합니다. 이 그리드에는 각 분류기에 대해 조정하려는 매개변수가 포함되어 있습니다. 예를 들어 로지스틱 회귀에서는 정규화 가중치 페널티와 다양한 정규화 강도를 고려합니다. 최근접 이웃은 최근접 이웃의 수와 거리를 고려하는 것입니다.

"verbose_one" 노트북에서 분류자와 각각의 하이퍼파라미터 그리드를 정의한 후 중첩 교차 검증을 위한 외부 및 내부 루프 설정으로 이동합니다.

외부 루프는 계층화된 k-겹 교차 검증을 사용하여 데이터 세트를 교육 및 테스트 세트로 분할합니다. 폴드를 반복하고 폴드 인덱스, 트레이닝 인덱스 및 테스트 인덱스를 추적합니다. 각 폴드에 대해 교육 데이터는 내부 루프에 대한 교육 및 유효성 검사 세트로 추가 분할됩니다.

내부 루프는 그리드 검색을 사용하여 모델 선택 또는 하이퍼파라미터 튜닝을 수행합니다. 각 분류기에 대한 하이퍼파라미터 그리드를 반복하고 외부 루프의 훈련 및 검증 세트를 사용하여 각 조합에 대한 최상의 하이퍼파라미터를 찾습니다. 그리드 검색은 지정된 하이퍼파라미터 그리드를 철저히 검색하고 교차 검증을 통해 각 조합의 성능을 평가합니다.

내부 루프가 완료된 후 각 분류기에 대한 최상의 하이퍼파라미터가 기록됩니다. 그런 다음 선택한 모델의 성능을 처음에 따로 보관해 두었던 테스트 세트에서 평가합니다. 정확도, 정밀도, 재현율 및 F1 점수와 같은 평가 메트릭은 각 분류기에 대해 계산됩니다.

마지막으로 중첩된 교차 검증 및 테스트 세트 평가 결과가 표시되어 다양한 분류기의 성능과 해당 하이퍼파라미터 설정을 비교할 수 있습니다.

"verbose_two" 및 "compact" 노트북은 각각 cross_validate 함수 및 cross_val_score 함수를 사용하여 중첩된 교차 유효성 검사의 대체 구현을 제공한다는 점에 유의해야 합니다. 이러한 함수는 일부 교차 유효성 검사 단계를 자동으로 처리하여 코드를 단순화합니다. 그러나 "verbose_one" 노트북에 비해 덜 자세한 정보를 제공할 수 있습니다.

이 개요가 코드 예제와 중첩된 교차 유효성 검사가 구현되는 방법을 이해하는 데 도움이 되기를 바랍니다. 자유롭게 노트북을 탐색하고 다양한 데이터 세트와 분류기로 실험하여 개념을 더 잘 이해하십시오.

 

12.0 강의 개요(L12 모델 평가 5: 성능 지표)


12.0 강의 개요(L12 모델 평가 5: 성능 지표)

여러분, 안녕하세요,

여러분 모두 멋진 추수감사절 방학을 보내고 학기 마지막 주 전에 긴장을 풀고 재충전할 수 있기를 바랍니다. 학기가 끝나가는 것이 안타깝지만 아직 기대할 것이 많습니다. 특히 프로젝트 프레젠테이션이 그렇습니다. 이 수업에서 다룬 콘텐츠를 기반으로 무엇을 구축했는지 확인하고 기계 학습 지식의 창의성과 적용을 목격하게 되어 기쁩니다.

앞으로 2주 동안 함께할 남은 시간에 대한 몇 가지 계획이 있습니다. 이번 주에는 모델 평가를 다루고 5가지 성능 및 평가 메트릭에 중점을 둘 것입니다. 목표는 분류 정확도 및 오류를 넘어 관점을 넓히는 것입니다. 기계 학습 모델을 효과적으로 평가하는 데 도움이 될 수 있는 다양한 메트릭을 살펴보겠습니다. 이 주제에 많은 시간이 소요될 것으로 예상하지 않으므로 추가 시간이 있으면 기능 선택에 대해서도 다루겠습니다. 광범위하게 다룰 시간이 없을 수도 있다는 것을 알았기 때문에 이전에 이 주제에 대한 일부 자습 자료를 공유했습니다. 저는 온라인 학습으로 인해 발생하는 문제를 염두에 두고 단기간에 너무 많은 주제로 여러분을 압도하지 않기를 바랍니다. 12월 4일 마감인 숙제 3과 12월 6일 비디오 형식의 프로젝트 프레젠테이션을 포함하여 여러분 모두 많은 것을 준비하고 계신 것으로 알고 있습니다.

프로젝트 프레젠테이션과 관련하여 다음 주에는 프레젠테이션을 포함할 수 있는 캔버스 페이지를 만들 것입니다. 또한 가장 창의적인 프로젝트, 최고의 구두 발표 및 최고의 시각화를 포함하여 프로젝트 상 투표를 위한 퀴즈 형식을 설정합니다. 이 상은 여러분의 투표로 결정됩니다. 과정에 재미 요소를 추가할 것이라고 믿습니다. 다음 주에 모든 것을 정리할 테니 강의가 없을 것입니다. 그러나 모든 사람이 프로젝트 프레젠테이션을 시청할 것을 적극 권장합니다. 프레젠테이션과 관련된 설문 조사를 작성하면 점수가 부여됩니다. 여러분 모두 상당한 노력을 기울였기 때문에 서로의 프레젠테이션을 보는 것도 공평합니다. 우리는 Piazza에서 토론하고 질문하거나 상호 작용을 허용하는 다른 플랫폼을 탐색할 수 있습니다. 이 참여를 촉진하는 가장 좋은 방법을 고려할 것입니다.

오늘 강의를 시작하기 전에 강의 평가에 대해 상기시켜 드리고 싶습니다. 우리 부서는 귀하에게 이번 학기가 어떻게 진행되었는지에 대한 피드백을 제공해 달라고 요청했습니다. 올해는 온라인 형식으로 인해 달라졌으므로 귀하의 통찰력이 소중할 것입니다. Canvas에 과정 평가 링크를 게시하겠습니다. 시간을 내어 작성해주시면 대단히 감사하겠습니다. 다만, 미완료시 불이익은 없음을 알려드립니다. 피드백을 수집하라는 요청일 뿐입니다.

그런 의미에서 성능 및 평가 메트릭에 대한 강의 5부터 시작하겠습니다. 과적합과 과소적합을 이해하기 위해 편향-분산 분해부터 시작하여 모델 평가에서 먼 길을 왔습니다. 정규 근사 방법을 사용하여 신뢰 구간을 구성하고, 반복 홀드아웃 및 부트스트래핑과 같은 리샘플링 기술과 모델 선택을 위한 교차 유효성 검사를 사용하여 데이터 세트 분할 및 함정에 대한 홀드아웃 방법을 탐색했습니다. 지난 주에 중첩된 교차 검증을 포함하여 모델 및 알고리즘 비교를 위한 통계 테스트에 대해 논의했습니다. 오늘은 평가 지표에 중점을 둘 것입니다.

지난 주에 다룬 McNemar 혼동 행렬과 다른 혼동 행렬에 대해 논의하는 것으로 시작하겠습니다. 혼동 매트릭스에서 오탐률, 참양성률 등과 같은 지표를 도출할 수 있으며 이는 수신기 작동 특성을 조사할 때 유용합니다. 또한 정밀도, 재현율, F1 점수, Matthews 상관 계수 및 균형 잡힌 정확도를 살펴봅니다. 후자는 데이터 집합 내에 클래스 불균형이 존재하는 경우에 특히 유용합니다. 마지막으로 멀티클래스 분류와 이미 호환되는 균형 잡힌 정확도를 제외하고 이진 메트릭을 멀티클래스 설정으로 확장하는 방법을 다룰 것입니다.

다음 비디오에서는 혼란 행렬에 대한 논의를 시작하겠습니다.

 

12.1 혼동 매트릭스(L12 모델 평가 5: 성능 지표)



12.1 혼동 매트릭스(L12 모델 평가 5: 성능 지표)

혼동 행렬과 그 중요성에 대해 논의하는 것으로 시작하겠습니다. 강연에서 발표자는 학기말이 바쁘고 파이썬 머신러닝 책에서 주제를 다뤘다는 등 여러 가지 이유로 강의노트를 준비하지 못했다고 언급했다. 그들은 자세한 내용은 책의 6장을 참조할 것을 제안했습니다.

혼동 행렬은 기계 학습 분류기의 성능을 평가하는 데 사용되는 도구입니다. 지도 분류 문제에서 예측된 클래스 레이블과 실제 클래스 레이블 간의 비교를 보여줍니다. 매트릭스는 분류기가 얼마나 잘 수행되고 있는지, 어떤 클래스 레이블이 혼동을 일으키는지 이해하는 데 도움이 됩니다.

혼동 행렬은 일반적으로 우발 행렬이라고도 하는 2x2 형식으로 표시됩니다. TP(참양성), FN(가음성), FP(가양성) 및 TN(참음성)의 네 가지 구성 요소로 구성됩니다. "긍정적" 클래스는 우리가 예측하려는 관심 클래스를 나타내고 "부정적" 클래스는 다른 클래스를 나타냅니다.

참양성(TP)은 양성 클래스에 속하고 분류기에 의해 올바르게 식별되는 인스턴스입니다. 반면에 위음성(FN)은 음성으로 잘못 예측되는 양성 클래스의 인스턴스입니다.

마찬가지로 가양성(FP)은 양성으로 잘못 예측된 음성 클래스의 인스턴스입니다. 마지막으로 참음성(TN)은 음성으로 올바르게 식별되는 음성 클래스의 인스턴스입니다.

이러한 구성 요소를 분석하여 다양한 성능 메트릭을 계산할 수 있습니다. 강의에서는 분류 정확도와 분류 오류라는 두 가지 일반적인 측정 기준을 언급했습니다. 분류 정확도는 참 긍정과 참 부정의 합을 총 예측 수로 나누어 계산합니다. 반면 분류 오류는 1에서 정확도를 뺀 값으로 계산됩니다.

그런 다음 연사는 유방암 진단에 대한 정보가 포함된 유방암 위스콘신 데이터 세트를 소개했습니다. 그들은 데이터 세트가 각 환자의 ID 번호와 암 세포 핵의 디지털화된 이미지에서 추출된 특징을 포함하여 다양한 열을 가지고 있다고 설명했습니다.

분류를 위한 데이터 세트를 준비하기 위해 화자는 scikit-learn의 레이블 인코더를 사용하여 문자열 클래스 레이블(악성 및 양성)을 정수 레이블(0 및 1)로 변환했습니다. 그들은 데이터 세트를 훈련 세트(80%)와 테스트 세트(20%)로 분할했습니다.

다음으로 발표자는 k-최근접 이웃 분류기를 사용하여 혼동 행렬을 그리는 방법을 시연했습니다. 그들은 KNN 분류기에 대한 기능 스케일링의 중요성을 강조하고 전처리를 위한 표준 스칼라 및 파이프라인의 사용을 언급했습니다.

혼동 행렬을 시각화하기 위해 화자는 mlxtend 라이브러리의 chaos_matrix 함수를 사용했습니다. 결과 혼동 행렬은 matplotlib를 사용하여 오른쪽 하단 모서리에 참 긍정과 왼쪽 상단 모서리에 참 부정으로 표시되었습니다.

또한 발표자는 show_absolute 및 show_normed와 같은 Confusion_matrix 함수의 일부 선택적 매개 변수를 언급했습니다. 이러한 매개변수를 사용하면 절대 숫자 또는 정규화된 값 표시를 포함하여 시각화를 사용자 정의할 수 있습니다.

마지막으로 발표자는 정양성율, 오탐율, 거짓음성율, 참음성율과 같은 혼동 매트릭스에서 파생된 지표에 대해 논의했습니다. 이러한 메트릭은 분류기 성능을 평가하는 데 중요하며 후속 논의에서 수신자 오퍼레이터 특성(ROC) 곡선과 관련하여 더 자세히 살펴볼 것입니다.

전반적으로 혼동 행렬은 분류기의 성능에 대한 귀중한 통찰력을 제공하여 클래스 레이블을 올바르게 예측하는 기능을 평가할 수 있습니다.

 

12.2 정밀도, 재현율 및 F1 점수(L12 모델 평가 5: 성능 지표)


12.2 정밀도, 재현율 및 F1 점수(L12 모델 평가 5: 성능 지표)

이전 비디오에서는 분류 모델을 평가하는 데 유용한 도구인 혼동 행렬에 대해 설명했습니다. 이를 통해 참 긍정, 거짓 긍정, 참 부정 및 거짓 부정의 수를 계산할 수 있습니다. 또한 참양성률과 참음성률도 조사했습니다. 이제 정밀도, 재현율 및 F1 점수라는 세 가지 추가 메트릭을 도입하여 이해를 넓힐 것입니다.

정밀도부터 시작하겠습니다. 정밀도는 참 양성의 수를 참 양성과 거짓 양성의 합으로 나누어 계산합니다. 참 양성은 양성으로 올바르게 예측된 인스턴스이고 거짓 양성은 양성으로 잘못 예측된 인스턴스입니다. 예를 들어 스팸 분류의 맥락에서 참양성은 스팸으로 올바르게 식별된 이메일을 나타내고, 거짓양성은 스팸으로 잘못 분류된 스팸이 아닌 이메일을 나타냅니다. Precision은 긍정적인 예측의 정확성을 측정하여 다음 질문에 답합니다. 예측된 스팸 이메일 중 실제로 스팸인 이메일은 몇 개입니까?

다음으로 실제 양성률이라고도 하는 재현율이 있습니다. 재현율은 참 양성의 수를 참 양성과 거짓 음성의 합으로 나누어 계산합니다. 참 긍정은 긍정으로 올바르게 예측된 인스턴스를 나타내고, 거짓 부정은 부정으로 잘못 예측된 인스턴스를 나타냅니다. 재현율은 실제 양성 인스턴스 중 양성으로 올바르게 식별된 횟수를 나타냅니다. 즉, 긍정적인 사례를 캡처하는 분류기의 효율성을 측정합니다.

또 다른 중요한 지표는 정밀도와 재현율을 단일 값으로 결합한 F1 점수입니다. 정밀도와 재현율의 조화 평균을 2배로 가중하여 계산합니다. F1 점수는 정밀도와 재현율을 모두 고려하여 분류기 성능의 균형 잡힌 척도를 제공합니다. 정밀도와 재현율 모두에서 잘 수행되는 모델을 평가하려는 경우에 특히 유용합니다.

이러한 모든 메트릭의 범위는 0과 1 사이이며 1이 가능한 최상의 값입니다. 용어 측면에서 민감도와 특이성은 전산 생물학에서 더 일반적으로 사용되는 반면 정밀도와 재현율은 정보 기술, 컴퓨터 과학 및 기계 학습에서 널리 사용됩니다. 논문이나 연구에서 사용할 메트릭을 선택할 때 특정 분야의 규칙을 고려하는 것이 중요합니다.

정밀도와 재현율을 더 잘 이해하기 위해 Wikipedia의 유용한 다이어그램을 사용하여 시각화해 보겠습니다. 이 시각화에서는 포지티브 클래스(예: 스팸 이메일)를 왼쪽의 모든 것으로 간주하고 네거티브 클래스를 오른쪽의 모든 것으로 간주합니다. 정밀도는 참 긍정을 모든 예측 긍정으로 나눈 값으로 표시되는 반면 재현율은 참 긍정을 모든 실제 긍정으로 나눈 값으로 표시됩니다.

또한 일반적으로 사용되는 다른 두 가지 메트릭인 민감도와 특이도가 있습니다. 민감도는 재현율의 또 다른 용어로 참양성률을 나타냅니다. 반면에 특이성은 참 음성의 수를 음성의 수로 나눈 값입니다. 감도를 보완하고 부정적인 인스턴스의 정확한 식별에 중점을 둡니다.

이제 Matthews 상관 계수에 대해 알아보겠습니다. 원래 생물학에서 단백질 2차 구조 예측을 평가하기 위해 설계된 이 계수는 실제 레이블과 예측 레이블 간의 상관관계를 측정합니다. Pearson의 상관 계수에 대응하는 이진 분류로 간주할 수 있습니다. Pearson의 r과 유사하게 Matthews 상관 계수의 범위는 -1에서 1까지이며 1은 참 레이블과 예측 레이블이 완벽하게 일치함을 나타냅니다. 한 클래스가 다른 클래스보다 훨씬 더 많은 예제를 가지고 있는 불균형 클래스 문제에서 특히 유용합니다.

이러한 메트릭을 계산하려면 precision_score, recall_score, f1_score 및 matthews_corrcoef와 같이 scikit-learn에서 제공하는 함수를 사용할 수 있습니다. 이러한 함수는 실제 레이블과 예측 레이블을 입력으로 사용하고 해당 메트릭 값을 반환합니다. 또는 그리드 검색 및 하이퍼파라미터 튜닝에서 이러한 메트릭을 사용하여 원하는 메트릭을 문자열 인수로 제공할 수 있습니다.

다중 클래스 문제의 경우 정밀도, 재현율, F1 점수 또는 Matthews 상관 계수와 같은 메트릭을 사용하려면 해결 방법을 적용해야 합니다. 한 가지 접근 방식은 scikit-learn의 make_scorer 함수를 사용하는 것입니다. 이 기능을 사용하면 특정 메트릭에 대한 채점 개체를 만들 수 있습니다.

예를 들어 다중 클래스 문제에 F1 점수를 사용하려는 경우 make_scorer를 사용하여 scorer 개체를 만들고 average 매개 변수를 "macro" 또는 "micro"로 설정할 수 있습니다. "매크로" 옵션은 각 클래스에 대해 독립적으로 메트릭을 계산한 다음 평균을 구하는 반면, "마이크로" 옵션은 모든 클래스에서 참 양성, 거짓 음성 및 거짓 양성의 총 수를 고려합니다.

"매크로" 평균과 "마이크로" 평균 사이의 선택은 문제와 분석의 특정 요구 사항에 따라 달라집니다.

이러한 메트릭을 개별적으로 사용하는 것 외에도 그리드 검색 및 하이퍼파라미터 튜닝에 적용할 수도 있습니다. 분류 정확도를 스코어링 메트릭으로 사용하는 대신 그리드 검색 프로세스에서 원하는 메트릭을 문자열 인수로 제공할 수 있습니다. 이를 통해 선택한 메트릭을 기반으로 모델을 최적화할 수 있으므로 정확도에만 의존하는 것보다 더 포괄적인 평가를 제공할 수 있습니다.

다중 클래스 문제로 작업하고 이러한 메트릭을 적용할 때 평균화 옵션을 이해하고 특정 요구 사항에 따라 적절한 방법을 선택하는 것이 중요합니다.

요약하면 이 비디오에서는 정밀도, 재현율, F1 점수 및 Matthews 상관 계수를 포함하여 분류 모델에 대한 추가 평가 지표를 다루었습니다. 이러한 메트릭은 참양성, 거짓양성 및 거짓음성과 같은 요인을 고려하여 분류기의 성능에 대한 귀중한 통찰력을 제공합니다. 이러한 지표를 사용하면 모델이 얼마나 잘 수행되고 있는지 더 깊이 이해하고 분석 또는 연구에서 정보에 입각한 결정을 내릴 수 있습니다. 다음 비디오에서는 균형잡힌 정확도, 수신자 작동 특성(ROC) 곡선, 이진 메트릭을 다중 클래스 설정으로 확장하여 분류 작업에서 평가 기술에 대한 지식을 확장하는 방법을 살펴봅니다.

 

12.3 균형 잡힌 정확도(L12 모델 평가 5: 성능 지표)


12.3 균형 잡힌 정확도(L12 모델 평가 5: 성능 지표)

자, 이제 분류 작업에서 클래스 불균형 문제를 처리할 때 특히 유용한 균형 잡힌 정확도의 개념에 대해 자세히 살펴보겠습니다. 클래스 불균형은 한 클래스가 다른 클래스보다 상당히 많은 수의 레이블을 가질 때 발생합니다. 이를 설명하기 위해 Iris 꽃, 특히 Iris setosa, Iris versicolor 및 Iris virginica의 예를 사용하여 다중 클래스 분류 문제를 고려해 보겠습니다.

일반적으로 혼동 행렬의 대각선 값을 합산하고 총 예 수로 나누어 예측 정확도를 계산합니다. 주어진 예에서 클래스 0에 대한 3개의 레이블, 클래스 1에 대한 769개의 레이블 및 클래스 2에 대한 18개의 레이블이 있습니다. 보시다시피, 클래스 1이 다른 두 클래스에 비해 예제 수가 더 많은 불균형이 있습니다. 일반 정확도를 계산하면 약 80%가 될 것이며 주로 많은 수의 클래스 1 예의 영향을 받습니다.

그러나 일반 정확도는 특히 모든 클래스에 대해 균형 잡힌 예측을 달성하는 데 중점을 두어야 하는 경우 모델의 성능을 정확하게 나타내지 못할 수 있습니다. 이러한 경우 균형 정확도 메트릭은 각 클래스에 동일한 가중치를 부여하여 보다 공평한 평가를 제공하는 것을 목표로 합니다.

균형 잡힌 정확도를 계산하기 위해 각 클래스를 양성 클래스로 간주하고 나머지 클래스를 음성 클래스로 병합합니다. 예를 들어 먼저 Class Zero에 초점을 맞추겠습니다. 클래스 0을 포지티브 클래스로 취급하고 클래스 1과 클래스 2를 네거티브 클래스로 결합합니다. 혼동 행렬을 분석하여 Class Zero에 대한 참양성, 참음성, 거짓양성, 거짓음성을 결정할 수 있습니다. 이 프로세스는 각 클래스에 대해 반복되어 별도의 이진 분류 문제를 생성합니다.

Python에서는 mlxtend 라이브러리의 Accuracy_score 함수를 사용하여 균형 잡힌 정확도를 계산할 수 있습니다. 이 함수는 scikit-learn의 정확도_점수와 유사하게 작동하지만 이진 분류 정확도를 계산하는 추가 기능을 포함합니다. 메서드를 이진법으로 지정하고 양수 레이블을 제공하면 각 클래스에 대한 이진 정확도를 계산할 수 있습니다. 또한 평균 매개변수를 "매크로" 또는 "마이크로"로 사용하여 클래스당 평균 정확도를 직접 계산할 수 있습니다.

제공된 예에서는 혼동 행렬이 다시 생성되고 일반 정확도, 클래스당 평균 정확도(균형 정확도) 및 이진 정확도가 계산됩니다. 이진 정확도는 양성 레이블로 개별적으로 취급되는 각 클래스에 해당합니다. 이진 정확도를 평균화하여 균형 잡힌 정확도를 얻습니다. 이 경우 균형 정확도는 약 86%입니다.

균형 정확도 또는 클래스당 평균 정확도는 클래스 불균형이 있는 다중 클래스 문제에서 분류기 성능에 대한 공정한 평가를 제공합니다. 각 클래스를 동등하게 고려하고 모든 클래스를 정확하게 예측하는 모델의 기능에 대한 통찰력을 제공합니다.

계속해서 기계 학습의 또 다른 중요한 평가 지표인 수신자 작동 특성(ROC) 곡선에 대해 논의해 보겠습니다. ROC 곡선은 이진 분류기의 성능을 그래픽으로 표현한 것으로 다양한 분류 임계값에서 TPR(진양성률)과 FPR(가양성률) 간의 절충에 대한 귀중한 통찰력을 제공합니다.

ROC 곡선을 이해하기 위해 먼저 TPR(True Positive Rate)과 FPR(False Positive Rate)을 정의해 보겠습니다. 민감도 또는 재현율이라고도 하는 TPR은 분류기에 의해 올바르게 식별되는 실제 양성 인스턴스의 비율을 측정합니다. 진양성과 거짓음성의 합으로 진양성의 수를 나눈 값으로 계산됩니다.

TPR = 진양성 / (진양성 + 거짓음성)

반면 FPR(False Positive Rate)은 양성으로 잘못 분류된 실제 음성 인스턴스의 비율을 측정합니다. 가양성 수를 가양성과 참음성의 합으로 나눈 값으로 계산됩니다.

FPR = 가양성 / (가양성 + 참음성)

ROC 곡선을 구성하기 위해 분류기의 예측은 분류 점수 또는 확률에 따라 순위가 매겨집니다. 분류 임계값을 변경하여 서로 다른 TPR 및 FPR 값을 생성할 수 있습니다. 모든 인스턴스를 양성으로 분류하는 임계값(결과적으로 TPR 1 및 FPR 1)부터 시작하여 점진적으로 임계값을 낮추고 더 적은 수의 인스턴스를 양성으로 분류하여 결과적으로 TPR과 FPR을 모두 줄입니다.

각 임계값에 대해 FPR에 대해 TPR을 플로팅하면 ROC 곡선을 얻을 수 있습니다. 곡선은 다양한 작동 지점에서 분류기의 성능을 보여줍니다. 이상적인 시나리오는 모든 임계값에 대해 높은 TPR과 낮은 FPR을 나타내는 왼쪽 상단 모서리를 감싸는 곡선입니다.

ROC 곡선 외에도 ROC 곡선 아래 영역(AUC-ROC)에서 파생된 또 다른 중요한 지표입니다. AUC-ROC는 ROC 곡선 아래의 면적을 계산하여 분류기의 전체 성능을 정량화합니다. 완벽한 분류기는 AUC-ROC가 1이며, 이는 FPR을 0으로 유지하면서 TPR이 1임을 나타냅니다. 반대로 임의 분류기는 AUC-ROC가 0.5이므로 우연보다 나을 것이 없습니다.

ROC 곡선과 AUC-ROC는 선택한 분류 임계값에 관계없이 이진 분류기의 성능에 대한 포괄적인 분석을 제공합니다. 이를 통해 서로 다른 분류자 또는 동일한 분류자의 서로 다른 설정을 비교할 수 있으므로 모델 선택에 대한 정보에 입각한 결정을 내릴 수 있습니다.

Python에서 ROC 곡선과 AUC-ROC를 계산하기 위해 scikit-learn과 같은 다양한 라이브러리에서 편리한 기능을 제공합니다. 이러한 함수는 실제 레이블과 예측 확률 또는 점수를 입력으로 사용하고 ROC 곡선의 FPR, TPR 및 임계값과 AUC-ROC 값을 반환합니다.

요약하면 ROC 곡선과 AUC-ROC는 이진 분류기의 성능을 평가하고 비교하는 데 유용한 도구입니다. 다양한 분류 임계값에서 정양성 비율과 위양성 비율 사이의 트레이드오프에 대한 통찰력을 제공하여 모델 선택에서 정보에 입각한 의사 결정을 내릴 수 있습니다.