Análise de árvore de decisão e agrupamento de médias K usando o conjunto de dados Iris.

Conteúdo

Este artigo foi publicado como parte do Data Science Blogathon

Introdução:

Como todos sabemos, A inteligência artificial está sendo amplamente usada ao nosso redor: desde a leitura de notícias em seu dispositivo móvel ou análise de dados complexos em seu local de trabalho, IA melhorou a velocidade, precisão e eficácia do esforço humano. Os avanços na IA nos ajudaram a alcançar coisas que antes pensávamos que não eram possíveis. Até comer uma pizza do seu restaurante favorito em casa está a apenas um clique de distância, graças a AI.

Em poucas palavras, inteligência artificial significa um computador ou programa de computador que imita a inteligência humana. É conseguido aprendendo como você pensa, aprender, decide e trabalha o cérebro humano enquanto resolve um problema. Os resultados deste estudo são então usados ​​como base para o desenvolvimento de sistemas inteligentes e software..

Existem 4 tipos de aprendizagem:

Aprendizagem supervisionada.

Aprendizagem não supervisionada.

Aprendizagem semissupervisionada.

Aprendizagem reforçada.

Supervisionado Sem supervisão Semi-supervisionado Reforçado
Aprendizagem supervisionada é quando o modelo é treinado em um conjunto de dados rotulado. o Aprendizado não supervisionado é quando o modelo é treinado num conjunto de dados não rotulado, cabe ao algoritmo encontrar padrões subjacentes nos dados. Situa-se entre a aprendizagem supervisionada e não supervisionada, nisto, alguns dados de aprendizagem são rotulados e outros não. O algoritmo avalia seu desempenho com base nas respostas de feedback e reage de acordo.

Este blog cobre o aprendizado de IA supervisionado e não supervisionado, usando conjunto de dados Python e Iris.

Tabela de conteúdo:

  1. Introdução
  2. Conjunto de dados Iris
  3. Aprendizagem supervisionada
  4. Árvore de decisão
  5. Regressão logística
  6. Aprendizagem não supervisionada
  7. Agrupamento de meias K
  8. Conclusão e referências

Conjunto de dados Iris:

O conjunto de dados contém 3 aulas com 50 cada instância e 150 instâncias totais, onde cada classe se refere a um tipo de planta de íris.

Classe: Silky Iris, Iris Versicolor, Iris Virginica

O formato de dados: (comprimento sépala, largura sépala, comprimento da pétala, largura da pétala)

20733iris-3539434

Treinaremos os nossos modelos com base nesses parametros e usá-los-emos para prever as classes de flores.

Compreender os dados:

Baixe o conjunto de dados Iris de https://www.kaggle.com/uciml/iris

importar numpy como np
importar pandas como pd
import matplotlib.pyplot as plt
iris = pd.read_csv("Iris.csv") #Iris.csv é agora um dataframe do pandas
imprimir(iris.head()) #imprime primeiro 5 valores
imprimir(iris.describe()) #imprime alguns detalhes estatísticos básicos como percentil,quer dizer, std etc. do quadro de dados
16566iris-head_-2786086
iris.head ()
42140iris-describe-3459342
iris.describe ()

Visualizando os dados usando matplotlib:

iris.plot(kind ="espalhar", x ="SepalLengthCm",   y ="SepalWidthCm")
plt.show()
75894scatter_plot-6136253
Gráfico de dispersão

Visualização de dados usando curvas de Andrew de pandas:

As curvas de Andrews têm a forma funcional:

f

x_4 sem (2t) + x_5 cos (2t) +…

Onde os coeficientes x correspondem aos valores de cada dimensão e t está espaçado linearmente entre -pi e + pi. Cada linha do quadro corresponde a uma única curva.

de pandas.plotting import andrews_curves
andrews_curves(iris.drop("Identificação", eixo = 1), "Espécies")
plt.show()
74761andrews20curves-3533825
Gráfico da curva de Andrews

Pré-processamento do conjunto de dados:

Usando uma biblioteca integrada chamada 'train_test_split', que divide nosso conjunto de dados em uma proporção de 80:20. o 80% será utilizado para Treinamento, avaliação e seleção entre nossos modelos e os 20% será retido como um conjunto de dados de validação.

de sklearn.model_selection import train_test_split
x = iris.iloc[:, :-1].valores #últimos valores de coluna excluídos
y = iris.iloc[:,   -1].valores #último valor da coluna
de sklearn.model_selection import train_test_split
x_train,x_test,y_train,y_test = train_test_split(x,e,test_size = 0.2, random_state = 0)  #Dividir o conjunto de dados em conjunto de treinamento e conjunto de teste

Aprendizagem supervisionada :

Algoritmos de aprendizado de máquina supervisionados são treinados para encontrar padrões usando um conjunto de dados. O processo é simples, pega o que foi aprendido no passado e, em seguida, aplica a novos dados. A aprendizagem supervisionada usa exemplos marcados para prever padrões e eventos futuros.

Por exemplo, quando ensinamos a uma criança que 2 + 2 = 4 ou apontamos a imagem de qualquer animal para que você saiba o seu nome.

A aprendizagem supervisionada, por sua vez, é dividida em:

Classificação: A classificação prevê rótulos de classe categóricos, que são discretos e bagunçados. É um processo de duas etapas, consistindo em uma etapa de aprendizagem e uma etapa de classificação. Existem vários algoritmos de classificação como: “Classificador de árvore de decisão”, “Floresta aleatória”, “Classificador Naive Bayes”, etc.

Regressão: A regressão é geralmente descrita como a determinação de uma relação entre duas ou mais variáveis, como prever o trabalho de uma pessoa com base nos dados de entrada X. Alguns dos algoritmos de regressão são: “Regressão logística”, “Regressão de loop”, “Regressão de cume”, etc. .

21093captura-5016285
exemplo de aprendizagem supervisionada

Classificador de árvore de decisão:

O motivo geral para usar uma árvore de decisão é criar um modelo de treinamento que pode ser usado para prever a classe ou o valor das variáveis ​​de destino, aprendendo regras de decisão inferidas de dados anteriores. (dados de treinamento).

Tente resolver o problema usando a representação em árvore. Cada interno da árvore corresponde a um atributo e cada nó folha corresponde a uma etiqueta de classe.

Usando a árvore de decisão no conjunto de dados Iris:

de sklearn.tree import DecisionTreeClassifier
de sklearn.metrics import precision_score
classifier = DecisionTreeClassifier()
classifier.fit(x_train,   y_train) #treinando o classificador
y_pred = classifier.predict(x_test) #fazendo previsões
imprimir(classificação_report(y_test,   y_pred)) #Resumo das previsões feitas pelo classificador
imprimir(confusão_matriz(y_test, y_pred)) #para avaliar a qualidade do resultado
imprimir('acurácia é',precisão_pontuação(y_pred,y_test)) #Pontuação de precisão

Precisão: precisão das previsões positivas.

Recuperação: fração de positivos que foram identificados corretamente.

Pontuação F1: Qual porcentagem de previsões positivas estavam corretas?

macro avg – média não ponderada por rótulo

média ponderada: calculando a média da média ponderada de suporte por etiqueta

Mapa de calor para a matriz de confusão:

importado do mar como sns
cm = confusão_matriz(y_test, y_pred) #Transformar para df
cm_df = pd.DataFrame(cm,índice = ['setosa','versicolor','virginica'], colunas = ['setosa','versicolor','virginica'])
plt.figure(figsize =(5.5,4))
sns.heatmap(cm_df,   annot = True)
plt.ylabel('Etiqueta verdadeira')
plt.xlabel('Etiqueta prevista')
plt.show()
65665mapa de calor-1821488
Mapa de calor da matriz de confusão

Uma ideia que podemos tirar da matriz é que o modelo foi muito preciso ao classificar Setosa e Virginica (Verdadeiro positivo / All = 1.0). Porém, A precisão do Versicolor foi menor (13/14 = 0,928).

Aprendizagem não supervisionada:

A aprendizagem não supervisionada é usada contra dados sem rótulos históricos. O sistema não está sujeito a um conjunto predeterminado de resultados, correlações entre entradas e saídas ou um “resposta correta”. O algoritmo deve descobrir o que está vendo por si mesmo, uma vez que não tem nenhum armazenamento de waypoint. O objetivo é explorar os dados e encontrar algum tipo de padrões ou estruturas.

