Preparando Arquivos para o WEKA
2012 Feb 27Um 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!