낮은 분류 정확도, 다음에 수행 할 작업


16

그래서 저는 ML 분야의 초보자이며 분류를하려고합니다. 내 목표는 스포츠 이벤트의 결과를 예측하는 것입니다. 나는 몇 가지 역사적 데이터를 수집했으며 이제 분류기를 훈련하려고합니다. 나는 약 1200 개의 샘플을 얻었고, 그중 0.2 개는 테스트 목적으로 분리되었으며 다른 샘플은 다른 분류 기준으로 그리드 검색에 포함되었습니다 (교차 유효성 검사 포함). 나는 선형, rbf 및 다항식 커널과 랜덤 포레스트로 SVM을 시도했습니다. 불행히도 0.5보다 큰 정확도를 얻을 수는 없습니다 (임의의 무작위 선택과 동일). 그런 복잡한 사건의 결과를 예측할 수 없다는 것을 의미합니까? 아니면 적어도 0.7-0.8 정확도를 얻을 수 있습니까? 가능하다면 다음에 무엇을 살펴 봐야합니까?

  • 더 많은 데이터를 얻으시겠습니까? (데이터 세트를 5 배까지 확대 할 수 있습니다)
  • 다른 분류기를 사용해 보시겠습니까? (물류 회귀, kNN 등)
  • 기능 세트를 다시 평가 하시겠습니까? 분석 할 ML 도구가 있습니까? 어떤 기능이 적합하고 어떤 기능이 적합하지 않습니까? 어쩌면 기능 세트를 줄여야합니까 (현재 12 개의 기능이 있음)?

훈련 정확도는 무엇입니까? 그리고 각 수업에 몇 개의 샘플이 있습니까?
Leo

1
이것은 어떤 스포츠이며 "올바른"분류로 간주합니까? 사실상 거의 모든 주요 스포츠에서 승 / 패 결과를 예측하려는 경우 가장 간단한 분류기조차도 0.5보다 더 나은 예측을하지는 못할 것입니다. 예를 들어 스프레드 또는 기타 장애인 결과에 대한 승리 / 손실을 예측하려는 경우 0.5보다 훨씬 더 나을 수 있습니다.
추기경

@ 레오 교육의 정확도는 약 0.5입니다. 수업은 균등하게 분배되며 수업 0과 1이 있습니다.
fspirit

@cardinal 네, 핸디캡없이 승 / 패 결과를 예측하려고합니다. 테스트 세트에서 0.8 정확도에 도달하는 것이 가능합니까?
fspirit

1
@fspirit : 그것은 스포츠와 참가자들 사이의 능력의 불평등에 달려 있습니다. 각 콘테스트에 누가 참여 하는지 아는 것만 으로도 강력한 예측 변수가 될 수 있습니다. 여기여기 에 몇 가지 관련 게시물이 있습니다.
추기경

답변:


17

우선, 분류자가 임의의 선택보다 나은 방법이 아닌 경우 단순히 기능과 클래스 사이에 연결이 없을 위험이 있습니다. 그러한 입장에서 자신에게 물어보아야 할 좋은 질문은 날씨 나 도메인 전문가가 주어진 기능을 기반으로 수업을 임의의 분류 자보다 더 정확하게 추론 할 수 있다는 것입니다. 그렇지 않은 경우 더 많은 데이터 행을 가져 오거나 분류자를 변경해도 도움이되지 않습니다. 당신이해야 할 일은 다른 기능을 사용하여 더 많은 데이터를 얻는 것입니다.

반면에 클래스를 유추하는 데 필요한 정보가 이미 레이블에 있다고 생각되면 분류 기가 높은 편향 또는 높은 분산 문제를 겪고 있는지 확인해야합니다.

이를 위해 훈련 예제의 함수로 유효성 검증 오류 및 학습 세트 오류를 ​​그래프로 표시하십시오.

선이 같은 값으로 수렴하고 끝에 가까워지면 분류 기가 바이어스가 높고 더 많은 데이터를 추가해도 도움이되지 않습니다. 이 경우 좋은 분류는 분산이 더 높은 분류기를 변경하거나 단순히 현재 분류기의 정규화 매개 변수를 낮추는 것입니다.

반면에 선이 상당히 멀리 떨어져 있고 훈련 세트 오류가 적지 만 유효성 검사 오류가 높은 경우 분류 기가 분산이 너무 높습니다. 이 경우 더 많은 데이터를 얻는 것이 도움이 될 것입니다. 더 많은 데이터를 얻은 후에도 분산이 여전히 너무 높으면 정규화 매개 변수를 늘릴 수 있습니다.

이것은 당신과 같은 문제에 직면했을 때 사용할 일반적인 규칙입니다.

건배.


유효성 검사 세트 오류 및 테스트 세트 오류를 ​​의미 했습니까? 그렇지 않으면 혼란 스러워요. 기차 세트 오류조차 모릅니다. 유효성 검사 세트 오류를 ​​사용하여 모델을 선택하고 테스트 세트에서 선택한 모델을 확인합니다.
fspirit

아니오, 나는 그것이 쓰여진 곳에서 훈련 세트 오류를 ​​의미합니다. 훈련 오류는 훈련 세트에서 잘못 분류 된 예의 수를 훈련 세트 크기로 나눈 것입니다. 마찬가지로 테스트 세트 오류는 테스트 세트에서 잘못 분류 된 예제 수를 훈련 세트 크기로 나눈 것입니다. 또한 Coursera의 기계 학습 클래스 ( class.coursera.org/ml-2012-002/lecture/index ), 특히 "기계 학습 적용에 대한 조언"에 대한 비디오를 확인할 수 있습니다. 이러한 조언은 귀하의 상황과 관련이 있습니다.
sjm.majewski

