<jupyter_start><jupyter_text><jupyter_code>import pandas as pd 

from sklearn.model_selection import train_test_split 

from sklearn.naive_bayes import GaussianNB 

from sklearn.preprocessing import LabelEncoder 

from sklearn.metrics import confusion_matrix, accuracy_score 

import matplotlib.pyplot as plt

import seaborn as sns

from yellowbrick.classifier import ConfusionMatrix 

from sklearn.tree import DecisionTreeClassifier 

import graphviz 

from sklearn.tree import export_graphviz
#buscando dados
dados = pd.read_csv('iris.csv') 
#viasualizando dados
dados
#gerando um gráfico dividido por medição e espécie
fig, (axis1, axis2, axis3, axis4) = plt.subplots(1,4, figsize=(18,6))

sns.boxplot(x='variety', y='sepal.length', data=dados, ax=axis1)
sns.boxplot(x='variety', y='sepal.width', data=dados, ax=axis2)
sns.boxplot(x='variety', y='petal.length', data=dados, ax=axis3)
sns.boxplot(x='variety', y='petal.width', data=dados, ax=axis4);
#criando uma variável somente com as colunas 1 a 3, que correspondem aos valores das medições
previsores = dados.iloc[:,0:4].values
#visualizando os tipos de classes referentes aos dados
dados.variety.unique()
#criando uma variável com a 4 coluna, com os valores da classe
classe = dados.iloc[:,4].values
#visualizando a variável classe
classe
#visualizando a variável previsores
previsores
#gerando os valores de treinamento e de teste, deixando 70% como treino e 30% como teste
X_treinamento, X_teste, y_treinamento, y_teste = train_test_split(previsores, classe, test_size = 0.3) 
#utilizando o método Naive Bayes para classificcação
naive_bayes = GaussianNB() 
naive_bayes.fit(X_treinamento, y_treinamento) 
#criando as previsões baseadas nos valores de teste de X
previsoes = naive_bayes.predict(X_teste)
previsoes
#criando a matriz de confusão 
confusao = confusion_matrix(y_teste, previsoes) 
#visualizando a matriz de confusão
confusao
#calculando a acurácia do modelo
taxa_acerto = accuracy_score(y_teste, previsoes) 
taxa_erro = 1 - taxa_acerto
#taxa de acerto
taxa_acerto
#taxa de erro
taxa_erro
#gerando a mesma matriz de confusão, porém melhor detalhada
from yellowbrick.classifier import ConfusionMatrix 

v = ConfusionMatrix(GaussianNB()) 

v.fit(X_treinamento, y_treinamento) 

v.score(X_teste, y_teste) 

v.poof() 
#adicionando novos dados, para fazer a previsão de acordo com os dados antigos
novo_dado = pd.read_csv('novaplanta.csv') 

novo_dado = novo_dado.iloc[:,0:4].values 

#visualizando novos dados
novo_dado
#prevendo qual as espécies de cada dado novo, sendo os dois primeiros classificados como Setosa e o terceiro como Versicolor de acordo com o o modelo Naive Bayes
naive_bayes.predict(novo_dado)
#fazendo classificação criando arvores de decisão

import pandas as pd 

from sklearn.model_selection import train_test_split 

from sklearn.preprocessing import LabelEncoder 

from sklearn.metrics import confusion_matrix, accuracy_score 

from sklearn.tree import DecisionTreeClassifier 

import graphviz 

from sklearn.tree import export_graphviz 

#criando a arvore
arvore = DecisionTreeClassifier() 

arvore.fit(X_treinamento, y_treinamento)
#gerando arquivo para visualização da arvore de decisão
export_graphviz(arvore, out_file = 'tree.dot') 
#fazendo a previsão
previsoes = arvore.predict(X_teste)
#criando a matriz e confusão
confusao = confusion_matrix(y_teste, previsoes) 
#visualizando a matriz de confusão
confusao
# calculando a acurácia do modelo
taxa_acerto = accuracy_score(y_teste, previsoes) 
taxa_erro = 1 - taxa_acerto 
taxa_acerto
taxa_erro
#classificando por svm

