Advertisement
toweber

simple_neural_network_mlp_sklearn_challenge_PANDAS_simples

Mar 26th, 2021 (edited)
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.36 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.  
  8. from sklearn.datasets import make_classification
  9. import pandas as pd
  10.  
  11.  
  12. dataset = pd.read_csv("dataset.csv")
  13. # agora temos na variável "dataset" um dataframe. Esse é um tipo de variável específica do Pandas. Precisaremos extrair dela o nosso conjunto X e Y, no qual X são os dados de entrada e Y são os valores de saída. Mas antes, vamos analisar esta variável
  14. ipdb.set_trace()
  15. nome_das_colunas = dataset.columns
  16. # -> o nome das colunas (que está na primeira linha do CSV)... todas exceto a última (em nosso exemplo hipotético) são os atributos de entrada. Em geral, a última coluna é o que tentaremos prever (a saída).
  17.  
  18. nome_dos_atributos = dataset.columns[0:-1]    
  19. # - isso quer dizer que pegaremos os valores que estão no índice que vai de 0 até o penúltimo item. Por exemplo, se quero pegar os primeiros 3 valores desta lista, posso dizer: dataset.columns[0:2].   No nosso caso, que é pegar até o penúltimo valor, poderia ser abreviado para dataset.columns[:-1].
  20.  
  21. nome_da_variavel_de_saida = dataset.columns[-1] # -> pegamos só o nome da última coluna,
  22. #- agora temos o nome dos atributos de entrada, e o nome da variável de saída, mas o que precisamos são os dados. Para mostrar todos os dados (incluindo entradas e saídas)
  23.  
  24. values = dataset.to_numpy()
  25. # - como sabemos que a última coluna (pode ser mais que a última, mas em nosso exemplo hipotético é apenas a última) representa as saídas, as entradas vão ser tudo menos a última coluna:
  26.  
  27. X = values[:,:-1]   # o primeiro ":" (antes da vírgula) diz que pegarei todas as linhas. Depois da vírgula, o ":-1" diz que pegarei todas as colunas exceto a última.
  28. Y = values[:,-1]   # e as saídas vão ser apenas a última coluna
  29.  
  30. #usar valores de 0 a 1, ou de -1 a 1
  31. #X = [[0, 0], [0, 1], [1, 0], [1, 1]]
  32. #Y = [0, 1, 1, 0]
  33.  
  34. clf = MLPClassifier(solver='sgd', hidden_layer_sizes=(5),
  35.                     activation='tanh',
  36.                     learning_rate_init=0.5,
  37.                     #random_state=0,
  38.                     )
  39.  
  40. clf.fit(X, Y)
  41. predictedY = clf.predict(X)
  42. accuracy = accuracy_score(Y, predictedY)
  43. #similar a clf.score(X,Y)
  44.  
  45. print("Predicted outputs: %s" %predictedY)
  46. print("Accuracy: %s" %accuracy)
  47.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement