Sistemas Especialistas Fuzzy - Python e SciKit-Fuzzy

Поділитися
Вставка
  • Опубліковано 30 січ 2025

КОМЕНТАРІ • 2

  • @helopessoa4655
    @helopessoa4655 2 роки тому

    Professor, o sr sabe como posso fazer o scikit-fuzzy retornar a label resultante? Meu código não precisa do crisp value, mas sim da label 'aprovado' ou 'reprovado'

    • @wilsoncastello
      @wilsoncastello  2 роки тому

      Bom dia. Dando uma olhada rápida na documentação da API (pythonhosted.org/scikit-fuzzy/) eu não encontrei esta função. Talvez com uma análise mais cuidadosa dos métodos existentes você encontre.
      Para contornar o problema, em outros exemplos que passei em sala, eu fiz o seguinte:
      - Armazenei o valor crisp do resultado em um variável (Ex: res = SE.output['Resultado'])
      - Criei um if para comparar este valor e atribuí os valores "Aprovado" e "Reprovado" a uma variável string dentro do if e do else, respectivamente.
      No exemplo do vídeo, como a saída tem apenas dois valores e as funções de pertinência da variável resultado são simétricas em torno do valor 5, bastou comparar a variável res com cinco (if res > 5). Por mais que a lógica fuzzy tenha como objetivo evitar as comparações crisp, em algum momento elas são inevitáveis, pois sempre haverá um ponto em que ocorrerá a mudança de um resultado para outro.
      Para problemas com mais de três valores possíveis para o resultado, este mesmo raciocínio pode ser usado, com uma cadeia de if-else. O que pode complicar um pouco é se usarmos funções com curvas no lugar das trapezoidais e triangulares, pois a definição do ponto onde elas se cruzam não é tão simples para identificar.
      Espero ter ajudado e caso você encontre na biblioteca alguma função que faça isto automaticamente, por favor, compartilhe o nome da função aqui.