toweber

simple_neural_network_mlp_sklearn_challenge_make_classification_train_validation_testPART4GridSearch

Mar 26th, 2021 (edited)
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.03 KB | None | 0 0
  1. import os
  2. import ipdb
  3. import numpy as np
  4. import matplotlib.pyplot as plt
  5. from sklearn.neural_network import MLPClassifier
  6. from sklearn.metrics import accuracy_score
  7. from sklearn.datasets import make_classification
  8. from sklearn.preprocessing import OneHotEncoder, MinMaxScaler, StandardScaler
  9. from sklearn.model_selection import train_test_split
  10. from sklearn.model_selection import cross_val_score
  11. from sklearn.model_selection import GridSearchCV
  12.  
  13.  
  14. X, Y = make_classification(n_samples=100, n_features=5, n_informative=3, n_redundant=1, n_repeated=0, n_classes=2, random_state=0)
  15.  
  16. # observe as dimensões das entradas usando o "shape" do NumPy
  17. # observe os valores das entradas e saídas para ver se estão próprios para treinamento
  18. # adapte os valores das entradas e saídas
  19.  
  20. scaler = MinMaxScaler()
  21. X_scaled = scaler.fit_transform(X)
  22. X = X_scaled
  23.  
  24. # divida os dados em treinamento e teste
  25. # faça Treino ter 60%, Validação ter 20%,  Teste ter 20%
  26. X_train_and_val, X_test, Y_train_and_val, Y_test = train_test_split(X, Y, test_size=0.2, random_state=0)
  27. # divida os dados em treinamento e validação
  28. #X_train, X_validation, Y_train, Y_validation = train_test_split(X_train_and_val, Y_train_and_val, test_size=0.2/0.8, random_state=0)
  29.  
  30.  
  31.  
  32.  
  33.  
  34. # Faça um loop variando o número de layers na camada escondida de 1 até 10
  35. best_index = -1
  36. scores = []
  37. complexity = []
  38.  
  39.  
  40. # instead of the "manual" loop, let's use a grid
  41. clf = MLPClassifier(solver='sgd', hidden_layer_sizes=(5),
  42.                     activation='tanh',
  43.                     learning_rate_init=0.5,
  44.                     random_state=0,
  45. )
  46.  
  47. param_grid = [
  48.     { 'activation': ['tanh', 'logistic'], 'learning_rate_init' : [0.1 , 0.3, 0.5, 0.7]}
  49.     ]
  50.  
  51.  
  52. clf = GridSearchCV( MLPClassifier(), param_grid, scoring='accuracy', cv=5)
  53.  
  54.  
  55. clf.fit(X_train_and_val, Y_train_and_val)
  56. print("Best parameters set found on gridsearch:")
  57. print()
  58. print(clf.best_params_)
  59.  
  60.  
  61. print(clf.cv_results_['std_test_score'])  # mostra os resultados para do conj validação para cada oteração
  62.  
Add Comment
Please, Sign In to add comment