Utilizando o Jupyter Notebook em um Ensaio de Data Science - Testando Bibliotecas Python

Utilizando o Jupyter Notebook em um Ensaio de Data Science - Testando Bibliotecas Python

INTRODUÇÃO 

A seguir são apresentados alguns testes com as bibliotecas de Data Science escritas na linguagem Python. Com o uso delas não é necessário ficar escrevendo algoritmos com os cálculos estatísticos, possibilitando o ganho de tempo para realização dos experimentos.

Esse artigo foi reescrito de forma que o leitor possa repetir o experimento, caso tenha interesse. Portanto, além dos códigos e equações, estão os links que dão acesso ao conjunto de dados e às bibliotecas utilizadas.

O DATASET

Para a realização desse primeiro teste, será utilizado um dataset (conjunto de dados) muito famoso no aprendizado de Machine Learning, o "iris.csv", obtido em UCI - Machine Learning Repository.

O iris.csv, publicado originalmente no UCI Machine Learning Repository: Iris Data Set, é um pequeno conjunto de dados de 1936, frequentemente utilizado para testar algoritmos e visualizações de aprendizado de máquina. Cada linha da tabela representa uma flor de íris, incluindo suas espécies e dimensões de suas partes botânicas, sépala e pétala, em centímetros.

Informações do conjunto de dados:

Este talvez seja o banco de dados mais conhecido encontrado na literatura de reconhecimento de padrões. O artigo de Fisher é um clássico no campo e é referenciado com frequência até hoje. (Consulte Duda & Hart, por exemplo.) O conjunto de dados contém 3 classes de 50 instâncias cada, em que cada classe se refere a um tipo de planta de íris. Uma classe é linearmente separável das outras duas. Porém, as duas outras classes possuem dados que não são linearmente separáveis uns dos outros.

Atributo previsto: classe de planta da íris.

Este é um domínio extremamente simples.

Esses dados diferem dos dados apresentados no artigo Fishers (identificado por Steve Chadwick, spchadwick '@' espeedaz.net) A 35ª amostra deve ser: 4.9,3.1,1.5,0.2, "Iris-setosa", onde o erro está no quarto recurso. A 38ª amostra: 4.9,3.6,1.4,0.1, "Iris-setosa", onde os erros estão no segundo e no terceiro recurso.

Informações sobre atributos:

  1. comprimento da sépala em cm
  2. largura da sépala em cm
  3. comprimento da pétala em cm
  4. largura da pétala em cm

classes:

Não foi fornecido texto alternativo para esta imagem

BIBLIOTECAS

Qualquer biblioteca utilizada aqui, se não for nativa como a NumPy, é facilmente encontrada na internet. A instalação geralmente é simples, realizada por meio do pip. As instruções para a instalação constam em suas respectivas páginas de projeto.

NUMPY 

NumPy vem com o pacote básico da linguagem Python que permite trabalhar com arranjos, vetores e matrizes de N dimensões, de forma comparável e semelhante ao software proprietário Matlab, mas com muito mais eficiência, e com toda a expressividade da linguagem.

NumPy foi implementado na linguagem C, o que dá uma velocidade estratosférica às operações a serem realizadas.

NumPy possui uma larga coleção de funções matemáticas para realizar operações com os dados em vetores e matrizes. Entretanto uma matriz NumPy requer dados do mesmo tipo.

PANDAS 

Com um banco de dados, você pode ter diferentes tipos de dados em um só lugar.

Pandas é uma biblioteca do Python que fornece estruturas de dados rápidas, flexíveis e expressivas, projetadas para tornar o trabalho com qualquer tipo de dados, e o melhor de tudo, é extremamente fácil.

Com Pandas você pode analisar dados de arquivos do excel, de um banco de dados de arquivos textos ou de uma nuvem usando Json, ou tudo junto.

É uma biblioteca fundamental para fazer análise de dados prática em Python. Além disso, os cientistas de dados tem considerado o PANDAS como a ferramenta aberta mais poderosa em manipulação e análise.

SCIKIT-LEARN 

SciKit-Learn é uma biblioteca de aprendizado de máquina de código aberto para a linguagem de programação Python.

Com SciKit-Learn você não precisa escrever a maioria dos algoritmos de Machine Learning o que facilita bastante a criação de aplicativos de inteligência artificial.

SciKit-Learn foi projetada para interagir com as bibliotecas do Python como por exemplo a NumPy. tem algoritmos como: KNN, SVM, Redes Neurais, Random Forrest, K-means e outros.

