1
resposta

Standard Scaler no LinearSVC

Gostaria de saber se usar o Standar Scaler com o modelo LinearSVC tem algum impacto negativo? Se é boa prática não usar ou algo do genêro. Se sim, porquê?

1 resposta

Olá Gabriel.

No exemplo da documentação do LinearSVC é utilizado o StandardScaler então já é um sinal de que não é algo que não é recomendado.

>>> from sklearn.svm import LinearSVC
>>> from sklearn.pipeline import make_pipeline
>>> from sklearn.preprocessing import StandardScaler
>>> from sklearn.datasets import make_classification
>>> X, y = make_classification(n_features=4, random_state=0)
>>> clf = make_pipeline(StandardScaler(),
...                     LinearSVC(random_state=0, tol=1e-5))
>>> clf.fit(X, y)
Pipeline(steps=[('standardscaler', StandardScaler()),
                ('linearsvc', LinearSVC(random_state=0, tol=1e-05))])

Mas podemos ir mais a fundo e irmos nas recomendações que a documentação faz para as Support Vector Machines (SVM), lá é dito que as SVM são variantes a escala e que é altamente recomendado reescalar seus dados.

  • Support Vector Machine algorithms are not scale invariant, so it is highly recommended to scale your data. For example, scale each attribute on the input vector X to [0,1] or [-1,+1], or standardize it to have mean 0 and variance 1. Note that the same scaling must be applied to the test vector to obtain meaningful results. This can be done easily by using a Pipeline:

Então sim, você pode usar StandardScaler quando estiver usando as SVM e olhando pela documentação concluímos que você deve utilizar, para obter os melhores resultados.

Espero ter ajudado, qualquer duvida não hesite em perguntar.

Bons Estudos.