Como implementar o algoritmo Find-S no aprendizado de máquina?



Este artigo aborda o conceito de algoritmo find-s no aprendizado de máquina. Ele gira em torno de várias terminologias de hipóteses usando um caso de uso como exemplo.

Dentro , o aprendizado de conceitos pode ser denominado como “ um problema de buscar através de um espaço pré-definido de hipótese potencial a hipótese que melhor se ajusta aos exemplos de treinamento ”- Tom Mitchell. Neste artigo, examinaremos um algoritmo de aprendizado de conceito conhecido como algoritmo Find-S. Os tópicos a seguir são discutidos neste artigo.

O que é o algoritmo Find-S no aprendizado de máquina?

Para entender o algoritmo Find-S, você também precisa ter uma ideia básica dos seguintes conceitos:





  1. Aprendizagem de conceitos
  2. Hipótese Geral
  3. Hipótese Específica

1. Aprendizagem de conceito

Vamos tentar entender o aprendizado de conceitos com um exemplo da vida real. A maior parte da aprendizagem humana é baseada em experiências ou instâncias passadas. Por exemplo, somos capazes de identificar qualquer tipo de veículo com base em um determinado conjunto de recursos, como marca, modelo, etc., que são definidos em um grande conjunto de recursos.



Essas características especiais diferenciam o conjunto de carros, caminhões, etc. do conjunto maior de veículos. Esses recursos que definem o conjunto de carros, caminhões, etc, são conhecidos como conceitos.

Semelhante a isso, as máquinas também podem aprender com os conceitos para identificar se um objeto pertence a uma categoria específica ou não. Qualquer que apoia a aprendizagem de conceitos requer o seguinte:

  • Dados de treinamento
  • Conceito de Alvo
  • Objetos de dados reais

2. Hipótese Geral



para que serve a programação de socket

A hipótese, em geral, é uma explicação para algo. A hipótese geral basicamente afirma a relação geral entre as variáveis ​​principais. Por exemplo, uma hipótese geral para pedir comida seria Eu quero um hambúrguer.

G = {‘?’, ‘?’, ‘?’,… .. ’?’}

3. Hipótese Específica

A hipótese específica preenche todos os detalhes importantes sobre as variáveis ​​dadas na hipótese geral. Os detalhes mais específicos no exemplo dado acima seriam Quero um cheeseburguer com recheio de calabresa de frango com bastante alface.

S = {‘& Phi’, ’& Phi ',' & Phi ', ……,' & Phi '}

Agora, vamos falar sobre o algoritmo Find-S no aprendizado de máquina.

O algoritmo Find-S segue as etapas escritas abaixo:

  1. Inicialize 'h' para a hipótese mais específica.
  2. O algoritmo Find-S considera apenas os exemplos positivos e elimina os exemplos negativos. Para cada exemplo positivo, o algoritmo verifica cada atributo no exemplo. Se o valor do atributo for igual ao valor da hipótese, o algoritmo continua sem nenhuma alteração. Mas se o valor do atributo for diferente do valor da hipótese, o algoritmo muda para ‘?’.

Agora que concluímos a explicação básica do algoritmo Find-S, vamos dar uma olhada em como ele funciona.

Como funciona?

algoritmo flowchart-find-s em aprendizado de máquina - edureka

  1. O processo começa com a inicialização de 'h' com a hipótese mais específica, geralmente, é o primeiro exemplo positivo no conjunto de dados.
  2. Nós verificamos cada exemplo positivo. Se o exemplo for negativo, passaremos para o próximo exemplo, mas se for um exemplo positivo, vamos considerá-lo para a próxima etapa.
  3. Verificaremos se cada atributo do exemplo é igual ao valor da hipótese.
  4. Se o valor corresponder, nenhuma alteração será feita.
  5. Se o valor não corresponder, o valor será alterado para ‘?’.
  6. Fazemos isso até chegarmos ao último exemplo positivo no conjunto de dados.

Limitações do algoritmo Find-S

Existem algumas limitações do algoritmo Find-S listadas abaixo:

  1. Não há como determinar se a hipótese é consistente em todos os dados.
  2. Conjuntos de treinamento inconsistentes podem realmente enganar o algoritmo Find-S, uma vez que ele ignora os exemplos negativos.
  3. O algoritmo Find-S não fornece uma técnica de retrocesso para determinar as melhores mudanças possíveis que podem ser feitas para melhorar a hipótese resultante.

Agora que estamos cientes das limitações do algoritmo Find-S, vamos dar uma olhada em uma implementação prática do Algoritmo Find-S.

Implementação do Algoritmo Find-S

Para entender a implementação, vamos tentar implementá-la em um conjunto de dados menor com um monte de exemplos para decidir se uma pessoa quer dar um passeio.

como converter duplo para int

O conceito desse problema específico será em quais dias uma pessoa gosta de caminhar.

Tempo Clima Temperatura Companhia Umidade Vento Vai
ManhãEnsolaradoCalorososimSuaveFortesim
TardeChuvosoFrioNãoSuaveNormalNão
ManhãEnsolaradoModeradosimNormalNormalsim
TardeEnsolaradoFriosimAltoFortesim

Olhando para o conjunto de dados, temos seis atributos e um atributo final que define o exemplo positivo ou negativo. Nesse caso, sim é um exemplo positivo, o que significa que a pessoa vai dar um passeio.

Portanto, agora, a hipótese geral é:

h0= {‘Manhã’, ‘Ensolarado’, ‘Quente’, ‘Sim’, ‘Suave’, ‘Forte’}

Esta é a nossa hipótese geral, e agora consideraremos cada exemplo um por um, mas apenas os exemplos positivos.

h1= {‘Manhã’, ‘Ensolarado’, ‘?’, ‘Sim’, ‘?’, ‘?’}

h2= {‘?’, ‘Ensolarado’, ‘?’, ‘Sim’, ‘?’, ‘?’}

Substituímos todos os diferentes valores na hipótese geral para obter uma hipótese resultante. Agora que sabemos como o algoritmo Find-S funciona, vamos dar uma olhada em uma implementação usando Pitão .

Caso de uso

Vamos tentar implementar o exemplo acima usando . O código para implementar o algoritmo Find-S usando os dados acima é fornecido abaixo.

import pandas as pd import numpy as np #para ler os dados no arquivo csv data = pd.read_csv ('data.csv') print (data, 'n') #making um array de todos os atributos d = np.array (dados) [:,: - 1] print ('n Os atributos são:', d) #segragando o alvo que tem exemplos positivos e negativos target = np.array (data) [:, - 1] print ('n O alvo é: ', alvo) # função de treinamento para implementar o algoritmo find-s def train (c, t): para i, val in enumerate (t): if val ==' Sim ': specific_hypothesis = c [i]. copy () break for i, val in enumerate (c): if t [i] == 'Yes': for x in range (len (specific_hypothesis)): if val [x]! = specific_hypothesis [x]: specific_hypothesis [ x] = '?' else: pass return specific_hypothesis #obtaining a hipótese final print ('n A hipótese final é:', train (d, target))

Resultado:

Isso nos leva ao final deste artigo, onde aprendemos o algoritmo Find-S em Machine Learning com sua implementação e caso de uso. Espero que você tenha esclarecido tudo o que foi compartilhado com você neste tutorial.

Se você achou este artigo sobre 'Find-S Algorithm In Machine Learning' relevante, verifique o uma empresa de aprendizagem online confiável com uma rede de mais de 250.000 alunos satisfeitos espalhados por todo o mundo.

Estamos aqui para ajudá-lo em cada etapa de sua jornada e criar um currículo projetado para estudantes e profissionais que desejam ser um . O curso foi desenvolvido para dar a você uma vantagem inicial na programação Python e treiná-lo para os conceitos básicos e avançados do Python, juntamente com vários gostar , etc.

Se você encontrar alguma dúvida, fique à vontade para fazer todas as suas perguntas na seção de comentários de “Find-S Algorithm In Machine Learning” e nossa equipe terá prazer em responder.