Conteúdo[Esconder][Mostrar]
Se você é um programador Python ou está procurando um kit de ferramentas poderoso para utilizar para introduzir o aprendizado de máquina em um sistema de produção, o Scikit-learn é uma biblioteca que você precisa conferir.
O Scikit-learn é bem documentado e simples de usar, se você é novo no aprendizado de máquina, deseja começar a usar rapidamente ou deseja utilizar a ferramenta de pesquisa de ML mais atualizada.
Ele permite que você construa um modelo de dados preditivo em apenas algumas linhas de código e, em seguida, use esse modelo para adequar seus dados como uma biblioteca de alto nível. É flexível e funciona bem com outros Bibliotecas Python como Matplotlib para gráficos, NumPy para vetorização de array e pandas para visualização de dados.
Neste guia, você descobrirá tudo sobre o que é, como você pode usá-lo, além de seus prós e contras.
O que é a Scikit-learn?
O Scikit-learn (também conhecido como sklearn) oferece um conjunto diversificado de modelos estatísticos e aprendizado de máquina. Ao contrário da maioria dos módulos, o sklearn é desenvolvido em Python em vez de C. Apesar de ser desenvolvido em Python, a eficiência do sklearn é atribuída ao uso do NumPy para operações de álgebra linear e array de alto desempenho.
O Scikit-Learn foi criado como parte do projeto Summer of Code do Google e, desde então, tornou a vida de milhões de cientistas de dados centrados em Python em todo o mundo mais simples. Esta seção da série se concentra em apresentar a biblioteca e focar em um elemento – transformações de conjuntos de dados, que são uma etapa fundamental e vital a ser seguida antes de desenvolver um modelo de previsão.
A biblioteca é baseada no SciPy (Scientific Python), que deve ser instalado antes que você possa usar o scikit-learn. Esta pilha contém os seguintes itens:
- NumPy: pacote de matriz n-dimensional padrão do Python
- SciPy: É um pacote fundamental para computação científica
- Pandas: estruturas de dados e análise
- Matplotlib: É uma poderosa biblioteca de plotagem 2D/3D
- Sympy: matemática simbólica
- IPython: console interativo aprimorado
Aplicativos da biblioteca Scikit-learn
Scikit-learn é um pacote Python de código aberto com recursos sofisticados de análise de dados e mineração. Ele vem com uma infinidade de algoritmos integrados para ajudá-lo a tirar o máximo proveito de seus projetos de ciência de dados. A biblioteca Scikit-learn é usada das seguintes maneiras.
1. Regressão
A análise de regressão é uma técnica estatística para analisar e compreender a conexão entre duas ou mais variáveis. O método usado para fazer a análise de regressão ajuda a determinar quais elementos são relevantes, quais podem ser ignorados e como eles interagem. Técnicas de regressão, por exemplo, podem ser utilizadas para entender melhor o comportamento dos preços das ações.
Os algoritmos de regressão incluem:
- Regressão linear
- Regressão do cume
- Regressão Lasso
- Regressão da Árvore de Decisão
- Floresta Aleatória
- Máquinas de vetor de suporte (SVM)
2. Classificação
O método de Classificação é uma abordagem de Aprendizado Supervisionado que usa dados de treinamento para identificar a categoria de novas observações. Um algoritmo em Classificação aprende com um dado conjunto de dados ou observações e então classifica observações adicionais em uma das muitas classes ou agrupamentos. Eles podem, por exemplo, ser usados para classificar as comunicações por e-mail como spam ou não.
Os algoritmos de classificação incluem o seguinte:
- Regressão Logística
- K-vizinhos mais próximos
- Máquina de vetores de suporte
- Árvore de decisão
- Floresta Aleatória
3. Agrupamento
Os algoritmos de agrupamento no Scikit-learn são usados para organizar automaticamente dados com propriedades semelhantes em conjuntos. Clustering é o processo de agrupar um conjunto de itens para que aqueles no mesmo grupo sejam mais semelhantes aos de outros grupos. Os dados do cliente, por exemplo, podem ser separados com base em sua localização.
Os algoritmos de clustering incluem o seguinte:
- DB-SCAN
- K-médias
- Mini-Lote K-Means
- Agrupamento Espectral
4. Seleção do Modelo
Os algoritmos de seleção de modelo fornecem métodos para comparar, validar e selecionar os parâmetros e modelos ideais para uso em iniciativas de ciência de dados. Dados os dados, a seleção do modelo é o problema de escolher um modelo estatístico de um grupo de modelos candidatos. Nas circunstâncias mais básicas, uma coleção de dados pré-existente é levada em consideração. No entanto, a tarefa também pode incluir o planejamento de experimentos para que os dados adquiridos sejam adequados ao problema de seleção de modelos.
Os módulos de seleção de modelo que podem melhorar a precisão ajustando os parâmetros incluem:
- Validação cruzada
- Pesquisa de grade
- Métrica
5. Redução de Dimensionalidade
A transferência de dados de um espaço de alta dimensão para um espaço de baixa dimensão para que a representação de baixa dimensão preserve alguns aspectos significativos dos dados originais, idealmente próximos de sua dimensão inerente, é conhecida como redução de dimensionalidade. O número de variáveis aleatórias para análise é reduzido quando a dimensionalidade é reduzida. Dados periféricos, por exemplo, podem não ser considerados para melhorar a eficiência das visualizações.
O algoritmo de redução de dimensionalidade inclui o seguinte:
- Seleção de recursos
- Análise de Componentes Principais (PCA)
Instalando o Scikit-learn
NumPy, SciPy, Matplotlib, IPython, Sympy e Pandas precisam ser instalados antes de usar o Scikit-learn. Vamos instalá-los usando o pip do console (funciona apenas para Windows).
Vamos instalar o Scikit-learn agora que instalamos as bibliotecas necessárias.
Funcionalidades
Scikit-learn, às vezes conhecido como sklearn, é um kit de ferramentas Python para implementar modelos de aprendizado de máquina e modelagem estatística. Podemos usá-lo para criar vários modelos de aprendizado de máquina para regressão, classificação e agrupamento, bem como ferramentas estatísticas para avaliar esses modelos. Também inclui redução de dimensionalidade, seleção de recursos, extração de recursos, abordagens de conjunto e conjuntos de dados integrados. Investigaremos cada uma dessas qualidades uma de cada vez.
1. Importando conjuntos de dados
O Scikit-learn inclui vários conjuntos de dados pré-construídos, como o conjunto de dados da íris, o conjunto de dados de preços de residências, o conjunto de dados titânico e assim por diante. As principais vantagens desses conjuntos de dados são que eles são simples de entender e podem ser usados para desenvolver imediatamente modelos de ML. Esses conjuntos de dados são apropriados para iniciantes. Da mesma forma, você pode usar o sklearn para importar conjuntos de dados adicionais. Da mesma forma, você pode usá-lo para importar conjuntos de dados adicionais.
2. Dividindo o conjunto de dados para treinamento e teste
O Sklearn incluiu a capacidade de dividir o conjunto de dados em segmentos de treinamento e teste. A divisão do conjunto de dados é necessária para uma avaliação imparcial do desempenho da previsão. Podemos especificar quanto de nossos dados devem ser incluídos nos conjuntos de dados de treinamento e teste. Dividimos o conjunto de dados usando a divisão de teste de trem, de modo que o conjunto de trem compreenda 80% dos dados e o conjunto de teste tenha 20%. O conjunto de dados pode ser dividido da seguinte forma:
3. Regressão Linear
A Regressão Linear é uma técnica de aprendizado de máquina baseada em aprendizado supervisionado. Ele realiza um trabalho de regressão. Com base em variáveis independentes, a regressão modela um valor de previsão de meta. É usado principalmente para determinar a ligação entre as variáveis e a previsão. Diferentes modelos de regressão diferem no tipo de conexão que avaliam entre variáveis dependentes e independentes, bem como no número de variáveis independentes utilizadas. Podemos simplesmente criar o modelo de Regressão Linear usando sklearn da seguinte forma:
4. Regressão Logística
Uma abordagem de categorização comum é a regressão logística. Está na mesma família que a regressão polinomial e linear e pertence à família de classificadores lineares. Os resultados da regressão logística são simples de compreender e rápidos de calcular. Da mesma forma que a regressão linear, a regressão logística é uma técnica de regressão supervisionada. A variável de saída é categórica, então essa é a única diferença. Ele pode determinar se um paciente tem ou não uma doença cardíaca.
Vários problemas de classificação, como detecção de spam, podem ser resolvidos usando regressão logística. Previsão de diabetes, determinar se um consumidor comprará um produto específico ou mudará para um rival, determinar se um usuário clicará em um link de marketing específico e muitos outros cenários são apenas alguns exemplos.
5. Árvore de Decisão
A técnica de classificação e previsão mais poderosa e amplamente utilizada é a árvore de decisão. Uma árvore de decisão é uma estrutura de árvore que se parece com um fluxograma, com cada nó interno representando um teste em um atributo, cada ramo representando a conclusão do teste e cada nó folha (nó terminal) contendo um rótulo de classe.
Quando as variáveis dependentes não têm uma relação linear com as variáveis independentes, ou seja, quando a regressão linear não produz resultados corretos, as árvores de decisão são benéficas. O objeto DecisionTreeRegression() pode ser usado de maneira semelhante para utilizar uma árvore de decisão para regressão.
6. Floresta Aleatória
Uma floresta aleatória é um aprendizado de máquina abordagem para resolver problemas de regressão e classificação. Ele faz uso do ensemble learning, que é uma técnica que combina vários classificadores para resolver problemas complicados. Um método de floresta aleatória é composto por um grande número de árvores de decisão. Ele pode ser usado para categorizar pedidos de empréstimo, detectar comportamento fraudulento e antecipar surtos de doenças.
7. Matriz de confusão
Uma matriz de confusão é uma tabela usada para descrever o desempenho do modelo de classificação. As quatro palavras a seguir são usadas para examinar a matriz de confusão:
- Verdadeiro Positivo: Significa que o modelo projetou um resultado favorável e estava correto.
- Verdadeiro Negativo: Significa que o modelo projetou um resultado ruim e estava correto.
- Falso Positivo: Significa que o modelo esperava um resultado favorável, mas na verdade foi negativo.
- Falso Negativo: Significa que o modelo esperava um resultado negativo, enquanto o resultado foi realmente positivo.
Implementação da matriz de confusão:
Prós
- É simples de usar.
- O pacote Scikit-learn é extremamente adaptável e útil, atendendo a objetivos do mundo real, como previsão do comportamento do consumidor, desenvolvimento de neuroimagem e assim por diante.
- Os usuários que desejam conectar os algoritmos com suas plataformas encontrarão a documentação detalhada da API no site do Scikit-learn.
- Vários autores, colaboradores e uma grande comunidade online mundial apoiam e mantêm o Scikit-learn atualizado.
Desvantagens
- Não é a opção ideal para um estudo aprofundado.
Conclusão
Scikit-learn é um pacote crítico para todo cientista de dados ter uma forte compreensão e alguma experiência. Este guia deve ajudá-lo com a manipulação de dados usando o sklearn. Há muitos outros recursos do Scikit-learn que você descobrirá à medida que avança em sua aventura de ciência de dados. Compartilhe seus pensamentos nos comentários.
Deixe um comentário