Scikit learn - Aprendizado de máquina usando Python



O blog de aprendizado Scikit apresentará o aprendizado de máquina em python. Inclui um caso de uso em que implementaremos regressão logística usando o scikit learn.

Neste blog, discutiremos o aprendizado do Scikit em python. Antes de falar sobre Scikit learn, é preciso entender o conceito de aprendizado de máquinae deve saber como usar . Com o aprendizado de máquina, você não precisa coletar seus insights manualmente. Você só precisa de um algoritmo e a máquina fará o resto para você! Não é emocionante? Scikit learn é uma das atrações onde podemos implementar o aprendizado de máquina usando Python. istoé uma biblioteca de aprendizado de máquina gratuita que contém ferramentas simples e eficientes para fins de análise e mineração de dados.Apresentarei os seguintes tópicos, que servirão de base para os próximos blogs:

O que é aprendizado de máquina?

O aprendizado de máquina é um tipo de inteligência artificial que permite que os aplicativos de software aprendam com os dados e se tornem mais precisos na previsão de resultados sem intervenção humana. Mas como isso acontece? Para isso, a máquina precisa ser treinada com alguns dados e a partir disso detectará um padrão para criar um modelo.Esse processo de obter conhecimento dos dados e fornecer insights poderosos tem a ver com aprendizado de máquina. Consulte a imagem abaixo para entender melhor seu funcionamento:





MachineLearning - Scikit Learn - Edureka

Usando os dados, o sistema aprende um algoritmo e o usa para construir um modelo preditivo. Mais tarde, ajustamos o modelo ou aprimoramos a precisão do modelo usando os dados de feedback. Usando esses dados de feedback, ajustamos o modelo e prevemos a ação no novo conjunto de dados. Vamosestar discutindo um caso de uso de uma das abordagens de algoritmo em que treinaremos e testaremos os dados, o que o ajudará a dar uma ideia melhor se será adequado para o seu problema específico ou não.



A seguir, existem três tipos de aprendizado de máquina:

    • Aprendizagem Supervisionada : Este é um processo de aprendizagem de algoritmo a partir do conjunto de dados de treinamento. A aprendizagem supervisionada é onde você gera uma função de mapeamento entre a variável de entrada (X) e uma variável de saída (Y) e você usa um algoritmo para gerar uma função entre elas. Também é conhecido como modelagem preditiva, que se refere a um processo de fazer previsões usando os dados. Alguns dos algoritmos incluem regressão linear, regressão logística, árvore de decisão, floresta aleatória e classificador Naive Bayes. Discutiremos posteriormente um caso de uso de aprendizagem supervisionada, onde treinamos a máquina usando regressão logística .
    • Aprendizagem Não Supervisionada : Este é um processo em que um modelo é treinado usando uma informação que não está rotulada. Este processo pode ser usado para agrupar os dados de entrada em classes com base em suas propriedades estatísticas. A aprendizagem não supervisionada também é chamada de canálise lustrosa, que significa o agrupamento de objetos com base nas informações encontradas nos dados que descrevem os objetos ou sua relação. O objetivo é que os objetos de um grupo sejam semelhantes entre si, mas diferentes dos objetos de outro grupo. Alguns dos algoritmos incluem clustering K-means, clustering hierárquico etc.
    • Aprendizagem por reforço: Aprendizagem por reforço é aprender interagindo com um espaço ou ambiente.Um agente RL aprende com as consequências de suas ações, em vez de ser ensinado explicitamente. Ele seleciona suas ações com base em suas experiências passadas (exploração) e também por novas escolhas (exploração).

é um mestrado uma pós-graduação

Visão geral do Scikit Learn

Scikit learn é uma biblioteca usada para realizar aprendizado de máquina em Python. Scikit learn é uma biblioteca de código aberto licenciada pela BSD e reutilizável em vários contextos, incentivando o uso acadêmico e comercial. Ele fornece uma variedade de algoritmos de aprendizagem supervisionados e não supervisionados em Python.O Scikit learn consiste em algoritmos e bibliotecas populares. Além disso, também contém os seguintes pacotes:



  • NumPy
  • Matplotlib
  • SciPy (Scientific Python)