MATPLOTLIB 

matplotlib é uma biblioteca abrangente para criar visualizações de dados estáticas, animadas e interativas em Python.

SEABORN 

Seaborn é uma biblioteca de visualização de dados Python baseada no matplotlib. Ela fornece uma interface de alto nível para desenhar gráficos estatísticos atraentes e informativos.

INÍCIO DOS EXPERIMENTOS

Carregando as bibliotecas utilizadas.

  • Pandas
  • Numpy
  • Matplotlib
  • SeaBorn

Não foi fornecido texto alternativo para esta imagem
Não foi fornecido texto alternativo para esta imagem

A dispersão dos dados é mostrada de acordo com os valores dos atributos (comprimento da sépala em cm, largura da sépala em cm, comprimento da pétala em cm e largura da pétala em cm) de cada uma das flores observadas.

Observe o quanto seria difícil classificar uma flor dessas apenas pelos valores do comprimento da sépala (primeiro gráfico no canto superior esquerdo), pois as classes se sobrepõem.

USANDO A BIBLIOTECA NUMPY

Não foi fornecido texto alternativo para esta imagem

CLASSIFICANDO COM KNN (K Nearest Neighbor)

No reconhecimento de padrões , o algoritmo k- vizinhos mais próximos (KNN) é um método supervisionado, não-paramétrico usado para classificação e regressão. Nos dois casos, a entrada consiste nos k exemplos de treinamento mais próximos no espaço de recursos. A saída depende se KNN é usado para classificação ou regressão:

A saída depende se KNN é usado para classificação ou regressão:

  • Na classificação KNN , a saída é uma associação de classe. Um objeto é classificado pelo voto de pluralidade de seus vizinhos, sendo o objeto atribuído à classe mais comum entre os k vizinhos mais próximos ( k é um número inteiro positivo , geralmente pequeno). Se k = 1, o objeto é simplesmente atribuído à classe do único vizinho mais próximo.
  • Na regressão KNN , a saída é o valor da propriedade para o objeto. Este valor é a média dos valores de k vizinhos mais próximos

k é um inteiro positivo, tipicamente pequeno e impar.

Se k = 1, então o objeto é simplesmente atribuído à classe desse único vizinho mais próximo.

Representação Gráfica do KNN

Não foi fornecido texto alternativo para esta imagem

USANDO A BIBLIOTECA SCIKIT-LEARN 

Não foi fornecido texto alternativo para esta imagem

TESTANDO CLASSIFICADOR

Não foi fornecido texto alternativo para esta imagem

ANALISANDO E VALIDANDO OS RESULTADOS OBTIDOS

VALIDAÇÃO CRUZADA OU CROSS VALIDATION

Não foi fornecido texto alternativo para esta imagem

MATRIZ DE CONFUSÃO

Não foi fornecido texto alternativo para esta imagem

matriz de confusão é uma tabela que mostra as frequências classificação para cada classe do modelo.

Por exemplo, dos 23 valores que o modelo previu como sendo da classe VERSICOLOR, 22 elementos foram classificados corretamente e 1 foi classificado como sendo da classe VIRGINICA, ou seja, nesse caso o modelo errou.

Antes de apresentar as métricas, é necessário conhecer o que é verdadeiro positivo, falso positivo, falso negativo e verdadeiro negativo.

Não foi fornecido texto alternativo para esta imagem

Significado de cada um desses valores:

  • TP - Um verdadeiro positivo é um resultado em que o modelo prediz corretamente a classe positiva. Em outras palavras, indica a quantidade de registros que são classificados como positivos corretamente, ou seja, a resposta do classificador apontou que o item faz parte da classe e o item realmente faz parte da classe.
  • FP - Um falso positivo é um resultado em que o modelo prediz incorretamente a classe positiva. Neste caso, indica a quantidade de registros que são classificados como itens que fazem parte de uma classe de maneira incorreta. Isto é, a resposta do classificador é que o item pertence à classe, porém, o item não pertence realmente à classe.
  • TN - Um verdadeiro negativo é um resultado em que o modelo prediz corretamente a classe negativa. Em outras palavras, indica a quantidade de registros que foram classificados como negativos de maneira correta, ou seja, a resposta do classificador foi que o item não faz parte da classe e o item realmente não faz parte da classe.
  • FN - Um falso negativo é um resultado em que o modelo prediz incorretamente a classe negativa. Portanto, indica a quantidade de registros que foram classificados como itens negativos de maneira incorreta, ou seja, a resposta do classificador é que o item não faz parte da classe, mas o item faz parte da classe.

Analisando o exemplo anterior:

Não foi fornecido texto alternativo para esta imagem

MÉTRICAS DE CLASSIFICAÇÃO 

Servem para identificar o quão bem o classificador está funcionando a contento, isto é, se está sendo eficiente na classificação. A resposta dessas métricas servem para ajustar os parâmetros (nesse caso, não se aplica ao KNN, mas sim a outros classificadores), ou reprocessar os dados que estão sendo utilizados para treinamento ou para avaliar se o modelo do classificador é o mais adequado para o tipo de classificação em questão.

Não foi fornecido texto alternativo para esta imagem

ERRO DE CLASSIFICAÇÃO (MINIMIZADO)

Mostra o quanto o classificador errou em suas predições.

Fórmula:

Não foi fornecido texto alternativo para esta imagem

ACURÁCIA OU TAXA DE ACERTO

A acurácia é uma métrica para avaliar modelos de classificação. Informalmente, acurácia é a fração de previsões que nosso modelo acertou. Formalmente, possui a seguinte definição:

Fórmula:

Não foi fornecido texto alternativo para esta imagem

PRECISÃO

A "Precisão" do modelo tenta responder à seguinte pergunta:

"Que proporção de identificações positivas estava realmente correta?"

A precisão é definida da seguinte forma:

Fórmula:

Não foi fornecido texto alternativo para esta imagem
Não foi fornecido texto alternativo para esta imagem

RECALL ("RECHAMADA"), RECUPERAÇÃO, REVOCAÇÃO OU SENSIBILIDADE

É a probabilidade de um teste dar positivo na presença da classe. Número de exemplos classificados como pertencentes a uma classe, que realmente são daquela classe, dividido pela quantidade total de exemplos que pertencem a esta classe, mesmo que sejam classificados em outra.

Fórmula:

Não foi fornecido texto alternativo para esta imagem

PRECISÃO E RECALL: UM CABO DE GUERRA 

Para avaliar completamente a eficácia de um modelo, você deve examinar a precisão e o recall. Infelizmente, ambos estão frequentemente em tensão. Ou seja, melhorar a precisão normalmente reduz a recuperação e vice-versa.

F1-SCORE

É a média harmônica entre precisão e recall, dada por:

Fórmula:

Não foi fornecido texto alternativo para esta imagem

OUTRAS MÉTRICAS

ESPECIFICIDADE

É a probabilidade de um teste dar negativo na ausência da classe.

Fórmula:

Não foi fornecido texto alternativo para esta imagem

FALSOS ALARMES

Fórmula:

Não foi fornecido texto alternativo para esta imagem

VALOR PREDITIVO POSITIVO (VPP)

É a probabilidade de um item avaliado e com resultado positivo (pertencente à classe) realmente pertencer à classe.

Fórmula:

Não foi fornecido texto alternativo para esta imagem

VALOR PREDITIVO NEGATIVO (VPN)

É a probabilidade de um item avaliado e com resultado negativo (não pertencente à classe) não pertencer realmente à classe.

Fórmula

Não foi fornecido texto alternativo para esta imagem

CALCULANDO AS MÉTRICAS PARA O CLASSIFICADOR DAS FLORES

Não foi fornecido texto alternativo para esta imagem

CONCLUSÃO

Observando-se as medições acima, verifica-se que o modelo obtido tem um alto grau de acerto na classificação. Mesmo que a precisão da classificação da classe VERSICOLOR seja ligeiramente mais baixo que as demais (88%) a sensibilidade (96%), F1-Score (92%) e a especificidade (92%) são satisfatórios. Ademais, a precisão na classificação das outras duas classes é de 100% no caso da SETOSA e 95% no caso da VIRGINICA, fazendo com que o classificador acerte na grande maioria dos casos apresentados.

USO EM NEGÓCIOS

Existem inúmeros tipos de utilização para essas técnicas supracitadas (classificador juntamente com a aferição dos modelos obtidos). Desde diagnóstico de doenças pela medicina até para identificar bons pagadores na hora de aprovar um crédito com um mínimo de risco, por exemplo. Óbvio que irá depender da qualidade dos dados de treinamento. Nada impede do modelo evoluir com o tempo de uso, de acordo com os dados obtidos e aferições. O classificador pode ser retreinado com os novos dados e gerando novos modelos (devidamente aferidos).

Entre para ver ou adicionar um comentário

Outras pessoas também visualizaram

Conferir tópicos