2017-12-12 14 views
0

이 책의 7 장 "TensorFlow 기계 학습 요리 책"데이터 처리에서 저자는 fit_transform scikit의 기능을 사용하여 tfidf 텍스트 훈련 기능을 익히십시오. 작성자는 열차를 분리하고 기능을 테스트하기 전에 모든 텍스트 데이터를 제공합니다. 그것은 진실한 행동입니까 아니면 먼저 데이터를 분리 한 다음 열차에서 tfidf fit_transform을 수행하고 테스트시 transform을 수행해야합니까?tfidf 모든 데이터 세트 또는 훈련 데이터

+1

그런 시나리오에서 항상 현실 세계 문제에서해야 할 일을 생각하십시오. 여기서 모든 사용 가능한 데이터를 열차 및 새로운 보이지 않는 데이터로 테스트합니다. 이 경우 테스트 데이터를 사용할 수 없으므로 지금부터해야 할 일이 있습니다. 사용 가능한 데이터를 기차 및 테스트로 분할하는 과정은 동일한 데이터를 복제하는 것입니다. –

+1

@Vivek Kumar 예, 사실 실제 문제의 데이터를 테스트하지 않았기 때문에 사실 모든 데이터에 대한 fit_transform 접근 방식이 사실이 아닙니다. – keramat

+0

예. 따라서 기차 데이터에 fit() 또는 fit_transform() 만 수행하십시오. –

답변

1

나는이 책을 읽지 않았으며 이것이 실제로 책의 실수인지는 모르지만 나는 2 센트를 줄 것이다. 의 문서에 따르면 scikit 배우기

, fit()

하기 위해 사용되는 훈련 세트에서 어휘와 IDF를 알아보세요. 한편

, fit_transform()

IDF 어휘 학습하기 위해 사용되는, 용어 - 문서 행렬을 반환한다.

transform()

을 변환하는 동안 문서를 문서 용어하는 매트릭스. 교육에

는 적용 할 필요가 설정 한 테스트 설정에 fit()transform() (또는 본질적으로 두 작업을 조인 단지 fit_transform()는) 그러나, 당신은 단지 transform() 테스트 인스턴스 (즉, 문서)에 필요한 양.

는 설정을 테스트하는 것은 훈련 된 모델은 새로운 보이지 않는 데이터 포인트에 잘 일반화 할 수 있는지 여부를 평가하기 위해 사용되는 반면 교육 세트 (학습 fit()을 통해 이루어진다) 학습 목적을 위해 사용되는 기억하십시오.

+0

예, 그렇습니다. 교육에 테스트 데이터를 사용해서는 안됩니다. 모든 데이터 세트에 fit_transform을 적용하면 교육 수준에서 테스트 데이터를 사용하고 있음을 의미합니다. 또한이 두 가지 방식으로 결과 어휘가 다릅니다. – keramat