A aprendizagem não supervisionada pode ser classificada em:

Agrupamento: Clustering é a tarefa de dividir a população ou pontos de dados em vários grupos, de modo que os pontos de dados de um grupo sejam homogêneos uns com os outros do que aqueles de grupos diferentes. Existem vários algoritmos de agrupamento, alguns deles são: “Algoritmos de agrupamento K-means”, “mudança média”, “agrupamento hierárquico”, etc.

Associação: Uma regra de associação é um método de aprendizagem não supervisionada que é utilizado para encontrar relações entre variáveis num grande base de dados. Determine o conjunto de elementos que ocorrem juntos no conjunto de dados.

98361unsuper-8669081
exemplo de aprendizagem não supervisionada

Agrupamento de meias K:

O objetivo do algoritmo de agrupamento K-means é encontrar clusters nos dados, com o número de grupos representado pelo variável K. O algoritmo funciona iterativamente para atribuir cada ponto de dados a um dos K ​​grupos com base nas características fornecidas.. .

Os resultados da execução de um K-means em um conjunto de dados são:

Centroides K: centróides para cada um dos grupos K identificados no conjunto de dados.

Rótulos para dados de treinamento: conjunto de dados completo rotulado para garantir que cada ponto de dados seja mapeado para um dos clusters.

Usando clustering K-means no conjunto de dados Iris:

de sklearn.datasets import load_iris
de sklearn.cluster import KMeans
iris_data = load_iris()   #carregando conjunto de dados da íris de sklearn.datasets
iris_df = pd.DataFrame(iris_data.data, colunas = iris_data.feature_names) #criando dataframe
kmeans = KMeans(n_clusters = 3, init ="k-means ++",   max_iter = 100, n_init = 10, random_state = 0) #Aplicando classificador Kmeans
y_kmeans = kmeans.fit_predict(x)
imprimir(kmeans.cluster_centers_) #exibir centros de cluster
plt.scatter(x[y_kmeans == 0, 0], x[y_kmeans == 0, 1],s = 100, c ="vermelho", rótulo ="Iris-sedoso")
plt.scatter(x[y_kmeans == 1, 0], x[y_kmeans == 1, 1],s = 100, c ="azul", rótulo ="Iris versicolor")
plt.scatter(x[y_kmeans == 2, 0], x[y_kmeans == 2, 1],s = 100, c ="verde", rótulo ="Iris-virginica")   #Visualizando os clusters - Nas primeiras duas colunas
plt.scatter(kmeans.cluster_centers_[:,   0], kmeans.cluster_centers_[:,1],s = 100, c ="Preto", rótulo ="Centroids")   #traçando os centróides dos clusters
plt.legend()
plt.show()
11191kmc-2567246
Gráfico de dispersão de agrupamento K-means

Uma ideia que podemos obter do Diagrama de dispersão es que la precisión del modelo para determinar Setosa y Virginica es comparativamente más a Versicolour.

conclusão:

Exploramos e pré-processamos o conjunto de dados Iris usando sklearn. conjunto de dados, bem como usar o arquivo Iris.csv. O que mais, aprendí sobre el aprendizaje supervisado y no supervisado e implementé el algoritmo de árbol de decisión y el algoritmo de agrupamento de K-means.

Referências:

https://www.kaggle.com/sixteenpython/machine-learning-with-iris-dataset

https://towardsdatascience.com/exploring-classifiers-with-python-scikit-learn-iris-dataset-2bcb490d2e1b

https://scikit-learn.org/stable/

https://certes.co.uk/types-of-artificial-intelligence-a-detailed-guide/

Sobre o autor:

Ola leitor, eu sou yashi saxena, e atualmente trabalho na TCS como engenheiro de sistemas. AO, ML e PNL sempre foram meu interesse, então aqui estou eu fazendo um esforço para aprender mais sobre este campo. Você pode se conectar comigo no Linkedin: https://www.linkedin.com/in/yashi-saxena-7a9522194/

A mídia mostrada neste artigo não é propriedade da DataPeaker e é usada a critério do autor.

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.

Datapeaker