코스가 처음 운영되었을 때 경쟁했습니다. 훈련 세트 오류에 관해서는, SVM의 경우 0.5도 높지만 임의의 포리스트의 경우 0입니다.
fspirit

5

분류를 시도하기 전에 물러서서 탐색 데이터 분석을 수행하는 것이 좋습니다. 관심있는 결과와 관련이 있는지 확인하기 위해 개별적으로 기능을 검사 할 가치가 있습니다. 사용자가 가진 기능이 클래스 레이블과 관련이 없을 수도 있습니다. 보유한 기능이 사용되는지 어떻게 알 수 있습니까?

관계 테스트를 위해 가설 테스트 또는 상관 관계 분석을 시작할 수 있습니다. 지형지 물에 대한 클래스 별 히스토그램을 생성하는 것 (즉, 동일한 축에 지정된 지형지 물에 대한 각 클래스에 대한 데이터의 히스토그램을 플로팅)은 지형지 물이 두 클래스를 잘 구별하는지 보여주는 좋은 방법 일 수 있습니다.

탐색 적 분석 결과가 분류 선택에 영향을 미치지 않도록하는 것이 중요합니다. 동일한 데이터에 대한 사전 탐색 분석을 기반으로 분류 기능을 선택하면 과적 합 및 편향 성능 추정치가 발생할 수 있지만 ( 여기에서 논의 참조 ) 탐색 분석을 통해 최소한 수행하려는 작업이 고르지 않은지 알 수 있습니다. 가능한.


히스토그램을 그려서 어떻게 보일지 알아볼 것입니다.
fspirit

@BGreene-세 번째 단락은 나에게 힘든 것입니다. 탐색 분석에서 예측 변수 x1이 결과와 높은 상관 관계가있는 것으로 표시되면 x1을 다변량 모델에서 최소 후보 예측 변수로 사용하지 않은 경우 해당 상관 관계를 확인하는 목적을 무시하지 않습니까?
rolando2

@ rolando2-기능 선택 루틴의 일부로 기능에 후보로 기능을 포함하지 말 것을 권장하지는 않지만 초과 탐색이 될 수 있으므로 탐색 적 분석을 기반으로 기능을 선택해서는 안됩니다. 그러나 분류 자 ​​모델의 일반화 된 성능을 평가하기 위해 모델 선택 루틴 내에서 (즉, 각 교차 검증 내에서) 기능 선택을 수행해야합니다. 내가 제안하는 것은 탐색 적 분석과 분류가 별도의 활동으로 취급되어야한다는 것입니다. 각각은 데이터에 대해 다른 것을 알려줍니다
BGreene

3

데이터를 교육 데이터와 테스트 데이터로 분리하는 것이 좋습니다.

훈련 할 때 훈련 오류가 발생 했습니까? 그렇지 않은 경우 훈련 알고리즘에 버그가있을 수 있습니다. 테스트 세트의 오류가 트레이닝 세트의 오류보다 클 것으로 예상되므로 훈련 세트에 허용 할 수 없을 정도로 높은 오류가있는 경우 성공할 가능성이 거의 없습니다.

기능을 제거하면 일부 유형의 과적 합을 피할 수 있습니다. 그러나 훈련 세트의 오류를 개선해서는 안됩니다. 트레이닝 세트의 오류가 낮고 테스트 세트의 오류가 높으면 지나치게 유연한 기능 세트를 사용하여 과적 합한 것입니다. 그러나 테스트 세트보다 교차 검증을 통해이를 확인하는 것이 더 안전합니다. 테스트 세트를 기반으로 기능 세트를 선택하면 더 이상 테스트 세트로 유효하지 않습니다.


별도의 기차, 검증 및 테스트 세트를 사용합니다. 유효성 검사 세트 오류에 따라 하이퍼 파라미터를 선택한 다음 선택한 모델을 테스트 세트에 적용합니다. 상용 라이브러리를 사용하기 때문에 교육 알고리즘에 버그가 있는지 의심합니다.
fspirit

어떻게 든 라이브러리를 데이터에 연결해야했습니다. 항상 올바르게 훈련하고 있는지 확인하십시오. 훈련 오류율이50%, 이는 귀하의 기능이 끔찍하거나 제대로 훈련되지 않았 음을 의미합니다.
Douglas Zare

"기능이 끔찍하다"가능성에서, 가능한 해결책이없는 경우를 포함합니다. 그러나 나는 그것을 많이 의심합니다. 한 경쟁 업체가 다른 경쟁 업체보다 선호되는 것을 볼 수있는 방법이없는 스포츠는 없습니다. 가위 바위 보에서도 가능합니다.
Douglas Zare

1

"데이터의 도표를 먼저보십시오"라는 원칙을 따르십시오. 두 가지 공변량에 대한 두 가지 클래스 조건부 밀도의 2D 산점도입니다. 이것들을보고 실제로 예측할 수 없음을 나타내는 분리가 없다면 모든 공변량으로이를 수행 할 수 있습니다. 이것은 공변량을 사용하여 예측하는 능력에 대한 아이디어를 제공합니다. 이 변수가 조금씩 분리 될 수 있다는 희망이 있다면 선형 판별, 2 차 판별, 커널 식별, 정규화, 트리 분류, SVM 등에 대해 생각하기 시작하십시오.


죄송합니다. 공변량 == 기능입니까?
fspirit
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.