Weka

WEKA é uma ferramenta que agrega algoritmos provenientes a uma determinada abordagem aplicando uma análise dos dados fornecidos e retornando hipóteses para soluções sendo possível o estudo da aprendizagem por parte das maquinas.

Você vai precisar de:

Download do Weka (Windows e Linux)

Download do Java

Sua utilização é bastante simples, primeiro vamos fazer o Download do software Weka clicando aqui. Lembre-se de baixar o arquivo de acordo com sua versão de sistema operacional, depois é só clicar duas vezes e Next, Next… até terminar a instalação.

Sendo programado em Java, ele é compatível com a grande maioria das plataformas, mas nós precisamos ter instalado a Java Virtual Machine (JVM), que serve como intérprete entre Java e sistema operacional. Para fazer isso, vamos precisar do Java Runtime Environment (JRE), que inclui a JVM e abrange as nossas necessidades para esta finalidade. Geralmente a maioria dos erros de instalação se resolvem instalando a versão mais atualizada do java.

Weka Linux

Devemos, primeiramente, instalar o ambiente Java.

apt-get install openjdk-7-jre

Em determinadas distribuições, como o Ubuntu, o Weka pode ser instalado a partir dos repositórios. Basta pesquisar por “weka” no gerenciador de download de conteúdo. Embora seja uma maneira muito simples no Linux, esse método não garante que tenha a versão mais recente do programa.

Mineração de Dados Weka – Exemplo

Algoritmo de Classificação com uma das bases padrão do Weka:

 

Aqui foi utilizado um banco original mas percebemos pela matriz de confusão que o classificador estava errando mais a classe “yes” do que acertando;

Você pode testar outros algoritmos clicando na opção “Choose”, procure deixar as outras opções em padrão e a percentage split em 75%.

No exemplo que testei, o fato de mudar o algoritmo para J48 usando spliting data com 75% para traning e 25% para validation mudou os resultados. Geralmente resultados próximos de 100% ou grupos com percentuais divididos igualmente são os melhores.

Projeto Completo

Descrição do mini mundo:

Um banco de dados com situações que lentes de contato devem ser  recomendados ao paciente seguindo 3 situações principais:

  • Uso é fortemente recomendado
  • Levemente recomendado
  • Não é recomendado.

Essas três situações são interpretadas pelo programa como classes.

Vamos abordar 24 tipos diferentes de ocasiões que são distribuídas entre as classes da seguinte forma:

  • 4 casos para recomendar fortemente
  • 5 levemente
  • 15 sem recomendações.

Possuem no total 5 atributos, 4 características e 1 classe:

  • Idade do paciente: Jovem, Pré-presbiopia, Presbiopia.
  • Prescrição Médica: Míope ou Hipermetrope.
  • Astigmatismo: Sim ou Não.
  • Taxa de produção lacrimal: Reduzida ou Normal.
  • Lentes de contato: Leve, Forte ou Nenhuma.

É importante deixar claro que o exemplo é completo, correto e livre de ruídos. Os fatores não descrevem totalmente todos os fatos que afetam diretamente a decisão.

Primeira Interação

Utilizaremos as regras do classificador PART que gera uma lista de decisão utilizando a técnica “dividir pra conquistar”, constrói uma arvore de decisão em cada interação e pega a “melhor” folha em uma regra.

Os dados são divididos em 10 segmentos e serão feitas dez interações de treinamento e validação, em cada iteração são gerados novas formas de dados para validação restando ainda nove outras utilizadas para aprendizagem. Os primeiros dados extraídos do programa utilizando as configurações padrões.

PART decision list são as primeiras decisões retornadas após a aplicação do algoritmo de IA, pode-se levantar a hipótese de que quando a taxa de produção lacrimal é reduzida então o uso de lentes de contato não é recomendado.

Analisando a matriz de confusão (confusion matrix) percebe-se que o algoritmo obteve poucos erros, colocando o atributo “none” que é o caso de não usar lentes em ênfase, observamos que de quinze tentativas em confirmar essa premissa duas foram colocadas como “b” e uma em “a”, nesse ponto houve erro do agente artificial.

 

 

Enfatizando agora o atributo astigmatismo, houve um erro de classificação “1.0” além dos dois casos de confusão em “c”; ao todo o experimento obteve 4 erros de classificação em 24 tentativas o que gera um aproveitamento de mais de 83% . Uma analise gerada pela primeira execução de classificação sem filtros.

Segunda Interação

Numa segunda execução setando o valor de cross-validation em 2 tivemos cinco erros de classificação, porém em 3 e 4 tivemos apenas três erros. Testando os outros valores de 1 até 10 tiveram o mesmo comportamento.

Use training set

Esta opção apenas treina o agente gerando um numero muito menor de erros, porém o ambiente virtual de interação seria um modelo perfeito deixando o algoritmo “viciado” pelo fato de não ocorrer mudanças nos padrões, caso aja insistência nos testes por um longo período pode acontecer da taxa de erros ser zerada. Neste experimento ocorreram apenas dois erros de classificação, porém a matriz de confusão não demonstrou erro algum.

Percentage Split

Separar dados para treinamento. Esta opção permite a escolha de um percentual de dados que será executado e outro que ficara em treinamento os quais não serão executados, diferente do cross-validation que treina e executa ao mesmo tempo. Nesta base de dados a grande maioria de testes realizados com esta opção geraram mais erros do que acertos o que é bastante normal. Um fato curioso identificado nos testes é que ao colocar 73% ou mais dos dados em treinamento não houve ocorrência de erros de classificação, porém abaixo disso a incidência é muito grande. Isto é importante para saber como o agente inteligente age sem adaptação.

Decision Stump

É uma maquina de aprendizado com o algoritmo de arvore de decisão simples, possui um nó interno (a raiz), que está imediatamente ligado aos nós terminais (as folhas), faz uma previsão com base no valor de apenas uma característica única de entrada. Diferente do PART não se preocupa com a “melhor folha”. Dependendo do tipo da função de entrada diversas variações são possíveis.

Basicamente a diferença entre os resultados do decision stump para o PART são a forma como os algoritmos são implementados internamente, classificação (distribuição mais detalhada) e a quantidade de erros de classificação. Os mesmos testes que foram aplicados ao PART também foram feitos no decision.

Exclusão de atributos.

Pode-se excluir um ou mais atributos e até mesmo combina-los para analisar qual deles esta interferindo mais na classificação dos outros. No caso do PART deve-se tomar cuidado para não excluir o atributo principal que no nosso caso são as lentes de contato (leve, forte ou nenhuma).

Conclusões

Embora as maiores incidências de erros tenham ocorrido ao classificar o não uso de lentes de contato, este fora o resultado da maioria dos testes para patologias, idade e produção lacrimal.

Quanto mais informações relacionadas, mais variáveis direcionadas ao treinamento e mais testes envolvendo tipos de algoritmos, pode-se obter resultados melhores com menos erros de classificação.

Por fim neste trabalho abordamos uma pesquisa sobre a preferência e recomendação do uso ou não de lentes de contato utilizando uma base de dados do software WEKA. As discussões acerca das analises foram fundamentais para a elaboração deste artigo, conseguindo que o objetivo que é o leve aprendizado da ferramenta tenha sido alcançado.

             

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *