sábado, 7 de setembro de 2019

Deep Learn com Iris em Python

#pip inatall tensorflow
#pip install keras
from sklearn import datasets
from sklearn.model_selection import train_test_split
from yellowbrick.classifier import ConfusionMatrix
from keras.models import Sequential
from keras.layers import Dense
from keras.utils import np_utils
import numpy as np


base = datasets.load_iris()
previsores = base.data
classe = base.target

classe_dummy = np_utils.to_categorical(classe)#separa em classes

x_treinamento, x_teste, y_treinamento, y_teste = train_test_split(previsores,
                                                                  classe_dummy,
                                                                  test_size = 0.3,
                                                                  random_state = 0)
#class dummy para ficar todos os dados em uma unica matrix
modelo = Sequential()#uma camada após a outra
#adicionar camadas - no ex terá 5 camadas (units)
modelo.add(Dense(units = 5, input_dim = 4)) #input entrada - quantas atributos/neoronios (4 são numero de atributos iris) o valor 5 está na aula de r
modelo.add(Dense(units = 4))
modelo.add(Dense(units = 3, activation = 'softmax')) #quando tiver mais de duas classes usar este (saida 3 que são as saidas Vesicolor, sestosa e )

modelo.summary()
#para visualizar
#from keras.util.vis_utils import plot_model   precisa de um programa pra ler
modelo.compile(optimizer = 'adam', loss = 'categorical_crossentropy',
               metrics = ['accuracy']) #adma é uma funçao / categorical_crossentroppy funcao/ accuraci / taxa de acerto
modelo.fit(x_treinamento, y_treinamento, epochs = 1000,
validation_data = (x_teste, y_teste)) #epoch numero de revelidação
previsoes = modelo.predict(x_teste)
previsoes = (previsoes > 0.5) #definir que se mais de 50% ELE É DA CLASSE
v = ConfusionMatrix()# vai dar erro, precisa convertter
y_teste_matrix = (np.argmax(t) for t in y_teste) #vai pegar o maximo argumento
y_previsao_matrix = (np.argmax(t) for t in previsoes)
confusao = ConfusionMatrix(y_teste_matrix, y_previsao_matrix)

Neste caso ele teve acerto de 98% na determinação da espécie

Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.