기능 확장의 결과


11

현재 SVM을 사용하고 있으며 훈련 기능을 [0,1] 범위로 조정하고 있습니다. 먼저 훈련 세트에 적합 / 변환 한 다음 동일한 변형을 테스트 세트에 적용합니다 . 예를 들면 다음과 같습니다.

    ### Configure transformation and apply to training set
    min_max_scaler = MinMaxScaler(feature_range=(0, 1))
    X_train = min_max_scaler.fit_transform(X_train)

    ### Perform transformation on testing set
    X_test = min_max_scaler.transform(X_test)

트레이닝 세트의 지정된 기능의 범위가 [0,100]이고 테스트 세트의 동일한 기능의 범위가 [-10,120]이라고 가정합니다. 교육 세트에서 해당 기능은 [0,1]로 적절하게 조정되며, 테스트 세트에서 해당 기능은 [-0.1,1.2]와 같이 처음 지정된 것 이외의 범위로 조정됩니다.

테스트 세트 기능의 결과가 모델 학습에 사용되는 기능 범위를 벗어난 결과가 궁금합니다. 이것이 문제입니까?

답변:


6

각 클래스에는 기능에 대한 값의 분포가 있습니다. 그 자체가 걱정할 이유가 아닙니다.

약간 이론적 인 관점에서 기능을 확장해야하는 이유와 정확하게 선택한 방식으로 확장해야하는 이유를 스스로에게 물어볼 수 있습니다.
한 가지 이유는 특정 훈련 알고리즘이 다른 차수를 다루는 기능보다 0-1 정도의 값으로 더 빨리 수렴되는 것으로 알려져 있기 때문입니다. 이 경우 아마도 괜찮을 것입니다. 내 생각에 SVM은 훌륭합니다. 내부 제품으로 인해 너무 많은 수를 피하고 싶지만 최대 1.2 대 최대 1.0은 큰 차이가 없습니다.
(OTOH, 예를 들어 알고리즘이 음수 값을 허용하지 않는 것으로 알고 있다면 문제가 될 것입니다.)

실제적인 질문은 훈련 범위에서 약간 벗어난 경우 모델의 성능이 좋은지 여부입니다. 이것은 최선의 방법이라고 생각할 수 있으며 그러한 경우로 테스트하거나 훈련 영역 외부의 경우 성능 저하가 있는지 테스트 결과를 검사하여 대답 할 수 있습니다. 이것은 유효한 관심사이며이를 조사하는 것은 모델 검증의 일부입니다.

설명하는 크기의 차이를 관찰하는 것은 모델 안정성을 면밀히 검토해야하는 이유입니다.


7

이것은 주석으로 의도되었지만 너무 깁니다.

테스트 세트가 다른 범위를 가지고 있다는 사실 은 트레이닝 세트가 테스트 세트를 잘 표현하지 못한다는 신호일 있습니다. 그러나 예제와 같이 차이가 실제로 작은 경우 예측에 영향을 미치지 않을 수 있습니다. 불행히도, 나는 그것이 어떤 상황에서도 SVM에 영향을 미치지 않을 것이라고 생각할 충분한 이유가 있다고 생각하지 않습니다.

MinMaxScalar 사용에 대한 근거는 다음과 같습니다 (문서에 따라).

이 스케일링을 사용하려는 동기에는 기능의 매우 작은 표준 편차에 대한 견고성 및 희소 데이터의 0 항목 보존이 포함됩니다.

따라서 데이터가 해당 사례에 맞는지 확인하는 것이 중요합니다.

차이 범위에 대해 정말로 우려하는 경우 preprocessing.scale대신 정규 표준화 (예 :)를 사용해야합니다 .


로버트 안녕하세요, 답장을 보내 주셔서 감사합니다! 훈련 / 테스트 세트의 표현에 대한 좋은 지적이지만 이것은 새로운 데이터가 들어 오면 시계열 데이터이므로 값이 이전과 범위가 비슷하다는 것을 보장 할 수는 없습니다. 어떤 상황에서도 SVM에 영향을 미치지 않을 것이라고 생각할만한 이유가 없다고 생각합니다.
mike1886 2014

MinMaxScaler와 표준화를 사용하여 예측을 비교 했습니까?
Robert Smith

나는 가지고 있고 결과는 비슷하지만 실제로 MinMaxScalar에 문제가 있는지는 알 수 없습니다.
mike1886

확실한. 어쨌든에서 가치있는 것을 얻지 못하면 표준화를 사용하는 것이 좋습니다 MinMaxScaler.
Robert Smith
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.