Para implementar o Scikit learn, primeiro precisamos importar os pacotes acima. Se você não está familiarizado com essas bibliotecas, pode dar uma olhada em meus blogs anteriores em e . Você pode baixar esses dois pacotes usando a linha de comando ou se estiver usando PYCharm, você pode instalá-lo diretamente indo para sua configuração da mesma maneira que faria para outros pacotes.

Em seguida, de maneira semelhante, você tem que importar Sklearn.O Scikit learn é baseado no SciPy (Scientific Python) que deve ser instalado antes de você usar o Scikit-learn. Você pode se referir a isso local na rede Internet para baixar o mesmo. Além disso, instale o Scipy e o pacote de roda, se não estiver presente, você pode digitar o comando abaixo:

pip install scipy

Já baixei e instalei, você pode consultar a imagem abaixo para qualquer confusão.

Depois de importar as bibliotecas acima, vamos nos aprofundar e entender como exatamente o Scikit learn é usado.

Scikit learn vem com conjuntos de dados de amostra, como íris e dígitos . Você pode importar os conjuntos de dados e brincar com eles. Depois disso, você deve importar o SVM, que significa Support Vector Machine. O SVM é uma forma de aprendizado de máquina usada para analisar dados.

Vamos dar um exemplo de onde vamos tomar dígitos conjunto de dados e irá categorizar os números para nós, por exemplo- 0 1 2 3 4 5 6 7 8 9. Consulte o código abaixo:

import matplotlib.pyplot como plt do sklearn importar conjuntos de dados do sklearn import svm digits = datasets.load_digits () print (digits.data)

Resultado -

[[0. 0. 5. ..., 0. 0. 0.] [0. 0. 0. ..., 10. 0. 0.] [0. 0. 0. ..., 16. 9. 0.] ..., [0. 0. 1. ..., 6. 0. 0.] [0. 0. 2. ..., 12. 0. 0.] [0. 0. 10. ..., 12. 1. 0.]]

Aqui, apenas importamos as bibliotecas, SVM, conjuntos de dados e imprimimos os dados. É uma longa matriz de dados de dígitos onde os dados são armazenados. Dá acesso aos recursos que podem ser usados ​​para classificar o dígitos amostras. Em seguida, você também pode tentar algumas outras operações, como destino, imagens etc. Considere o exemplo abaixo:

import matplotlib.pyplot como plt do sklearn importar conjuntos de dados do sklearn import svm digits = datasets.load_digits () print (digits.target) print (digits.images [0])

Resultado -

[0 1 2 ..., 8 9 8] // alvo dos dados [[0. 0. 5. 13. 9. 1. 0. 0.] // imagem dos dados [0. 0. 13. 15. 10. 15. 5. 0.] [0. 3. 15. 2. 0. 11. 8. 0.] [0. 4. 12. 0. 0. 8. 8. 0.] [0. 5. 8. 0. 0. 9. 8. 0.] [0. 4. 11. 0. 1. 12. 7. 0.] [0. 2. 14. 5. 10. 12. 0. 0. ] [0. 0. 6. 13. 10. 0. 0. 0.]]

Como você pode ver acima, os dígitos alvo e a imagem dos dígitos são impressos. digits.target dá a base da verdade para o dígito conjunto de dados, que é o número correspondente a cada imagem de dígito. Em seguida, os dados são sempre uma matriz 2D que possui uma forma (n_samples, n_features), embora os dados originais possam ter uma forma diferente. Já no caso dos dígitos, cada amostra original é uma imagem de forma (8,8) e pode ser acessada usando dígitos . imagem.

Aprendizagem e previsão

