R의 혼동 행렬: 생성 및 계산 방법 [예제 포함]
게시 됨: 2021-03-09R은 오늘날 데이터 및 통계 분석을 위한 최고의 소프트웨어 패키지 중 하나로 부상했습니다. 강력한 컴퓨팅, 비주얼 및 그래픽 기능으로 선호되는 오픈 소스 환경입니다. 엔지니어링 학생, 비즈니스 분석 전문가 또는 데이터 과학에 관심이 많은 사람이라면 R 프로그래밍 언어를 배우는 것이 여러 면에서 도움이 될 수 있습니다.
이 기사에서는 이 통합 제품군을 통해 기계 학습의 몇 가지 기본 개념을 다룰 것입니다. 더 구체적으로, 우리는 R 에서 혼동 행렬 을 계산하는 방법에 대해 논의할 것 입니다.
그러나 기술적인 부분으로 넘어가기 전에 먼저 이 목적으로 R을 선택한 이유를 이해합시다. 이 프로그래밍 언어가 전 세계 통계학자와 데이터 과학자들 사이에서 인기를 얻고 있는 것은 다음과 같은 이점 때문입니다.
- 재현성: R을 사용하면 보고서를 재현하고 재사용 가능한 코드를 작성할 수 있습니다.
- 공유 가능: 학습 곡선이 낮아 협업의 길을 열어줍니다.
- 반복 가능: 누구나 사용자가 수행한 작업을 이해할 수 있을 뿐만 아니라 단계를 반복하여 자신의 컴퓨터에서 동일한 기능을 생성할 수 있습니다.
머신 러닝 분야에서 R 언어의 사용도 위의 이유로 인해 선택되었습니다. 구문을 이해하기 위해 전문 프로그래머가 될 필요는 없습니다. 따라서 다음 섹션에서 몇 가지 기본 사항을 소개합니다.
목차
혼란 매트릭스 란 무엇입니까?
혼동 행렬 또는 오류 행렬은 통계의 표준 분류 문제를 다룹니다. 데이터 분석가가 알고리즘의 수행 방식을 시각화하는 데 도움이 되는 특정 테이블 레이아웃으로 구성됩니다. 이것은 특히 지도 학습 알고리즘에 적용됩니다.
더 자세히 설명하자면, 혼동 행렬은 N x N 형식을 따릅니다. 여기서 N은 대상 클래스에 대한 숫자를 나타냅니다. 이 표 또는 행렬을 사용하여 분류 모델의 성능을 평가할 수 있습니다. 이는 매트릭스가 예측값과 목표값을 비교하기 때문에 가능합니다.
간단히 말해서, 이 경우 분류기인 기계 학습 모델이 테스트 데이터 세트(이미 실제 값을 가지고 있음)에서 작동하는 방식을 설명할 수 있습니다.
이 방법을 이해하려면 다음 용어에 익숙해야 합니다.
- 참양성(TP): 양수 값이 올바르게 예측됨
- 가양성(FP): 음수 값이 양수로 잘못 예측됨
- 거짓 음수(FN): 음수로 예측되는 양수 값
- True Negative(TN): 실제 음수 값으로 예측된 음수 값
좀 더 명확하게 이해하기 위해 몇 가지 예를 살펴보겠습니다.
혼동 행렬의 예
- 트루 포지티브
당신이 인도가 크리켓 월드컵에서 우승할 것이라고 예측했을 때, 그리고 우승했습니다.
- 거짓 긍정
인도가 승리할 것이라고 예상했지만 패배했습니다.
- 거짓 부정
프랑스가 이기지 않을 것이라고 예측했지만 이겼을 때.
- 트루 네거티브
인도가 크리켓 월드컵에서 '승리하지 못할' 것이라고 예상했을 때 현실에서는 시리즈에서 졌습니다.
계속 진행하면서 모든 예측 값은 양수, 음수, 참, 거짓으로 설명된다는 점을 기억해야 합니다.
R에서 혼동 행렬을 계산하는 방법은 무엇입니까?
예상 값 또는 알려진 값 목록과 기계 학습 모델의 다른 예측 목록이 있는 시나리오를 고려하십시오. R에서는 캐럿 라이브러리의 간단한 함수인confusionMatrix()를 사용하여 정오분류표를 계산할 수 있습니다. 행렬을 계산할 뿐만 아니라 결과에 대한 자세한 보고서를 반환할 수도 있습니다.
다음 단계에 따라 데이터 마이닝 프로세스를 연습할 수 있습니다.
- 예상 결과로 주어진 데이터 세트를 테스트하십시오.
- 테스트 데이터 세트의 행을 예측합니다.
- 각 클래스에 대한 올바른 예측과 잘못된 예측의 총 개수를 결정합니다.
이 작업을 수행하면 다음과 같은 방식으로 구성된 숫자를 찾을 수 있습니다.
- 행렬의 모든 행은 예측된 클래스에 해당하고 모든 열은 실제 클래스에 연결됩니다.
- 올바른 분류와 잘못된 분류의 총 개수가 각 클래스의 합계와 함께 표에 반영됩니다.
10명의 사람이 남성과 여성의 두 부류로 나뉩니다. 남성 2명이 여성으로 분류되고 여성 1명이 남성으로 분류되었다는 사실을 알고 있을 때 정보를 정오분류표로 정렬해야 합니다.
여자 남자
여성 3 1
남자 2 4
여기에서 올바른 값은 행렬의 왼쪽 상단에서 오른쪽 하단까지 대각선으로 구성됩니다(3 + 4). 결과는 남성 회원을 여성으로 예측할 때 여성을 남성으로 예측하는 것보다 더 많은 오류가 있음을 알려줍니다 . 알고리즘은 10개의 가능한 결과 중 7개의 정확한 예측을 수행했으며 이는 70%의 정확도를 가짐을 의미합니다.
R에서 C onfusion Matrix 만들기 및 계산 가이드
보시다시피, 정오분류표 함수 는 예측의 가능한 결과를 검사하는 데 유용한 도구입니다. 따라서 행렬 생성을 시작하기 전에 먼저 확률 값의 "컷"이 필요합니다. 즉, 확률을 클래스 예측으로 바꾸려면 임계값을 표시해야 합니다.
이를 위해 ifelse() 함수를 사용할 수 있습니다. 예를 들어:
class_prediction <-
ifelse (probability_prediction > 0.50,
"positive_class",
"negative_class"
)
또한 table() 함수를 작성하여 기본 R에서 분할표를 만들 수 있습니다. 그러나confusionMatrix() 함수는 유용한 보조 통계를 생성하는 것으로 알려져 있습니다.
다음 단계는 혼동 행렬 및 기타 관련 통계를 계산하는 것입니다. 여기에서 예측된 결과와 실제 결과가 필요합니다. 예를 들어 아래에 주어진 진술을 살펴보십시오.
혼동 매트릭스(예측, 실제)
이제 숫자 예측을 sat p_class 클래스 예측의 벡터로 바꾸는 작업을 진행해야 합니다. 0.50의 컷오프를 사용한다고 가정합니다.
또한 예측하는 동안 별도의 지표를 사용하여 긍정 및 부정 클래스의 이름을 지정하는 것을 잊지 마십시오. 긍정적인 클래스를 "T"라고 부르고 부정적인 클래스를 "L"로 이름을 지정합시다. 이것은 클래스를 원본 데이터와 일치시키기 위해 수행됩니다.
이제 테스트 데이터 세트에 p_class와 실제 값이 있으므로 혼동 행렬 만들기를 시작할 수 있습니다.
또는 데이터 마이닝 모델의 정확성을 확인하고 싶을 수도 있습니다. 이러한 경우 임계값 0.90이 아닌 0.10을 사용하는 것이 좋습니다. 그 후에는 이전 연습에서와 동일한 단계를 계속할 수 있습니다.
새 예측 클래스를 사용하여 다음 호출을 반복할 수 있습니다.
pred <- ifelse(확률 > 임계값, "T", "L")
마지막으로 다음과 같이 캐럿에서 혼동매트릭스() 함수를 사용할 수 있습니다.
혼동 매트릭스(예측, 실제)
이것 으로 R의 기계 학습을 위한 혼동 행렬 함수 에 대한 이 자습서를 마칩니다. 도움이 되었기를 바랍니다!
결론
R, 데이터 과학에 대해 자세히 알아보려면 일하는 전문가를 위해 만들어졌으며 10개 이상의 사례 연구 및 프로젝트, 실용적인 실습 워크샵, 업계 전문가와의 멘토링, 일대일 교육을 제공하는 데이터 과학 PG 디플로마를 확인하십시오. 업계 멘토와 1위, 최고의 기업에서 400시간 이상의 학습 및 취업 지원.
다음 이유는 혼동 매트릭스의 이점과 성능 문제를 처리하는 방법을 소개합니다. R의 혼동 행렬은 캐럿 라이브러리의 "confusionMatrix()" 함수를 사용하여 계산할 수 있습니다. 이 함수는 행렬을 계산할 뿐만 아니라 행렬에 대한 자세한 보고서를 반환합니다. 정오분류표를 계산하려면 몇 가지 단계를 따라야 합니다. 2x2 정오분류표를 사용하여 모델의 정확도를 계산할 수 있습니다. 다음 공식을 통해 성공률 또는 정확도를 얻을 수 있습니다.혼동 행렬을 만드는 데 필요한 것은 무엇입니까?
1. 분류 정확도 문제를 근절하기 위해 혼동 행렬이 필요합니다. 분류 비율은 종종 모델의 필요한 세부 사항을 숨김으로써 몇 가지 문제를 일으킵니다.
2. 혼동 행렬은 예측에 대한 통찰력과 분류 모델의 오류 유형을 제공합니다. 정확하고 잘못된 예측이 요약된 방식으로 제시됩니다.
3. 모델의 성능을 이해할 수 있도록 오류 및 해당 유형을 분류합니다. R에서 혼동 행렬을 계산하는 방법은 무엇입니까?
1. 데이터세트를 테스트합니다.
2. 총 행 수를 예측합니다.
3. 모든 클래스에 대한 전체 올바른 예측과 잘못된 예측을 예측합니다.
데이터를 마이닝하면 행으로 구성된 숫자를 얻을 수 있습니다. 행은 예측된 클래스에 연결되고 열은 실제 클래스에 연결됩니다. 올바른 값은 대각선에 있습니다. 모든 값을 더하면 행렬의 정확도 백분율을 얻을 수 있습니다. 혼동 행렬에서 성능을 측정하는 방법은 무엇입니까?
정확도 = (TP+TN)/(TP+TN+FP+FN)
여기서, TP = 참양성, TN = 참음성, FP = 거짓양성, FN = 거짓음성
모델의 오류율은 다음과 같은 비율 계산 공식으로 계산할 수도 있습니다.
정확도 = (TP+TN)/(TP+TN+FP+FN) = 1-정확도
오류율의 개념은 매우 간단합니다. 모델의 정확도가 80%라고 가정하면 모델의 오류율은 20%가 됩니다.