Home › Forums › Fórum Estatística para Ciência de Dados e Machine Learning › Padronização e zscore(knn)
Tagged: Padronização (z-score) e k-NN
- This topic has 3 replies, 2 voices, and was last updated 4 years ago by
Denny Ceccon.
- AuthorPosts
- 11 de maio de 2022 at 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 at 12:15 #34601Olá Caio, você pode especificar a qual aula exatamente se refere?
13 de maio de 2022 at 18:14 #34612aula 16,tópico 6
14 de maio de 2022 at 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. - AuthorPosts
- You must be logged in to reply to this topic.
