테스트 데이터에도 정규화를 적용해야합니까?


17

저자 식별 문제에 관한 프로젝트를하고 있습니다. 데이터를 훈련시키기 위해 tf-idf 정규화를 적용한 다음 해당 데이터에 대해 svm을 훈련했습니다.

이제 분류기를 사용할 때 테스트 데이터도 정규화해야합니다. 정규화의 기본 목표는 학습 알고리즘이 학습하는 동안 더 중요한 기능에 더 많은 가중치를 부여하는 것입니다. 일단 훈련을 마치면 어떤 기능이 중요하지 않은지 이미 알고 있습니다. 테스트 데이터에도 정규화를 적용해야합니까?

나는이 분야에 처음이다. 질문이 어리석은 경우 무시하십시오.


4
시험 데이터는 훈련 데이터와 동일한 규모 여야합니다.
Jon

답변:


37

예. 알고리즘이 정규화 된 훈련 데이터와 함께 작동하거나 정규화 된 훈련 데이터가 필요한 경우 테스트 데이터에 정규화를 적용해야합니다.

모델이 입력 벡터가 제공하는 표현에서 작동하기 때문입니다. 그 숫자의 규모는 표현의 일부입니다. 이것은 피트와 미터 사이의 변환과 약간 같습니다. . . 모델이나 공식은 일반적으로 한 가지 유형의 단위로만 작동합니다.

정규화가 필요할뿐만 아니라 훈련 데이터와 동일한 스케일링을 적용해야합니다. 이는 트레이닝 데이터에 사용 된 스케일과 오프셋을 저장하고 다시 사용하는 것을 의미합니다. 일반적인 초보자 실수는 열차와 테스트 데이터를 별도로 정규화하는 것입니다.

Python과 SKLearn에서는 다음 과 같이 Standard Scaler를 사용하여 입력 / X 값을 정규화 할 수 있습니다 .

scaler = StandardScaler()
train_X = scaler.fit_transform( train_X )
test_X = scaler.transform( test_X )

train_X매개 변수에 맞는 함수를 사용하여 변환 한 다음 어떻게 정규화되는지 확인하십시오 . test_X열차 데이터에서 얻은 것과 동일한 매개 변수를 사용하여 변환이 변환되는 동안 .

적용하는 tf-idf 정규화는 데이터 세트 전체에서 일부 매개 변수 (모든 문서의 단어 빈도)를 배우고 각 문서에서 찾은 비율을 사용하므로 비슷하게 작동합니다.


* 일부 알고리즘 (예 : 의사 결정 트리 기반 알고리즘)은 정규화 된 입력이 필요하지 않으며 고유 한 스케일이 다른 기능에 대처할 수 있습니다.


테스트의 정규화 매개 변수가 교육에서 결정된 것과 동일해야 함을 설명하는 +1 이 논리가 모든 유효성 검사 세트로 확장된다는 것을 이해합니다.
Greenstick

@Greenstick : 물론, 모델에 공급 된 모든 데이터의 처리로 확장됩니다. 모델이 생산 추론에 사용될 경우 새 데이터 포함 나는 모든 것을 다루지 않고 대답이 충분히 길다고 생각하며 유효성 검사 데이터를 분리하는 지점이 많이 다릅니다 (많은 모델이 훈련 단계에 내장되어 있음). 코드 예제를 보여줄 수 없었습니다.
Neil Slater

2
훈련 데이터로 시험 데이터를 스케일링 (fit_transform)해야합니까? 아니면 동일한 스케일 (scaler.transform)을 사용하여 별도로합니까?
밥 에버트

2
@ 밥 에버트 : 당신도 할 수 있습니다. 스케일러를 결합 된 데이터 세트에 맞추면 기술적으로 테스트에서 훈련까지 소량의 정보가 유출 될 수 있습니다. 따라서 "공식"버전은 스케일러를 트레이닝 데이터에만 맞추고 다른 모든 데이터에 적용 할 수 있습니다. 그 이후의 데이터 세트. 그러나이 누출은 매우 작으며 스케일러를 모든 데이터에 맞추면 실제로 문제가되는 것을 본 적이 없습니다.
Neil Slater

테스트 데이터에 훈련 세트 파생 스케일링을 사용해야한다는 가정을 확인해 주셔서 감사합니다. 그러나 이것에 대한 설명과의 링크를 제공 할 수 있습니까? 편집 : 신경 쓰지 말고
crazysantaclaus

6

확실히 데이터를 표준화해야합니다. 다음 목표에 대한 데이터를 정규화합니다.

  • 학습 과정을 가속화하기 위해 동일한 규모로 다른 기능을 사용합니다.

  • 스케일을 돌보지 않고 다른 기능을 공정하게 돌보는 경우.

학습 후 학습 알고리즘은 데이터를 스케일 형식으로 처리하는 방법을 배웠으므로 학습 데이터에 사용되는 정규화 매개 변수를 사용하여 테스트 데이터를 정규화해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.