import pandas as pd 

from sklearn.model_selection import train_test_split 

from sklearn.preprocessing import LabelEncoder 

from sklearn.metrics import confusion_matrix, accuracy_score 

from sklearn.svm import SVC 

from sklearn.ensemble import ExtraTreesClassifier 
svm=SVC()
svm.fit(X_treinamento, y_treinamento)
previsoes = svm.predict(X_teste) 
#calculando a acurácia do modelo
taxa_acerto = accuracy_score(y_teste, previsoes) 
taxa_acerto
#utilizando diversas arvores para criar um modelo
forest = ExtraTreesClassifier() 
forest.fit(X_treinamento, y_treinamento) 
#gerando a importancia de cada coluna para a acurácia do modelo
importancias = forest.feature_importances_ 
importancias
#gerando a variavel de treino com a seleção de atributos mais importantes
X_treinamento2 = X_treinamento[:,[0,2,3]] 
#gerando a variavel de teste com a seleção de atributos mais importantes
X_teste2 = X_teste[:,[0,2,3]] 
#gerando o modelo svm
svm2 = SVC() 
#gerando o modelo svm
svm2.fit(X_treinamento2, y_treinamento)
#gerando as previsões do modelo
previsoes2 = svm2.predict(X_teste2) 
previsoes2
#calculando a acurácia do modelo
taxa_acerto = accuracy_score(y_teste, previsoes2) 
taxa_acerto
#machine leaning baseado em instâncias

from sklearn.model_selection import train_test_split 

from sklearn.metrics import confusion_matrix, accuracy_score 

from sklearn.neighbors import KNeighborsClassifier 

from sklearn import datasets 

from scipy import stats 

  
#puxando a base de dados
iris = datasets.load_iris() 
#descrevendo a base de dados
stats.describe(iris.data) 
previsores = iris.data 
previsores
classe = iris.target 
classe
X_treinamento, X_teste, y_treinamento, y_teste = train_test_split(previsores,classe,test_size = 0.3) 
#criando o modelo para relacionar com os vizinhos
knn = KNeighborsClassifier(n_neighbors = 3)
#treinamento do modelo
knn.fit(X_treinamento, y_treinamento) 
#testando o modelo
previsoes = knn.predict(X_teste) 
#criando a matriz de confusão
confusao = confusion_matrix(y_teste, previsoes) 
confusao
#medindo acurácia do modelo
taxa_acerto = accuracy_score(y_teste, previsoes) 
taxa_acerto
#gerando várias arvores de decisão e utilizar a resposta de varias dessa arvores para classificar

import pandas as pd 

from sklearn.model_selection import train_test_split 

from sklearn.preprocessing import LabelEncoder 

from sklearn.metrics import confusion_matrix, accuracy_score 

from sklearn.ensemble import RandomForestClassifier 
dados = pd.read_csv('iris.csv')
previsores = dados.iloc[:,0:4].values
classe = dados.iloc[:,4].values 
X_treinamento, X_teste, y_treinamento, y_teste = train_test_split(previsores, classe, test_size = 0.3) 
floresta = RandomForestClassifier(n_estimators = 100)
floresta.fit(X_treinamento, y_treinamento) 
previsoes = floresta.predict(X_teste) 
confusao = confusion_matrix(y_teste, previsoes) 
confusao
#calculando acurácia do modelo
taxa_acerto = accuracy_score(y_teste, previsoes) 
taxa_acerto
#mostrar todas as arvores que foram criadas
floresta.estimators_ 
#No caso de querer visualizar alguma das arvores
floresta.estimators_[1]<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.06709503885236102, 'fraction_numerical': 0.008517632994620442, 'mean_word_length': 6.2513542795232935, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '1', 'dir': 'jupyter-structured-clean-dedup', 'id': '642187', 'license': 'MIT', 'n_tokens_mistral': 2548, 'n_tokens_neox': 2472, 'n_words': 665, 'path': 'Script/Machine_learning_com_iris.ipynb', 'repo_name': 'Lmagalhaesf/Machine-learning-com-iris', 'size': '6692'}