1
resposta

Normalização de dados

nesse aula, entendi que para alguns modelos deve-se normalizar os dados a fim de evitar que as escalas interfiram nas rprevisões, porém ao dividir os dados em treino/teste, apenas a variável x foi normalizada, no caso não deveríamos normalizar o treino_y e teste_y?

from sklearn.preprocessing import StandardScaler

raw_treino_x, raw_teste_x, treino_y, teste_y = train_test_split(x, y, random_state=SEED, stratify=y)
print(f"Treinaremos com {len(raw_treino_x)}")
print(f"Testaremos com {len(raw_teste_x)}")

scaler = StandardScaler()
scaler.fit(raw_treino_x)

treino_x = scaler.transform(raw_treino_x)
teste_x = scaler.transform(raw_teste_x)

modelo = SVC(gamma='auto')
modelo.fit(treino_x, treino_y)
previsoes = modelo.predict(teste_x)

acuracia = accuracy_score(teste_y, previsoes) * 100
print(f"A acurácia foi de {acuracia:.2f}%")
1 resposta

Oii, Luiz! Tudo bem?

Quando trabalhamos com modelos de machine learning, como o SVM, a normalização é aplicada geralmente apenas às variáveis de entrada (features), ou seja, treino_x e teste_x. Porque a normalização ajuda a colocar todas as features na mesma escala, evitando que alguma delas tenha uma influência desproporcional no modelo devido a diferenças de magnitude.

Já as variáveis de saída (treino_y e teste_y) representam as classes que queremos prever e, normalmente, não precisam ser normalizadas. Isso se deve ao fato de a normalização ser mais relevante para dados contínuos e numéricos, enquanto as classes de saída geralmente são categóricas (como em classificação) ou já estão em uma escala adequada para o problema.

Espero ter ajudado, bons estudos!