IA com Python - aprendizado de máquina

Aprender significa a aquisição de conhecimentos ou habilidades por meio do estudo ou da experiência. Com base nisso, podemos definir o aprendizado de máquina (ML) da seguinte maneira -

Pode ser definido como o campo da ciência da computação, mais especificamente uma aplicação de inteligência artificial, que fornece aos sistemas de computador a capacidade de aprender com dados e melhorar com a experiência sem serem explicitamente programados.

Basicamente, o foco principal do aprendizado de máquina é permitir que os computadores aprendam automaticamente sem intervenção humana. Agora surge a pergunta: como esse aprendizado pode ser iniciado e feito? Pode ser iniciado com as observações dos dados. Os dados podem ser alguns exemplos, instruções ou algumas experiências diretas também. Então, com base nessa entrada, a máquina toma a melhor decisão procurando alguns padrões nos dados.

Tipos de aprendizado de máquina (ML)

Os Algoritmos de Aprendizado de Máquina ajudam o sistema de computador a aprender sem ser explicitamente programado. Esses algoritmos são categorizados em supervisionados ou não supervisionados. Vamos agora ver alguns algoritmos -

Algoritmos de aprendizado de máquina supervisionados

Este é o algoritmo de aprendizado de máquina mais comumente usado. É chamado supervisionado porque o processo de aprendizagem do algoritmo a partir do conjunto de dados de treinamento pode ser pensado como um professor supervisionando o processo de aprendizagem. Nesse tipo de algoritmo de ML, os resultados possíveis já são conhecidos e os dados de treinamento também são rotulados com as respostas corretas. Pode ser entendido da seguinte forma -

Suponha que temos variáveis ​​de entrada x e uma variável de saída y e aplicamos um algoritmo para aprender a função de mapeamento da entrada para a saída, como -

Y = f(x)

Agora, o objetivo principal é aproximar a função de mapeamento tão bem que, quando tivermos novos dados de entrada (x), possamos prever a variável de saída (Y) para esses dados.

Problemas de aprendizagem supervisionados principalmente podem ser divididos nos seguintes dois tipos de problemas -

  • Classification - Um problema é chamado de problema de classificação quando temos a saída categorizada como “preto”, “ensino”, “não ensino”, etc.

  • Regression - Um problema é chamado de problema de regressão quando temos a saída de valor real, como "distância", "quilograma", etc.

Árvore de decisão, floresta aleatória, knn, regressão logística são exemplos de algoritmos de aprendizado de máquina supervisionado.

Algoritmos de aprendizado de máquina não supervisionados

Como o nome sugere, esses tipos de algoritmos de aprendizado de máquina não têm nenhum supervisor para fornecer qualquer tipo de orientação. É por isso que algoritmos de aprendizado de máquina não supervisionados estão intimamente alinhados com o que alguns chamam de verdadeira inteligência artificial. Pode ser entendido da seguinte forma -

Suponha que temos a variável de entrada x, então não haverá variáveis ​​de saída correspondentes como há nos algoritmos de aprendizado supervisionado.

Em palavras simples, podemos dizer que na aprendizagem não supervisionada não haverá resposta correta e nenhum professor para a orientação. Algoritmos ajudam a descobrir padrões interessantes nos dados.

Os problemas de aprendizagem não supervisionados podem ser divididos nos seguintes dois tipos de problema -

  • Clustering- Em problemas de cluster, precisamos descobrir os agrupamentos inerentes aos dados. Por exemplo, agrupar clientes por seu comportamento de compra.

  • Association- Um problema é chamado de problema de associação porque esse tipo de problema requer a descoberta das regras que descrevem grandes porções de nossos dados. Por exemplo, encontrar os clientes que compram ambosx e y.

K-means para clusterização, algoritmo a priori para associação são exemplos de algoritmos de aprendizado de máquina não supervisionados.

Algoritmos de aprendizado de máquina de reforço

Esses tipos de algoritmos de aprendizado de máquina são usados ​​muito menos. Esses algoritmos treinam os sistemas para tomar decisões específicas. Basicamente, a máquina é exposta a um ambiente onde se treina continuamente usando o método de tentativa e erro. Esses algoritmos aprendem com a experiência anterior e tentam capturar o melhor conhecimento possível para tomar decisões precisas. O Processo de Decisão de Markov é um exemplo de algoritmos de aprendizado de máquina de reforço.

Algoritmos de aprendizado de máquina mais comuns

Nesta seção, aprenderemos sobre os algoritmos de aprendizado de máquina mais comuns. Os algoritmos são descritos abaixo -

Regressão linear

É um dos algoritmos mais conhecidos em estatística e aprendizado de máquina.

Conceito básico - Regressão linear principalmente é um modelo linear que assume uma relação linear entre as variáveis ​​de entrada, digamos x, e a única variável de saída, digamos y. Em outras palavras, podemos dizer que y pode ser calculado a partir de uma combinação linear das variáveis ​​de entrada x. A relação entre as variáveis ​​pode ser estabelecida ajustando a melhor linha.

Tipos de regressão linear