Em seguida, no Scikit learn, usamos um conjunto de dados (amostra de 10 classes possíveis, dígitos de zero a nove) e precisamos prever os dígitos quando uma imagem é fornecida. Para prever a aula, precisamos de um estimador o que ajuda a prever as classes às quais pertencem as amostras invisíveis. No Scikit learn, temos um estimador para classificação, que é um objeto python que implementa os métodos ajuste (x, y) e prever (T). Vamos considerar o exemplo abaixo:

import matplotlib.pyplot como plt do sklearn importar conjuntos de dados do sklearn importar svm digits = datasets.load_digits () // dataset clf = svm.SVC (gamma = 0,001, C = 100) print (len (digits.data)) x, y = digits.data [: - 1], digits.target [: - 1] // treinar os dados clf.fit (x, y) print ('Prediction:', clf.predict (digits.data [-1]) ) // prever os dados plt.imshow (digits.images [-1], cmap = plt.cm.gray_r, interpolation = 'mais próximo') plt.show ()

Resultado -

1796
Predição: [8]


No exemplo acima, primeiro encontramos o comprimento e carregamos 1796 exemplos. Em seguida, usamos esses dados como dados de aprendizagem, onde precisamos testar o último elemento e o primeiro elemento negativo. Além disso, precisamos verificar se a máquina previu os dados corretos ou não. Para isso, utilizamos o Matplotlib onde exibimos a imagem dos dígitos.Então, para concluir, você tem dados em dígitos, acertou o alvo, se ajustou e previu e, portanto, está pronto para começar! É muito rápido e fácil, não é?

Você também pode visualizar os rótulos de destino com uma imagem, basta consultar o código abaixo:

import matplotlib.pyplot as plt do sklearn importar conjuntos de dados do sklearn import svm digits = datasets.load_digits () # Junte as imagens e rótulos de destino em uma lista images_and_labels = list (zip (digits.images, digits.target)) # para cada elemento na lista de índice, (imagem, rótulo) em enumerar (images_and_labels [: 8]): # inicializar um subplot de 2X4 na i + 1ª posição plt.subplot (2, 4, index + 1) # Exibir imagens em todas as subtramas plt.imshow (imagem, cmap = plt.cm.gray_r, interpolation = 'mais próximo') # Adicione um título a cada subtrama plt.title ('Treinamento:' + str (rótulo)) # Mostra a plotagem plt. mostrar()

Resultado-


Como você pode ver no código acima, usamos a função ‘zip’ para juntar as imagens e rótulos de destino em uma lista e salvá-lo em uma variável, digamos images_and_labels. Depois disso, indexamos os primeiros oito elementos em uma grade de 2 por 4 em cada posição. Depois disso, acabamos de exibir as imagens com a ajuda do Matplotlib e adicionamos o título como ‘treinamento’.

Caso de uso - Predição usando regressão logística

Declaração do Problema - Uma montadora de automóveis lançou um novo SUV no mercado. Usando os dados anteriores sobre as vendas de seus SUVs, eles querem prever a categoria de pessoas que podem estar interessadas em comprar isso.

Para isso, vamos ver um conjunto de dados onde eu tenho UserId, sexo, idade, salário estimado e comprado como colunas. Este é apenas um conjunto de dados de amostra, você pode baixar todo o conjunto de dados em Aqui . Depois de importar os dados no pyCharm, fica mais ou menos assim.

herança múltipla em java com exemplo

Agora vamos entender esses dados. Como você pode ver no conjunto de dados acima, temos categorias como id, sexo, idade etc. Agora, com base nessas categorias, vamos treinar nossa máquina e prever o não. de compras. Então aqui, nós temos variáveis ​​independentes como 'idade', 'salário esperado' e variável dependente como ‘comprado’. Agora vamos aplicar o aprendizado supervisionado, ou seja, algoritmo de regressão logística para descobrir o número de compras usando os dados existentes.

Primeiro, vamos ter uma visão geral da regressão logística.

