Preparando Arquivos para o WEKA

Um dos maiores problemas (ainda) no WEKA sem sombra de dúvidas é a criação dos arquivos para o minerador.

Em geral os datasets em ARFF não possuem nenhum tipo de relacionamento referencial, ou mesmo relacionamento entre suas instâncias; porém, isso não é impeditivo para realização de determinadas análises no minerador. A Microsoft com o SQL Server Analysis Services em sua suíte de mineração de dados contém uma feature que comtempla esse tipo de situação chamado “Nested” que é utilizado no momento de construção do modelo de mineração. Ademais, ainda é pendente de contextos de atualização esse tipo de feature.

O WEKA utiliza como arquivo padrão para as tarefas de mineração o formato ARFF, porém o minerador pode aceitar também arquivos CSV para realização das tarefas; porém, é preciso inserir os atributos de cada instância.

Com a utilização de algumas ferramentas como ExcelToARFF ou mesmo com o próprio Excel através da conversão para ARFF e após isso inserção dos atributos.

O ARFF aceita basicamente dois tipos de datatypes que são String (Nominal) e Numeric. Geralmente o minerador trabalha com Nominal Values em tarefas de associação e classificação; e com atributos numéricos em tarefas de agrupamento; contudo isso não é obrigatório.

% Arquivo ARFF utilizado com template para o blog mineracaodedados.wordpress.com %
@relation Escola
@attribute StatusAluno { Passou, Recuperacao, Reprovado }
@attribute NotaGeral numeric
@attribute Aproveitamento numeric
@attribute BomComportamento { true, false }
@attribute ReuniaoPais { yes, no }
@data
%
% 14 Instancias
%

Passou, 85, 85, false, no
Passou, 80, 90, true, no
Recuperacao, 83, 86, false, yes
Reprovado, 70, 96, false, yes
Reprovado, 68, 80, false, yes
Reprovado, 65, 70, true, no
Recuperacao, 64, 65, true, yes
Passou, 72, 95, false, no
Passou, 69, 70, false, yes
Reprovado, 75, 80, false, yes
Passou, 75, 70, true, yes
Recuperacao, 72, 90, true, yes
Recuperacao, 81, 75, false, yes
Reprovado, 71, 91, true, no

Adaptado de Witten,I.H.(Ian H.), Data mining : practical machine learning tools and techniques – 2nd ed. Pg. 54

Para criar arquivos no excel.

Digamos que iremos criar um dataset chamado CreditRating com 6 atributos para avaliar uma carteira de crédito para mapeamento de futuros empréstimos.

Tempo no Emprego (Numérico), Ocupação (String), Tempo de Residencia(Numérico), Status de Residencia(String), Saldo Devedor(Numérico) e Informacao se o devedor pagou ou não (String)

Foi criado um dataset simples com 20 instâncias, com a seguinte distribuição:

TempoEmprego Ocupacao TempoResidencia StatusResidencia SaldoDevedor Pagou
1 ProfissionalLiberal 3 Propria 1000 Yes
2 Vendas 4 Propria 3234 No
3 Autonomo 2 Propria 233 No
12 ProfissionalLiberal 5 Financiada 9283 Yes
23 Autonomo 8 Financiada 342 No
12 Vendas 7 Propria 367 Yes
2 FuncionarioPublico 8 Propria 2109 No
6 ProfissionalLiberal 4 Financiada 245 Yes
7 Profissional 5 Aluguel 5687 Yes
9 Profissional 9 Financiada 871 Yes
8 Autonomo 10 Financiada 906 Yes
12 ProfissionalLiberal 12 Aluguel 9842 No
16 Vendas 15 Aluguel 1209 Yes
12 FuncionarioPublico 2 Financiada 934 Yes
10 FuncionarioPublico 4 Financiada 213 Yes
2 Vendas 1 Financiada 4519 No
7 ProfissionalLiberal 1 Aluguel 7239 Yes
22 FuncionarioPublico 18 Propria 1010 No
21 Vendas 15 Propria 8214 No
6 FuncionarioPublico 14 Propria 6321 No

Com essa distribuição realizada, salve o arquivo em CSV separado por vírgulas com a opção salvar como…, e após isso abra o arquivo no bloco de notas que o mesmo será aberto com o seguinte formato:

TempoEmprego ;Ocupacao ;TempoResidencia;StatusResidencia;SaldoDevedor;Pagou
1;ProfissionalLiberal;3;Propria;1000;Yes
2;Vendas;4;Propria;3234;No
3;Autonomo;2;Propria;233;No
12;ProfissionalLiberal;5;Financiada;9283;Yes
23;Autonomo;8;Financiada;342;No
12;Vendas;7;Propria;367;Yes
2;FuncionarioPublico;8;Propria;2109;No
6;ProfissionalLiberal;4;Financiada;245;Yes
7;Profissional;5;Aluguel;5687;Yes
9;Profissional;9;Financiada;871;Yes
8;Autonomo;10;Financiada;906;Yes
12;ProfissionalLiberal;12;Aluguel;9842;No
16;Vendas;15;Aluguel;1209;Yes
12;FuncionarioPublico;2;Financiada;934;Yes
10;FuncionarioPublico;4;Financiada;213;Yes
2;Vendas;1;Financiada;4519;No
7;ProfissionalLiberal;1;Aluguel;7239;Yes
22;FuncionarioPublico;18;Propria;1010;No
21;Vendas;15;Propria;8214;No
6;FuncionarioPublico;14;Propria;6321;No

Após isso, no próprio bloco de notas, substitua o ponto e virgula por somente virgula para o delimitador do preprocessador conseguir enxergar os dados.

Com isso basta inserir os atributos com as seguintes descrições, e abaixo inserir a base de dados já inserida tendo o seguinte resultado.

@relation CreditRating.symbolic
@attribute TempoEmprego numeric
@attribute Ocupacao {Autonomo, FuncionarioPublico, ProfissionalLiberal, Vendas, Profissional}
@attribute TempoResidencia numeric
@attribute StatusResidencia {Financiada, Alugada, Propria}
@attribute SaldoDevedor numeric
@attribute Pagou {yes, no}
@data

1,ProfissionalLiberal,3,Propria,1000,Yes
2,Vendas,4,Propria,3234,No
3,Autonomo,2,Propria,233,No
12,ProfissionalLiberal,5,Financiada,9283,Yes
23,Autonomo,8,Financiada,342,No
12,Vendas,7,Propria,367,Yes
2,FuncionarioPublico,8,Propria,2109,No
6,ProfissionalLiberal,4,Financiada,245,Yes
7,Profissional,5,Aluguel,5687,Yes
9,Profissional,9,Financiada,871,Yes
8,Autonomo,10,Financiada,906,Yes
12,ProfissionalLiberal,12,Aluguel,9842,No
16,Vendas,15,Aluguel,1209,Yes
12,FuncionarioPublico,2,Financiada,934,Yes
10,FuncionarioPublico,4,Financiada,213,Yes
2,Vendas,1,Financiada,4519,No
7,ProfissionalLiberal,1,Aluguel,7239,Yes
22,FuncionarioPublico,18,Propria,1010,No
21,Vendas,15,Propria,8214,No
6,FuncionarioPublico,14,Propria,6321,No

That’s all folks!

Preparando Arquivos para o WEKA

5 comentários sobre “Preparando Arquivos para o WEKA

  1. lilia disse:

    hi, i really do that but when i open the file with weka they just consider one atribute nominal and its the first line, in case @relation. What it´s the problem?

Deixe o seu comentário inteligente e educado! :o)

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s