A regressão linear é dos seguintes dois tipos -

  • Simple linear regression - Um algoritmo de regressão linear é chamado de regressão linear simples se tiver apenas uma variável independente.

  • Multiple linear regression - Um algoritmo de regressão linear é chamado de regressão linear múltipla se tiver mais de uma variável independente.

A regressão linear é usada principalmente para estimar os valores reais com base em variável (s) contínua (s). Por exemplo, a venda total de uma loja em um dia, com base em valores reais, pode ser estimada por regressão linear.

Regressão Logística

É um algoritmo de classificação e também conhecido como logit regressão.

Principalmente a regressão logística é um algoritmo de classificação que é usado para estimar os valores discretos como 0 ou 1, verdadeiro ou falso, sim ou não com base em um determinado conjunto de variáveis ​​independentes. Basicamente, ele prevê a probabilidade, portanto, sua saída está entre 0 e 1.

Árvore de Decisão

A árvore de decisão é um algoritmo de aprendizado supervisionado usado principalmente para problemas de classificação.

Basicamente, é um classificador expresso como partição recursiva com base nas variáveis ​​independentes. A árvore de decisão possui nós que formam a árvore com raiz. A árvore enraizada é uma árvore direcionada com um nó denominado “raiz”. Root não tem nenhuma borda de entrada e todos os outros nós têm uma borda de entrada. Esses nós são chamados de folhas ou nós de decisão. Por exemplo, considere a seguinte árvore de decisão para ver se uma pessoa é adequada ou não.

Máquina de vetores de suporte (SVM)

É usado para problemas de classificação e regressão. Mas, principalmente, é usado para problemas de classificação. O conceito principal do SVM é plotar cada item de dados como um ponto no espaço n-dimensional com o valor de cada recurso sendo o valor de uma coordenada específica. Aqui n seriam os recursos que teríamos. A seguir está uma representação gráfica simples para entender o conceito de SVM -

No diagrama acima, temos dois recursos, portanto, primeiro precisamos representar graficamente essas duas variáveis ​​em um espaço bidimensional onde cada ponto tem duas coordenadas, chamadas de vetores de suporte. A linha divide os dados em dois grupos classificados diferentes. Essa linha seria o classificador.

Baías ingénuas

É também uma técnica de classificação. A lógica por trás dessa técnica de classificação é usar o teorema de Bayes para construir classificadores. O pressuposto é que os preditores são independentes. Em palavras simples, ele assume que a presença de um determinado recurso em uma classe não está relacionada à presença de qualquer outro recurso. Abaixo está a equação para o teorema de Bayes -

$$ P \ left (\ frac {A} {B} \ right) = \ frac {P \ left (\ frac {B} {A} \ right) P \ left (A \ right)} {P \ left ( B \ direita)} $$

O modelo Naïve Bayes é fácil de construir e particularmente útil para grandes conjuntos de dados.

K-vizinhos mais próximos (KNN)

É usado para classificação e regressão dos problemas. É amplamente utilizado para resolver problemas de classificação. O conceito principal desse algoritmo é que ele costumava armazenar todos os casos disponíveis e classificar os novos casos por maioria de votos de seus k vizinhos. O caso sendo então atribuído à classe mais comum entre seus K-vizinhos mais próximos, medida por uma função de distância. A função de distância pode ser distância Euclidiana, Minkowski e distância de Hamming. Considere o seguinte para usar KNN -

  • Computacionalmente KNN são caros do que outros algoritmos usados ​​para problemas de classificação.

  • A normalização das variáveis ​​necessárias, caso contrário, as variáveis ​​de faixa mais alta podem enviesá-lo.

  • No KNN, precisamos trabalhar no estágio de pré-processamento, como a remoção de ruído.

Agrupamento K-Means

Como o nome sugere, ele é usado para resolver os problemas de clustering. É basicamente um tipo de aprendizagem não supervisionada. A lógica principal do algoritmo de agrupamento K-Means é classificar o conjunto de dados por meio de vários clusters. Siga estas etapas para formar clusters por K-means -

  • K-means escolhe k número de pontos para cada cluster conhecido como centróides.

  • Agora, cada ponto de dados forma um cluster com os centróides mais próximos, ou seja, k clusters.

  • Agora, ele encontrará os centróides de cada cluster com base nos membros do cluster existentes.

  • Precisamos repetir essas etapas até que ocorra a convergência.

Floresta Aleatória

É um algoritmo de classificação supervisionado. A vantagem do algoritmo de floresta aleatória é que ele pode ser usado para problemas do tipo classificação e regressão. Basicamente, é a coleção de árvores de decisão (ou seja, floresta) ou você pode dizer o conjunto das árvores de decisão. O conceito básico de floresta aleatória é que cada árvore dá uma classificação e a floresta escolhe as melhores classificações entre elas. A seguir estão as vantagens do algoritmo Random Forest -

  • O classificador de floresta aleatório pode ser usado para tarefas de classificação e regressão.

  • Eles podem lidar com os valores ausentes.

  • Ele não se ajustará ao modelo, mesmo que tenhamos mais árvores na floresta.