기능 확장의 결과


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.