Utilização de Teoria de Redes em Análises de Estratégias de Futebol

Esse bom artigo escrito Javier Lopez Pena e Hugo Touchette apresenta a teoria de redes aplicada na análise de estratégia de times de futebol. Através de alguns atributos como Proximidade, Interligação, e “Popularidade” e com dados provenientes da Copa do Mundo de 2010 os autores chegaram em uma análise bem razoável da aplicação da teoria de redes para avaliação de times, e demonstrar por exemplo, o fluxo do time, bem como as relações entre os atletas dentro de campo e sua importância em termos estratégicos.

O trabalho é ótimo em se tratando de análise esportiva; e com uma base um pouco mais refinada pode render muitas frutos bem interessantes nesse domínio.

Rede de passes dos times da Holanda e Espanha antes da Final da Copa do Mundo de 2010, usando dados dos passes e as formações táticas das semi-finais.

A network theory analysis of football strategies

Utilização de Teoria de Redes em Análises de Estratégias de Futebol

Dados Abertos e Mineração de Dados

Uma das melhores iniciativas governamentais que tem se tornado uma forte tendência nos últimos tempos é a abertura de dados públicos, ou Open Data.

Os dados abertos além de representar transparência dos governantes; pode engajar cidadãos a colaborarem com iniciativas criativas para os problemas de sua comunidade através do estudo desses dados; além de enquadrar-se totalmente no conceito de governo eletrônico no qual o governo não somente será receptador de dados dos cidadãos, mas também será provedor de dados e informações para aumentar a transparência e melhorar a democracia de uma forma mais participativa.

Dados Abertos e Mineração de Dados

Taxi!

Essa coluna de Joe Malkevitch (York College (CUNY)) foi publicado na American Mathematical Society e aborda um tema bastante relevante em mineração de dados que é a geometria da medida de distância Taxicab (Manhattan). A coluna coloca em aspectos práticos a definição e aplicação dessa medida de distância apresentando exemplos de como funciona e as suas aplicações. O mais interessante sobre tudo, é que o entendimento dessa parte da matemática abre um grande leque de possibilidades em relação ao sair do lugar comum (leia-se, Distância Euclideana) no desenvolvimento de uma análise de agrupamento; ou mesmo em um projeto de mineração de dados no qual não  todos os dados não são discretizados, ou esses dados sofram uma variação de range muito alta devido a inúmeros outliers.

Feature Column from the AMS

Taxi!

Cancer Program Data Sets

Para quem deseja realizar estudos sérios sobre Mineração de Dados aplicado na área da saúde, esse repositório de dados disponibilizado pela Broad Institute é um prato cheio. A muitos modelos a serem explorados, e de acordo com a disposição do pesquisador, ele pode adaptar os modelos e aplicar em sua comunidade, cidade e/ou região. Nota 10 para a iniciativa!

Cancer Program Data Sets

Mineração de Dados Públicos – Open Data Projects

Hoje com os eleitores tendo cada vez mais acesso à internet, bem como as iniciativas populares em prol de governos mais eficientes vem tornado os projetos de Open Data (Abertura de dados públicos) cada vez mais importantes na administração de uma cidade. Através desses dados, é possível cidadãos que detêm algum tipo de qualificação para análise desses dados levar ao seu vereador, deputado ou representante legislativo alternativas para os mais diversos problemas de sua cidade ou região utilizando dados que muitas das vezes é descartado pelos orgãos públicos.

Nesse link está uma iniciativa de agregação de dados relacionados a projetos de Open Data, e as cidades participantes nos EUA, Canadá e Europa.

Mineração de Dados Públicos – Open Data Projects

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