Home › Fóruns › Fórum Estatística para Ciência de Dados e Machine Learning › Padronização e zscore(knn)
Marcado: Padronização (z-score) e k-NN
- Este tópico contém 3 respostas, 2 vozes e foi atualizado pela última vez 2 anos, 8 meses atrás por Denny Ceccon.
- AutorPosts
- 11 de maio de 2022 às 17:34 #34592
Professor,eu to com a seguinte dúvida,nesse caso de padrozinação,usamos um standartscaler para a base de teste e outro para a base de treinamento,por causa que suas estatisticas são diferentes(media,moda e mediana).Mas se ao invés do traint-test-split.eu usasse a validação cruzada,teria necessidade de fazer esse processo?
12 de maio de 2022 às 12:15 #34601Olá Caio, você pode especificar a qual aula exatamente se refere?
13 de maio de 2022 às 18:14 #34612aula 16,tópico 6
14 de maio de 2022 às 09:47 #34616Bem observado, Caio! Neste caso, você não vai poder usar a função
cross_val_score
, e precisa fazer uma implementação manual. Seria mais ou menos assim:from sklearn.model_selection import StratifiedKFold from sklearn.preprocessing import StandardScaler from sklearn.neighbors import KNeighborsClassifier from sklearn.metrics import accuracy_score skf = StratifiedKFold(n_splits=5) z_score_treinamento = StandardScaler() z_score_teste = StandardScaler() accuracy_folds = [] for train_index, test_index in skf.split(X, y): X_treinamento, y_treinamento = X[train_index], y[train_index] X_teste, y_teste = X[test_index], y[test_index] X_treinamento_p = z_score_treinamento.fit_transform(X_treinamento) X_teste_p = z_score_teste.fit_transform(X_teste) knn = KNeighborsClassifier() knn.fit(X_treinamento_p, y_treinamento) previsoes = knn.predict(X_teste_p) accuracy = accuracy_score(y_teste, previsoes) accuracy_folds.append(accuracy)
Ou seja, os splits são produzidos manualmente através da classe
StratifiedKFold
, aí cada split é padronizado, o modelo é treinado, a acurácia é calculada e o resultado é acumulado na listaaccuracy_folds
. - AutorPosts
- Você deve fazer login para responder a este tópico.