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!