올바른 분류 알고리즘을 선택하십시오. 선형 또는 비선형? [닫은

StackOverflow https://stackoverflow.com/questions/2414030

  •  19-09-2019
  •  | 
  •  

문제

이 질문이 조금 까다로워졌습니다. 아마도 누군가이 질문에 대답하는 접근법을 알고있을 것입니다. 그것이 무엇인지 모르는 데이터 세트 (교육 데이터)가 있다고 상상해보십시오. 이 데이터를 분류하기 위해 분류 알고리즘을 추론하기 위해 어떤 교육 데이터의 기능을 살펴 보시겠습니까? 비선형 또는 선형 분류 알고리즘을 사용해야하는지 말할 수 있습니까?

그건 그렇고, 나는 WEKA를 사용하여 데이터를 분석하고 있습니다.

제안이 있습니까? 고맙습니다.

도움이 되었습니까?

해결책

와우, 당신은 훈련 데이터가 있고 문서의 단어를 나타내는 기능을보고 있는지 또는 셀의 Genese를 보는지 모르고 분류기를 조정 해야하는지 모릅니다. 글쎄, 당신은 의미 정보가 없기 때문에, 데이터 세트의 통계적 특성을 살펴보면이 단독을해야 할 것입니다.

첫째, 문제를 공식화하기 위해 이것은 단순한 선형 대 비선형 이상입니다. 이 데이터를 실제로 분류하려는 경우, 실제로해야 할 일은 선형 또는 비선형 (가우시안, 다항식, 쌍곡선 등)이 될 수있는 분류기의 커널 기능을 선택하는 것입니다. 주어진 분류 문제에 대한 최적의 커널 함수 및 매개 변수를 결정하는 것은 실제로 해결 된 문제가 아니며, 유용한 휴리스틱 만 있으며 Google '커널 함수 선택'또는 '커널을 선택하는 경우'가 있습니다. 기능 ', 당신은 다양한 접근법을 제안하고 테스트하는 많은 연구 논문에 대우받을 것입니다. 많은 접근법이 있지만 가장 기본적이고 잘 여행하는 것은 매개 변수에 대한 그라디언트 하강을 수행하는 것입니다. 기본적으로 커널 방법과 매개 변수 세트, 데이터 포인트의 절반을 훈련시키고 수행 방법을 확인하십시오. 그런 다음 다른 매개 변수 세트를 시도하고 수행 방법을 확인하십시오. 매개 변수를 만족 스러울 때까지 정확도의 최상의 개선 방향으로 이동합니다. 토리 결과.

좋은 커널 기능을 찾기 위해이 복잡성을 모두 살펴볼 필요가 없다면 선형 또는 비선형에 대한 답을 원합니다. 그런 다음 질문은 주로 두 가지로 이어집니다. 비 선형 분류기는 자유의 차원이 더 많기 때문에 과적으로 과적 할 위험이 높습니다 (과도하게). 그들은 좋은 일반화를 내놓기보다는 좋은 데이터 포인트 세트를 암기하는 분류기로 고통받을 수 있습니다. 반면에 선형 분류기는 적합 할 자유가 적으며 선형 별도가없는 데이터의 경우 좋은 의사 결정 기능을 찾지 못하고 높은 오류율로 고통받습니다.

불행히도, 나는 분류기 자체를 시도하고 그것이 어떻게 수행되는지 보는 것 외에 "이 데이터가 선형적으로 분리 될 수있는 것"이라는 질문에 대답 할 수있는 더 나은 수학적 솔루션을 모른다. 이를 위해 당신은 내 것보다 더 똑똑한 대답이 필요할 것입니다.

편집 :이 연구 논문은 주어진 데이터 세트가 선형별로 얼마나 가까운지를 결정할 수있는 것처럼 보이는 알고리즘을 설명합니다.

http://www2.ift.ulaval.ca/~mmarchand/publications/wcnn93aa.pdf

다른 팁

이것은 사실입니다 하나의 질문 ;-)

  • 기능 선택
  • 선형 여부

