O WEKA e a melhor ferramenta livre (open source) para mineracao de dados disponivel na atualidade.As concorrentes que conheco sao: Orange, RapidMiner, JHepWork, Konstanz Information Miner (KNIME) e o R Analytical Tool To Learn Easily(RATTLE). No geral, as principais tecnicas de classificacao, associacao e agrupamento estao disponiveis nessas ferramentas, mas considero o WEKA sendo a ferramenta mais facil de integrar em outras aplicacoes. Tanto que existem extensoes para usar o WEKA em alguns dos programas acima.Apenas para deixar essa pequena lista mais completa, durante alguns anos eu usei o Tanagra na disciplina de Topicos de Banco de Dados (TADS/UFPR), muito bom. Mas no final, o fato do WEKA ter uma otima documentacao, dos fontes da aplicacao estarem disponiveis para os interessados, sempre se mostrou, nos meus estudos, o mais interessante.O "Free Associative Neurons" (FAN) e um modelo neuro-fuzzy de rede neural, inventada pelo Roberto Raittz, que associa o aprendizado automatico (supervisionado) e os modelos difusos. O resultado do treinamento pode ser representado graficamente. Ao portar a ultima implementacao do FAN (denominado SIBILA) que fiz para o WEKA, estarei tornando mais facil o acesso ao metodo, bem como nao precisarei refazer toda a parte de interface e de tratamento de dados que ja estao disponiveis no WEKA.A estrutura basicaO esqueleto basico esta descrito na secao "18.1 WRITING A NEW CLASSIFIER" do manual do WEKA (versao 3.7.8 - 21/01/2013). No meu caso, criei o projeto no NetBeans (a equipe do WEKA prefere o Eclipse), denominado WFAN (WEKA+FAN) e a classe FANClassifier no pacote weka.classifiers.functions e derivei da superclasse AbstractClassifier e adicionei as implementacoes para as interfaces OptionHandler, WeightedInstancesHandler, Randomizable. Irei comentar cada uma, tentando justificar o uso delas no meu projeto.Para comecar, meu projeto ira se tornar um "pacote" externo, para usa-lo no WEKA, o usuario tera que ir no menu "Tools" e na opcao "Package manager", atualizar a lista, clicar no WFAN e pedir para fazer a instalacao.Para exemplificar aqui o uso, peguei o arquivo iris.arff (que contem os dados do famoso experimento de Fisher - 1936 - link para o repositorio da UCI ou no formato para o WEKA).No WEKA, clique no botao "Explorer", posteriormente em "Open file...", escolha o arquivo iris.arff, clique na aba "Classify", no botao "Choose" que abrira uma arvore. Os nos da arvore a serem seguidos sao: weka / classifiers / functions / FANClassifier. Na caixa "Test options" e recomendavel marcar a opcao "Use training set", uma vez que o conjunto de dados e pequeno e apresenta problemas de classificacao. Ao clicar no botao start, o weka chamara as minhas funcoes e apresentara o resultado do aprendizado na caixa de texto "Classifier output".Na linha de comando, podemos chama-lo diretamente com:java weka.classifiers.functions.FANClassifier -t iris.arff -vBom, para isso precisamos do metodo main, na nossa classe... direto do manual:public static void main(String[] args) { AbstractClassifier.runClassifier(new FANClassifier(), args);}Os metodos basicos que temos que implementar sao:1) public void buildClassifier(Instances data) throws ExceptionChamado para treinar o modelo, bem como verificar se o metodo e capaz de trabalhar com o conjunto de dados. Isso porque o conjunto pode ter valores ausentes nos atributos, atributos numericos