quarta-feira, 27 de outubro de 2010
O Algoritmo de Agrupamento k-means
Dado um valor inicial de k médias (k-means), os registros são separados em agrupamentos, onde esses pontos (k-means) representam o centro de cada agrupamento. Normalmente, as coordenadas iniciais desses centróides são determinadas de forma aleatória. Em seguida, cada registro é associado ao cluster cujo centro está mais próximo, seguindo uma métrica de distância. Existem diversas métricas de distância, como a Euclidiana [1] e a de Mahalanobis [2]. Quando todos os registros estiverem classificados, os k centros são recalculados como as médias aritméticas dos registros de cada cluster. Então, os registros são novamente associados a um agrupamento segundo sua distância à média do cluster e os centros são novamente calculados. Esse passo se repete até que as médias dos clusters não se desloquem consideravelmente.
Segue o link [3] de uma demonstração interativa do k-means.
[1] http://pt.wikipedia.org/wiki/Distância_euclidiana
[2] http://pt.wikipedia.org/wiki/Distância_de_Mahalanobis
[3] http://home.dei.polimi.it/matteucc/Clustering/tutorial_html/AppletKM.html
sábado, 16 de outubro de 2010
Aprendizado de máquina
http://see.stanford.edu/see/lecturelist.aspx?coll=348ca38a-3a6d-4052-937d-cb017338d7b1
É possível aprender com os dados?
Nos comentários tinha um link para um site com vídeo aulas [2].
Chegando lá, já no primeiro link no topo da página [3] me interessei e comecei a assistir uma aula de uma hora sobre aprendizado semi-supervisionado.
Existem métodos de inferir/formular modelos a partir de um conjunto de dados no qual temos como entrada pares de entrada+saída. São os chamados métodos supervisionados.
Por exemplo, podemos ter como entrada 1000 emails e saber se cada um deles é um spam ou não.
Seria interessante agora inferir coisas a partir dos dados não classificados, classificação não-supervisionada.
Este é o caso quando queremos por exemplo encontrar grupos através de uma função de similaridade.
O aprendizado semi-supervisionado é quando temos alguns dados classificados, e outros não classificados. Ou seja, temos 1000 emails que sabemos distinguir entre spam e não-spam, mais digamos 9000 emails que não sabemos a classificação.
Esses 9000 emails podem ajudar substancialmente a desenvolver um modelo que dado um novo email ele seja classificado corretamente como spam ou não-spam.
Na aula são mostradas duas categorias de problemas, e que tipo de conjunto de dados funcionam bem usando as técnicas apresentadas.
- Expectation Maximization (EM) [4]
- Co-training [5]
Fica a sugestão a todos para visitar o videolectures.net e passar algumas horas assistindo a aulas muito interessantes.
[1] http://mark.reid.name/sap/online-learning-in-clojure.html
[2] http://videolectures.net
[3] http://videolectures.net/mlas06_mitchell_sla/
[4] http://en.wikipedia.org/wiki/Expectation-maximization_algorithm
[5] http://en.wikipedia.org/wiki/Co-training
[6] http://www.eleitorando.com.br
Post original
quinta-feira, 7 de outubro de 2010
PMML
Se alguém lhe perguntasse se você usou analítica preditiva hoje, provavelmente você responderia que não. Entretanto, a verdade é que talvez você a use diariamente sem saber. Sempre que você passa o seu cartão de crédito ou o usa on-line, um modelo de analítica preditiva verifica a probabilidade de que a transação seja fraudulenta. Se você aluga DVDs on-line, é bem possível que um modelo de analítica preditiva tenha recomendado um determinado filme para você. A verdade é que a analítica preditiva já faz parte da sua vida e a sua aplicação irá ajudá-lo ainda mais no futuro.
À medida que os sensores em pontes, prédios, processos industriais e maquinaria geram dados, as soluções preditivas geram dados para proporcionar um ambiente mais seguro onde as previsões o alertam sobre possíveis falhas e problemas antes que aconteçam de fato. Sensores também são usados para monitorar pessoas, como acontece com os pacientes em Unidades de Terapia Intensiva. A IBM® e o University of Ontario Institute of Technology estão trabalhando juntos atualmente para implementar uma solução preditiva e de análise de dados para monitorar bebês prematuros, na qual leituras biomédicas podem ser usadas para detectar infecções potencialmente fatais até 24 antes do tempo em que seriam observadas normalmente.
Porém, a analítica preditiva, isoladamente, pode processar tudo isso? Depende. Os padrões abertos devem necessariamente estar envolvidos nesse processo. Para que você aproveite totalmente as soluções preditivas e a análise de dados, os sistemas e aplicativos devem ser capazes de trocar informações facilmente, seguindo normas. A PMML permite que os modelos analíticos preditivos sejam compartilhados entre aplicativos e sistemas.
A adoção da PMML por meio dos principais fornecedores de analítica é um grande exemplo de empresas que estão adotando a interoperabilidade. A IBM, SAS, Microstrategy, Equifax, NASA, e Zementis fazem parte do Data Mining Group (DMG), o comitê que está elaborando a PMML. As empresas de padrões abertos, como a KNIME e a Rapid-I, também fazem parte do comitê. A PMML existe para "moldar" a área de analítica preditiva e, portanto, fazer com que o mundo preditivo seja um lugar melhor para você.
A PMML é a linguagem padrão de fato usada para representar os modelos de mineração de dados. Modelos de analítica preditiva e modelos de mineração de dados são termos usados para designar os modelos matemáticos que usam técnicas estatísticas para aprender padrões ocultos em grandes volumes de dados históricos. Os modelos de análise preditiva usam o conhecimento adquirido durante o treinamento para prever a existência de padrões conhecidos em dados novos. A PMML permite compartilhar facilmente modelos de análise preditiva entre aplicativos diferentes. Portanto, você pode treinar um modelo em um sistema, expressá-lo em PMML e movê-lo a outro sistema, no qual você pode usá-lo para prever, por exemplo, a probabilidade de falha em uma máquina.
A PMML é uma criação do Data Mining Group, um comitê liderado por fornecedores e composto por empresas de análise comerciais e de software livre. Consequentemente, a maioria das ferramentas atuais de mineração de dados pode exportar ou importar a PMML. A PMML, um padrão maduro que vem evoluindo nos últimos 10 anos, pode representar não só as técnicas estatísticas usadas para aprender padrões a partir dos dados — como as redes neurais artificiais e árvores de decisão — mas também o pré-processamento de dados brutos de entrada e o pós-processamento da saída do modelo (veja a Figura 1).
A estrutura de um arquivo de PMML segue as etapas usadas normalmente para criar uma solução preditiva que inclui:
- Dicionário de dados é um produto da fase de análise de dados que identifica os campos de dados de entrada que são mais úteis para resolver o problema em questão. Podem ser campos numéricos, ordinais e de categoria.
- Esquema de mineração define as estratégias para manipular valores ausentes e periféricos. Isso é extremamente útil, já que, muito frequentemente, sempre que os modelos são utilizados, alguns campos de dados obrigatórios de entrada podem estar vazios ou preenchidos incorretamente.
- Transformações de dados definem os cálculos necessários para pré-processar os dados brutos de entrada nos campos derivados. Os campos derivados (também chamados de detectores de recursos) combinam ou modificam os campos de entrada para obter informações mais relevantes. Por exemplo: para prever a pressão de frenagem usada para parar um carro, um modelo preditivo pode usar como entrada bruta a temperatura externa e a presença de água (choveu?). Um campo derivado pode combinar esses dois campos para detectar a existência de gelo na estrada. Em seguida, o campo sobre o gelo é usado como entrada direta para o modelo que prevê a pressão de frenagem necessária para parar.
- Definição de modelo define a estrutura e os parâmetros usados para construir o modelo. A PMML abrange uma variedade de técnicas estatísticas. Por exemplo: para representar uma rede neural, define todas as camadas neurais e os pesos de conexão entre os neurônios. Em uma árvore de decisão, define todos os nós da árvore e os predicados simples e compostos.
- Saídas definem as saídas esperadas do modelo. Em uma tarefa de classificação, as saídas podem incluir a classe prevista e as probabilidades associadas a todas as classes possíveis.
- Destinos definem as etapas de pós-processamento a ser aplicadas à saída do modelo. Em uma tarefa de regressão, essa etapa permite que as saídas sejam transformadas em pontuações (os resultados de predição) que as pessoas podem interpretar facilmente.
- Explicação do modelo define as métricas de desempenho obtidas ao passar os dados de teste pelo modelo (e não os dados de treinamento). Incluem as relações entre os campos, a matriz de confusão, os gráficos de ganho e levantamento e os gráficos de receiver operating characteristics (ROC).
- Verificação do modelo define um conjunto de amostra de registros dos dados de entrada juntamente com as saídas esperadas do modelo. É uma etapa muito importante, pois sempre que se passa um modelo de um aplicativo a outro, o modelo deve passar no teste de correspondência. Isso garante que o novo sistema produza as mesmas saídas do antigo quando tiver as mesmas entradas. Sempre que isso acontece, considera-se o modelo como verificado e pronto para ser colocado em funcionamento.
Considerando que a PMML permite que as soluções preditivas sejam expressas na sua totalidade (incluindo o pré-processamento e o pós-processamento dos dados e a técnica de modelagem), não é de se admirar que a estrutura e os elementos principais sejam um reflexo das oito etapas descritas acima.
A PMML possibilita a implementação instantânea de soluções preditivas. É o padrão de fato para representar modelos de análise preditiva e atualmente conta com o suporte de todas as principais ferramentas estatísticas comerciais e de software livre. À medida que mais sensores são implementados e mais dados são gerados, a analítica preditiva e os padrões abertos como a PMML se tornam fundamentais para entender todo esse contexto. Detecção de fraudes, recomendações de filmes, soluções médicas que salvam vidas e manutenção preditiva são alguns exemplos do que é possível fazer.
* Texto retirado de http://www.ibm.com/developerworks/br/industry/energy-util/ind-PMML1/index.html
sábado, 2 de outubro de 2010
Ontologia
- Indivíduos: os objetos básicos;
- Classes: conjuntos, coleções ou tipos de objetos;
- Atributos: propriedades, características ou parâmetros que os objetos podem ter e compartilhar;
- Relacionamentos: as formas como os objetos podem se relacionar com outros objetos.