Regressão Logística - A regressão logística produz resultados em um formato binário que é usado para prever o resultado de uma variável dependente categórica. É mais amplamente utilizado quando a variável dependente é binária, ou seja, o número de categorias disponíveis é dois, como, os resultados usuais de regressão logística são -

  • Sim e não
  • Verdadeiro e falso
  • Alto e baixo
  • Aprovado e Reprovado

Agora, para começar com o código, primeiro importaremos essas bibliotecas - Numpy, Matplotlib e Pandas. É muito fácil importar pandas no Pycharm seguindo as etapas abaixo:

conversão de java duplo para int
Configurações -> Adicionar pacote -> Pandas -> Instalar

Depois disso, vamos importar o conjunto de dados e separar a variável dependente (comprada) e a variável independente (idade, salário) por:

dataset = pd.read_csv ('Social_Network_Ads.csv') X = dataset.iloc [:, [2, 3]]. values ​​y = dataset.iloc [:, 4] .values ​​print (X) print (y)

A próxima etapa seria treinar e testar os dados. Uma estratégia comum é pegar todos os dados rotulados e dividi-los em subconjuntos de treinamento e teste, o que geralmente é feito com uma proporção de 70-80% para o subconjunto de treinamento e 20-30% para o subconjunto de teste. Portanto, criamos conjuntos de treinamento e teste usando cross_validation.

from sklearn.cross_validation import train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0,25, random_state = 0)

Também podemos dimensionar os valores de entrada para melhor desempenho usando StandarScaler conforme mostrado abaixo:

from sklearn.preprocessing import StandardScaler sc = StandardScaler () X_train = sc.fit_transform (X_train) X_test = sc.transform (X_test)

Agora vamos criar nosso modelo de regressão logística.

from sklearn.linear_model import LogisticRegression classifier = LogisticRegression (random_state = 0) classifier.fit (X_train, y_train)

Podemos usar isso e prever os resultados do nosso conjunto de testes.

y_pred = classifier.predict (X_test)

Agora, podemos verificar quantas previsões eram precisas e quantas não estavam usando matriz de confusão . Vamos definir Y como instâncias positivas e N como instâncias negativas. Os quatro resultados são formulados na matriz de confusão 2 * 2, conforme representado abaixo:

de sklearn.metrics importar confusão_matrix cm = confusão_matrix (y_test, y_pred) imprimir (cm)

Resultado-

[[65 3] [8 24]]

A seguir, com base em nossa matriz de confusão, podemos calcular a precisão. Portanto, em nosso exemplo acima, a precisão seria:

= TP + TN / FN + FP

= 65 + 24/65 +3+ 8 + 24

= 89%

Fizemos isso manualmente! Agora vamos ver como a máquina calcula o mesmo para nós, para isso temos uma função embutida ‘exatidão_score’ que calcula a precisão e a imprime, conforme mostrado abaixo:

from sklearn.metrics importar exatidão_score // importar a função exatidão_score print (exatidão_score (y_test, y_pred) * 100) // imprime a exatidão

Resultado -

89,0

Viva! Assim, implementamos com sucesso a regressão logística usando o Scikit learn com uma precisão de 89%.

Clique aqui para obter a fonte completa da previsão acima usando a biblioteca de aprendizagem Python Scikit.

Com isso, cobrimos apenas um dos muitos algoritmos populares que o python tem a oferecer.Cobrimos todos os fundamentos do Scikit aprender a biblioteca,então você pode começar a praticar agora. Quanto mais você pratica, mais você aprende. Fique ligado para mais blogs de tutoriais de python!

Tem alguma questão para nós? Mencione isso na seção de comentários deste blog “Scikit learn” e entraremos em contato com você o mais breve possível. Para obter conhecimento aprofundado do Python, juntamente com seus vários aplicativos, você pode para treinamento online ao vivo com suporte 24 horas nos sete dias da semana e acesso vitalício.