"알고리즘 선택"을 추가하면 분류기 설계에 대한 세 가지 가장 근본적인 질문이있을 수 있습니다.

옆으로, 그것은 a입니다 좋은 것 기능 선택을 안내하거나 기능 공간의 선형성을 주장 할 수있는 도메인 전문 지식이 없다는 것입니다. 그것은 데이터 마이닝의 재미입니다. 선험적 인 전문 지식없이 그러한 정보를 추론합니다. (BTW, 그리고 도메인 전문 지식은 분류기의 결과를 두 번 확인하는 것이 좋지만, 사전 통찰력으로 인해 좋은 광업 기회를 놓칠 수 있습니다). 그러한 선험적 지식이 없으면 건전한 방법론을 확립하고 결과에 신중한 조사를 적용해야합니다.

제공하기가 어렵습니다 특정한 지침은 부분적으로 많은 세부 사항이 문제에 빠졌기 때문에, 그리고 나는 이것을 통해 다소 BS를 사용하고 있기 때문에 ;-). 덜 덜 일반적인 조언이 도움이되기를 바랍니다.

  • 시도하는 각 알고리즘에 대해 (또는 주어진 알고리즘에 대한 각 매개 변수 세트에 대해 더 정확하게) 많은 테스트를 실행하십시오. 이론은 매우 도움이 될 수 있지만 많은 "시행 착오"가 남아있을 것입니다. 당신은 찾을 수 있습니다 교차 검증 귀중한 기술.
    간단히 말해서 [사용 가능한 교육 데이터의 크기에 따라] 훈련 데이터를 여러 부분으로 무작위로 분할하고 이러한 부분 중 하나 또는 여러 부분에서 분류기를 훈련 한 다음 다른 부분에서 분류기를 평가합니다. [또는 여러] 부분. 그러한 실행에 대해, 당신은 잘못 분류 오류 (MCE)와 같은 다양한 성능 지표를 측정하고 분류기의 수행 방식을 알려주는 것 외에도 이러한 메트릭 또는 그 변동성이 선택된 기능의 관련성에 대한 힌트를 제공합니다. 스케일 또는 선형성 부족.

  • 선형성 가정과 독립적으로 값을 정규화하십시오숫자 특징. 이것은 홀수 범위가있는 기능에 도움이됩니다.
    각 차원 내에서 중앙값의 양쪽에있는 2.5 표준 편차 내에서 범위를 설정 하고이 범위를 기준으로 기능 값을 백분율로 변환하십시오.

  • 공칭 속성을 이진 속성으로 변환합니다, 많은 차원을 생성하면 공칭 속성의 뚜렷한 값이 있습니다. (많은 알고리즘 최적화기가 당신을 위해 이것을 할 것이라고 생각합니다)

  • 비교적 괜찮은 성능 (예 : 33% MCE)을 가진 하나 또는 몇 개의 분류기를 식별하면 한 번에 하나의 매개 변수 만 수정하여 이러한 분류기와 동일한 테스트 시리즈를 수행하십시오. 예를 들어 일부 기능을 제거하고 결과, 낮은 차원 분류기가 개선 또는 저하인지 확인하십시오.

  • 그만큼 손실 계수는 매우 민감한 매개 변수입니다. 하나의 "추론 가능"이지만 대량의 테스트에 대한 초록적 인 값을 고수하고 끝에서 손실을 미세 조정하십시오.

  • SVM Optimizers가 제공 한 "덤프"정보를 악용하는 방법을 배우십시오. 이 결과는 Optimizer가 "생각하는 것"에 대한 매우 귀중한 정보를 제공합니다.

  • 주어진 도메인의 주어진 데이터 세트에서 매우 잘 작동 한 것은 다른 도메인의 데이터에서 매우 잘못 수행 할 수 있습니다 ...

  • 커피는 좋지 않습니다. 모든 것이 실패하면 아일랜드어로 만드십시오 ;-)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top