2013-07-05 7 views
0

나는 텍스트 분류를 위해 감정 분석을하고 있으며 트위터의 트윗을 긍정적, 부정적 또는 중립의 3 가지 범주로 분류하려고합니다. 나는210 개의 훈련 데이터를 가지고 있으며, 분류 자 ​​으로 Naive Bayes를 사용하고 있습니다. 교육 데이터를위한 데이터베이스로 PHP와 MySQL을 사용하여 구현하고 있습니다. 내가 무슨 짓을했는지 순서대로입니다 : 내가 에 따라 내 훈련 데이터를 분할학습, 검증 및 테스트 분류 자 ​​

  1. 189 훈련 데이터와 21 개 테스트 데이터를 교차 검증을 10 배.
  2. 교육 데이터를 데이터베이스에 삽입하므로 분류 데이터를 기반으로 분류 할 수 있습니다.
  3. 그런 다음 분류 기준을 사용하여 테스트 데이터를 분류합니다. 21 가지 예측 결과가 있습니다. 10 회
  4. 단계를 반복하여 2와 3을 기반으로 10 배 내가 하나를 사용하여 분류 하나의 정확도를 평가 교차 검증
  5. 를, 그래서 10 개 정확도 결과를 얻었다. 그런 다음 결과의 평균을 취합니다.

내가 알고 싶은 것입니다 : 학습 과정은

  1. ? 입력, 프로세스 및 출력은 무엇입니까?
  2. 유효성 검사 프로세스는 무엇입니까? 입력, 프로세스 및 출력은 무엇입니까?
  3. 테스트 프로세스는 무엇입니까? 입력, 프로세스 및 출력은 무엇입니까?

나는 이러한 3 가지 프로세스 (학습, 검증 및 테스트)에 대한 내 이해가 올바른지 확인하고자합니다.

답변

0

예를 들어, 유효성 검사와 테스트간에 의미있는 구분이 없다고 생각합니다. 당신이 당신의 출력은 신경 네트워크의 연결을위한 회귀 모형의 계수 또는 무게로, 일반 매개 변수에 있음을 의미 모델을 훈련 할 때

  • 학습이다. 귀하의 경우, 출력은 짹짹 긍정적 인 P (w | +), 음수 P (w | -) 주어진 단어를보고, 중립적 인 P 주어진 단어를보고 짹짹에 단어 w를 보는 확률에 대한 추정 된 확률입니다 (w | *). 또한 긍정적, 부정적, 중립적 인 P (~ w | +) 등이 주어지는 짹짹에서 단어를 보지 않을 확률이 있습니다. 입력은 훈련 데이터이며, 프로세스는 단어가 나오는 빈도를 측정하여 확률을 추정합니다 (또는 do not occur) 각 학급에서, 즉 단지 세는 것!

  • 테스트은 훈련 된 모델이 이전에 보지 못한 데이터에서 얼마나 잘 작동하는지 보여줍니다. 교육은 초과 교육 훈련 데이터, 즉 계수 또는 확률이 교육 데이터의 잡음에 "조정"되는 출력을 생성하는 경향이 있으므로 훈련되지 않은 데이터에서 모델이 얼마나 잘 작동하는지 확인해야합니다. 귀하의 경우, 입력은 테스트 예제이며 프로세스는 베이 즈 정리를 적용하고 출력은 테스트 사례에 대한 분류입니다 (가장 높은 확률을 기준으로 분류).

내가 교차 검증에 걸쳐 온 - 추가 시험에 - 상황에서 당신이 (사용하는 어떤 모델을 모르거나 추가가있는 경우, "외부", 매개 변수를 추정하기 교육 단계에서는 수행 할 수 없습니다). 데이터를 3 세트로 나눕니다.

따라서, 예를 들어, 선형 회귀에 당신은 즉 y = px + cpc을 추정하거나 y = px + qx^2 + cp, cq을 추정 즉, 차 모형을 적합 할 수 있습니다, 직선 모델에 맞게 할 수 있습니다 . 여기에서하는 일은 데이터를 3 개로 분할하는 것입니다. 데이터의 파트 1 (학습 예제)을 사용하여 직선 및 2 차 모델을 학습합니다. 그런 다음 데이터의 파트 2 (교차 유효성 검증 예제)를 사용하여 어떤 모델이 더 나은지 확인합니다. 마지막으로, 일단 모델을 선택하면 데이터의 파트 3 (테스트 세트)을 사용하여 모델이 얼마나 좋은지 결정합니다. 2 차 모델은 직선 모델보다 항상 트레이닝 데이터에 더 잘 맞을 것이므로 회귀 분석은 좋은 예이므로 교육 데이터의 오류만으로 무엇을 할 것인지 결정할 수는 없습니다.

Naive Bayes의 경우 은 교차 유효성 검사 집합을 사용하여 P (+), P (-), P (*)와 같은 다른 사전 확률을 탐색 한 다음 교차 검증을 사용하여 선택한 사전과 훈련 데이터를 사용하여 추정 된 조건부 확률로 얼마나 잘했는지 보려면 테스트 세트를 사용하십시오. "-"인간

  • T1에서, - 상기 조건부 확률을 계산하는 "+"또는 분류 된 4 트위터를 고려하는 방법의 예로

    는 "싫어 포함 ","분노 ","사랑 "을 포함,
  • T3 +"친구가 없다 ","싫어 않는다 "
  • T2는 +, 포함"- 분노 "
  • 을"
  • T4 것은 포함 "

P (증오 | -)의 경우 혐오 트윗에 증오가 나타나는 횟수를 더합니다. T1에서는 나타나지만 T4에서는 나타나지 않으므로 P (hate | -) = 1/2입니다. P (~ 증오 | -)의 경우 반대 일을합니다. 증오가 부정 트윗 2 개 중 1 개에 나타나지 않으므로 P (~ 증오 | -) = 1/2입니다.

유사한 계산으로 P (분노 | -) = 1, P (사랑 | +) = 1/2이 나온다.

연고에서 파리는 계산 단계에서 어떤 확률이 엉망이 될 것이므로 1 확률을 사용하는 대신 1/n 또는 1/n^2와 같이 매우 낮은 숫자를 사용합니다. 여기서 n은 학습 예제의 수입니다. 따라서 P (~ anger | -) = 1/4 또는 1/16을 넣을 수 있습니다.

(계산에 사용한 수식은 answer입니다.)

+0

귀하의 대답에 이해가 가지 않는 것은 P (~ w | +) 등을 어떻게 계산합니까? 예를 들어 주시겠습니까? 그리고 당신이 할 수있는 경우, 분류와 관련된 예제를 회귀하지 말아주세요. 왜냐하면 제가 제 경우와 관련 지을 때 다소 혼란 스럽기 때문입니다. 기본적으로 교차 검증을 사용하여 어떤 모델이 가장 적합한 모델을 선택합니까? –

+0

아, 그런데 위에서 말한 예제, 데이터를 세 개로 나누는 것에 대한 또 다른 검증 방법은 무엇입니까? 유효성 검사를 교차하지 않습니까? 미안해 내가 틀렸다면. –

+0

@DamarSesarrahman이 첫 번째 의견을 듣고 답을 수정했습니다.데이터를 3으로 나누면 연습 세트, 교차 유효성 검사 세트 및 테스트 세트가 생깁니다. 자세한 정보는 [Andrew Ng의 기계 학습 과정 (https://www.coursera.org/course/ml)] 또는 [cross-validated] (http://stats.stackexchange.com)에서 질문하십시오. – TooTone