2016-08-01 3 views
4

난 그냥 무작위 숲을 배우기 시작, 그래서이 바보 같은 소리하면 내가 그것을sklearn countvectorizer의 fit_transform과 transform의 차이점은 무엇입니까?

나는 최근 bag of words introduction : kaggle 연습했다

, 나는 몇 가지 삭제하려는에 대해 매우 유감스럽게 생각한다 : (vectorizer.fit_transform를 사용

을 우리는 기차 리뷰 단어 배열의 가방을 준비했을 때 우리가 fit_predic를 사용하는 지금)

을 "* 목록에 리뷰 * 청소" t 열차 리뷰의 목록에서 fit_predict는 두 가지 일을한다.> 먼저 데이터에 적합하고 어휘을 알고 각 리뷰에서 벡터를 만든다.

따라서 우리가 vectorizer.transform ("청소 기차 리뷰의 목록")을 사용할 때 이것은 단지 각각의 검토를 위해 벡터에 테스트 리뷰의 목록을 변환.

내 질문에 ..... 왜 사용하지 마십시오 fit_transform도 테스트 목록에! 나는 그것이을 overfitting 리드라는 문서에서 의미하지만하지 기다려야하는 것은 어쨌든 그것을 사용하는 나에게 의미가, 내가 당신에게 줄 수 있도록 내 미래 :

우리는 우리가 본질적으로 말하는 fit_transform 사용하지 않는 경우 기차 리뷰의 가장 빈번한 단어를 사용하여 테스트 리뷰의 특징 벡터를 만드십시오 !! 왜 테스트 필자는 테스트 필자가 가장 자주 사용하는 단어를 사용하여 배열을 배열하지 않습니까?

나는 임의의 치료를 의미합니까? 임의의 숲 열차 기능 배열 및 열차 기능 정서 작동 및 자체 훈련 후 시험기능 배열 감정에 대한 예측을 제공하지 않습니다.

참고 : 나는

답변

5

당신은 테스트 데이터에 fit_transform을하지 .. 좀 더 명확하게하는 질문을 업데이트합니다 대답을 시도 올바른 방법으로하지만, 사람으로 물었다하지 않을 때 때문에 임의 포리스트 (Random Forest)에 적합하면 임의 포리스트는 사용자가 제공 한 기능 값을 기반으로 분류 규칙을 학습합니다. 이러한 규칙을 테스트 집합을 분류하는 데 적용하려면 테스트 기능이 동일한 어휘를 사용하여 같은 방식으로 계산되는지 확인해야합니다. 교육 및 테스트 기능의 어휘가 다른 경우 기능은 실제로 문서가 학습 된 것과 별도의 어휘를 반영하므로 실제로 의미가 없습니다.

  1. 개는 검은 색이다 : 우리는 구체적으로는 약 CountVectorizer 이야기 경우

    지금, 당신의 훈련 데이터는 다음과 같은 3 개 문장을 보자, 다음 예제를 고려하십시오.

  2. 하늘이 파란색입니다.
  3. 개가 춤을 추고 있습니다.

이제이 단어 집합은 {Dog, is, black, sky, blue, dancing}이됩니다. 이제 랜덤 포레스트 (Random Forest)는 6 가지 어휘 용어의 수에 따라 규칙을 배우려고 노력할 것입니다. 그래서 당신의 특징은 길이 6의 벡터가 될 것입니다. 이제 시험 세트는 다음과 같습니다 :

  1. 개가 하얗습니다.
  2. 하늘이 검정입니다.

이제 fit_transform에 대한 테스트 데이터를 사용하면 어휘는 {Dog, white, is, Sky, black}처럼 보입니다. 여기에서 각 문서는 길이 5의 벡터로 표시되어 각 용어의 수를 나타냅니다. 자, 이것은 사과와 오렌지를 비교하는 것과 같습니다. 이전 어휘의 수에 대한 규칙을 배우고이 규칙을이 어휘에 적용 할 수 없습니다. 이것이 훈련 데이터에 fit 만있는 이유입니다.

희망 하시겠습니까?