Utilizador:MiguelDuarte: diferenças entre revisões

Fonte: aprendis
Saltar para a navegaçãoSaltar para a pesquisa
Sem resumo de edição
 
(Há 66 revisões intermédias de 2 utilizadores que não estão a ser apresentadas)
Linha 21: Linha 21:


[[Utilizador:MiguelDuarte|MiguelDuarte]] ([[Utilizador Discussão:MiguelDuarte|discussão]]) 01h30min de 4 de fevereiro de 2016 (CET)
[[Utilizador:MiguelDuarte|MiguelDuarte]] ([[Utilizador Discussão:MiguelDuarte|discussão]]) 01h30min de 4 de fevereiro de 2016 (CET)
<!--
<!--
=Extração de Conhecimento de Dados=
“We study the past to understand the present; we understand the present to guide the future.” - William Lund
== Introdução ==
A Extração de Conhecimento de Dados, muitas das vezes denominada de Data Mining, pode ter diferentes definições dependendo da perspectiva.
Numa perspectiva de negócio o Data Mining é definido como o processo de identificação de relacionamentos e padrões existentes numa base de dados.<ref name="citação1">R. Groth, Data Mining: Building Competitive Advantage. Prentice Hall, 2000. [http://paperpile.com/b/93BCcV/EEDt]</ref> Pode ainda ser definido como a extração de informação útil para o negocio a partir de grandes bases de dados.<ref name="citação2">S. Nagabhushana, Data Warehousing Olap And Data Mining. New Age International, 2006. [http://paperpile.com/b/93BCcV/XeMu]</ref>
Numa perspectiva mais funcional é a procura de informação importante em grandes volumes de dados, resultado da cooperação de esforços humanos e de computadores. Os humanos desenham as bases de dados, descrevem problemas e estabelecem objetivos. Os computadores esmiúçam os dados, procurando padrões que correspondam aos objetivos.<ref name="citação3">S. M. Weiss and N. Indurkhya, Predictive Data Mining: A Practical Guide. Morgan Kaufmann, 1998. [http://paperpile.com/b/93BCcV/twJ2]</ref>
Numa perspectiva mais acadêmica será a extração implícita, não trivial de conhecimentos úteis e padrões válidos, previamente desconhecidos, dos dados.<ref name="citação4">P. Adriaans, Data Mining. Addison-Wesley Professional, 1996. [http://paperpile.com/b/93BCcV/wvtj]</ref>
== [[Modelo Preditivo]] ==
A análise preditiva é o uso de dados e algoritmos para identificar a probabilidade de resultados futuros com base em dados históricos. Os modelos preditivos utilizam os resultados conhecidos para desenvolver e treinar um modelo que possa ser usado para prever valores para dados diferentes ou novos, usando para isso um algoritmo preditivo de Data Mining.
Um algoritmo preditivo é uma função que, dado um conjunto de exemplos rotulados, constrói um estimador. Se o domínio dos rótulos for um conjunto de valores nominais, estamos perante um problema de classificação, e o estimador criado é uma classificador. Se o domínio for um conjunto infinito e ordenado de valores, estamos perante um problema de regressão e é criado um regressor. <ref name="citação5">J. G. A. P. de Leon Carvalho Katti Faceli Ana Carolina Lorena Márcia Oliveira, Extração de Conhecimento de Dados. 2012. [http://paperpile.com/b/93BCcV/Yr2h]</ref>
Um estimador (classificador ou regressor) é uma função que atribui a uma das classes, ou um valor real, a um exemplo não rotulado.
Classificação: [[Image:image00.png]] em que [[Image:image01.png]] assume valores num conjunto discreto não ordenado.
Regressão: [[Image:image02.png]] em que [[Image:image01.png]] assume valores num conjunto infinito e ordenado.
O objetivo é encontrar uma fronteira de decisão que separe os exemplos de uma classe dos exemplos da outra classe.
Diferentes algoritmos de Data Mining podem encontrar diferentes fronteiras de decisão.
== Regras de Associação ==
Trata-se da forma de Data Mining que mais se assemelha ao processo que a maioria das pessoas lhe associa, explorar uma grande base de dados à procura da regra que diga algo sobre a base de dados que não se saiba e que provavelmente não sejamos capazes de articular explicitamente.
As regras de associação têm a forma [[Image:image03.png]] onde X e Y são conjuntos de itens que ocorrem juntos em uma transação e [[Image:image04.png]] significando que se encontrarmos o conjunto de itens X em uma transação, então existe grande probabilidade de encontrar também o conjunto de itens Y na mesma transação.
Número máximo de regras de associação é definido por:
[[Image:image05.png]] onde n = número de itens.
Podem ser utilizadas várias métricas para avaliar as regras e identificar quais são interessantes diminuindo assim o número de regras geradas. As restrições mais utilizadas são limiares mínimos de suporte e confiança.<ref>J. Hipp, H. Jochen, G. Ulrich, and N. Gholamreza, “Algorithms for association rule mining --- a general survey and comparison,” ACM SIGKDD Explorations Newsletter, vol. 2, no. 1, pp. 58–64, 2000. [http://paperpile.com/b/93BCcV/Qfai]</ref>
O suporte de um conjunto X é definido como a razão das transações que contém esse conjunto ou seja:
[[Image:image06.png]]
A confiança de uma regra é definida por:
[[Image:image07.png]]
Mas o suporte e confiança não são suficientes para garantir que uma regra seja interessante sem considerar a sua semântica. Se por exemplo considerarmos a regra Se A então B com confiança de 90%, mas se B aparece em 90% das transações a regra não é interessante pois não acrescentou nada em termos de conhecimento, já a regra Se C então D com confiança de 70% é muito mais importante se D aparece em 10% das transações.
Uma das métricas mais utilizada para avaliar dependências de uma regra de associação é denominado Lift, também conhecida como interest (interesse). <ref>S. Brin, B. Sergey, M. Rajeev, J. D. Ullman, and T. Shalom, “Dynamic itemset counting and implication rules for market basket data,” in Proceedings of the 1997 ACM SIGMOD international conference on Management of data - SIGMOD ’97, 1997 [http://paperpile.com/b/93BCcV/HUb8]</ref>
O Lift de uma regra [[Image:image03.png]]indica o quanto mais frequente torna-se Y quando X ocorre:
[[Image:image08.png]]
Esta medida varia entre 0 e ∞ e quanto maior o valor do Lift, mais interessante é a regra.
----
= Métodos baseados em Procura =
A aprendizagem automática passa também pela procura num conjunto de possíveis opções. A esta procura está associado também um viés, o viés de procura. Este viés representa o atrito e erro associado à procura de hipóteses num espaço de soluções.<ref name="citação5"/>
== Árvores de decisão e Regressão ==
Um modelo de árvore de decisão é utilizado para resolver problemas com base na classificação. Uma árvore de decisão utiliza a estratégia de “dividir para conquistar”, isto é, um problema de procura deverá ser simplificado dividindo o problema “major” em menores problemas. A esses problemas menores, a mesma estratégia é utilizada e têm o nome de subproblemas. As soluções aos subproblemas obtidas são então compactadas de forma a gerar uma solução para o problema original ou “major”. <ref name="citação5"/>
Um modelo de árvore de regressão é utilizado para resolver problemas com base na regressão. Este modelo utiliza a mesma estratégia de dividir que a árvore de decisão, mas neste caso para valores contínuos.<ref>J. R. Quinlan and Q. J.R, “Simplifying decision trees,” Int. J. Hum. Comput. Stud., vol. 51, no. 2, pp. 497–510, 1999. [http://paperpile.com/b/93BCcV/K7Dz]</ref>
Alguns dos algoritmos baseados em árvores de decisão e regressão são: ID3 (quinlan, 1979), ASSISTANT (Cestnik et al., 1987), CART (Breiman et al., 1984), C4.5 (Quinlan, 1993). O algoritmo mais utilizado para a classificação é o CART, seguido do seu competitor C4.5. <ref>T. Hastie, R. Tibshirani, and J. Friedman, The Elements of Statistical Learning: Data Mining, Inference, and Prediction. Springer Science & Business Media, 2013. [http://paperpile.com/b/93BCcV/2pqE]</ref>
Tanto uma árvore de decisão como uma árvore de regressão são um grafo acíclico direcionado constituído por nós de divisão com dois ou mais sucessores, ou nós folha.
Um nó de divisão é um teste condicional baseado nos valores do atributo. Um teste condicional é por exemplo:
- Temperatura > 30 ºC;
- Sexo ϵ {Masculino, feminino};
- [[Image:image09.png|image09.png]]
Um nó folha é uma função. Em problemas de classificação, a constante que minimiza a função de custo é 0-1 e é a moda. Em problemas de regressão, a constante é a média.
== Estratégias de Poda ==
A poda é um passo essencial na construção de uma árvore de decisão ou regressão pois é esta que irá reduzir ao máximo o ruído da informação. O ruído da informação pode provocar que a árvore classifique objetos de um modo não confiável e o tamanho das árvores tende a ser muito extenso quando o ruído existe. A poda é importante então para diminuir o erro devido à variância do classificador.<ref name="citação5"/>
A poda pode ser classificada então em pré-poda, em que se para a construção da árvore quando algum dos critérios pré estabelecidos é satisfeito; e pós-poda, em que tal como o nome indica, a construção é concluída e só após é feita a poda.<ref name="citação5"/>
== Vantagens e Desvantagens ==
Vantagens:
# Flexibilidade – Sendo um método não paramétrico, não existe uma distribuição dos dados, estes são dispostos em espaços e cada espaço é aproximado com recurso a muitos modelos.
# Robustez – A estrutura das árvores não varia em por exemplo árvores univariadas. Não sofrem transformações.
# Seleção de atributos – Durante o processo de construção, os atributos  tendem a ser robustos e atributos mais irrelevantes e redundantes são fragilizados.
# Interpretabilidade – Interpretando decisões mais simples e locais, podem-se realizar decisões mais complexas e globais.
# Eficiência – Como o algoritmo de um árvore de decisão é top-down usando uma estratégia de dividir, esta torna-se bastante eficiente.
Desvantagens:
# Replicação – Refere-se à duplicação de testes em diferentes ramos da árvore.
# Valores ausentes – Se um valor de atributo é desconhecido, não poderá ser continuado o ramo.
# Atributos contínuos – A ordenação de cada atributo contínuo estima-se que consuma 70% do tempo necessário para induzir uma árvore de decisão.
# Instabilidade – Breiman (1996) e Kohavi e Kunz (1997) apontaram que variações no conjunto de treino podem produzir grande variações na árvore final. Mudando um nó, todas as subárvores abaixo desse nó mudam.
[[Image:image10.jpg|image10.jpg | center| frame | Figura 1. Representação de uma árvore de decisão efetuada no Rapidminer com dados dos sobreviventes do “Titanic”.]]
-->
=Extração de Conhecimento de Dados=
=Extração de Conhecimento de Dados=
“We study the past to understand the present; we understand the present to guide the future.” - William Lund
“We study the past to understand the present; we understand the present to guide the future.” - William Lund
Linha 159: Linha 56:


A aprendizagem automática passa também pela procura num conjunto de possíveis opções. A esta procura está associado também um viés, o viés de procura. Este viés representa o atrito e erro associado à procura de hipóteses num espaço de soluções.<ref name="citação5"/>
A aprendizagem automática passa também pela procura num conjunto de possíveis opções. A esta procura está associado também um viés, o viés de procura. Este viés representa o atrito e erro associado à procura de hipóteses num espaço de soluções.<ref name="citação5"/>


== Árvores de decisão e Regressão ==
== Árvores de decisão e Regressão ==
Linha 166: Linha 62:
Um modelo de árvore de regressão é utilizado para resolver problemas com base na regressão. Este modelo utiliza a mesma estratégia de dividir que a árvore de decisão, mas neste caso para valores contínuos.<ref name="citação6">J. R. Quinlan and Q. J.R, “Simplifying decision trees,” Int. J. Hum. Comput. Stud., vol. 51, no. 2, pp. 497–510, 1999. [http://paperpile.com/b/93BCcV/K7Dz]</ref>
Um modelo de árvore de regressão é utilizado para resolver problemas com base na regressão. Este modelo utiliza a mesma estratégia de dividir que a árvore de decisão, mas neste caso para valores contínuos.<ref name="citação6">J. R. Quinlan and Q. J.R, “Simplifying decision trees,” Int. J. Hum. Comput. Stud., vol. 51, no. 2, pp. 497–510, 1999. [http://paperpile.com/b/93BCcV/K7Dz]</ref>


Alguns dos algoritmos baseados em árvores de decisão e regressão são: ID3 (quinlan, 1979), ASSISTANT (Cestnik et al., 1987), CART (Breiman et al., 1984), C4.5 (Quinlan, 1993). O algoritmo mais utilizado para a classificação é o CART, seguido do seu competitor C4.5. <ref name="citação7">T. Hastie, R. Tibshirani, and J. Friedman, The Elements of Statistical Learning: Data Mining, Inference, and Prediction. Springer Science & Business Media, 2013.</ref>
No caso destes valores contínuos, existem duas formar de se tratar da divisão: discretização para formar um atributo ordinal categórico (estático, em que se discretiza uma vez no início ou dinâmico em que os intervalos podem ser determinados por tamanho, frequência ou clustering) ou decisão binária (considera todas as divisões possíveis e considera a melhor).
 
Alguns dos algoritmos baseados em árvores de decisão e regressão são: ID3 (Quinlan, 1979), ASSISTANT (Cestnik et al., 1987), CART (Breiman et al., 1984), C4.5 (Quinlan, 1993). O algoritmo mais utilizado para a classificação é o CART, seguido do seu competidor C4.5. <ref name="citação7">T. Hastie, R. Tibshirani, and J. Friedman, The Elements of Statistical Learning: Data Mining, Inference, and Prediction. Springer Science & Business Media, 2013.</ref>


Tanto uma árvore de decisão como uma árvore de regressão são um grafo acíclico direcionado constituído por nós de divisão com dois ou mais sucessores, ou nós folha.
Tanto uma árvore de decisão como uma árvore de regressão são um grafo acíclico direcionado constituído por nós de divisão com dois ou mais sucessores, ou nós folha.
Linha 179: Linha 77:


Um nó folha é uma função. Em problemas de classificação, a constante que minimiza a função de custo é 0-1 e é a moda. Em problemas de regressão, a constante é a média.
Um nó folha é uma função. Em problemas de classificação, a constante que minimiza a função de custo é 0-1 e é a moda. Em problemas de regressão, a constante é a média.
=== Ganho de Informação ===
O ganho de informação está subjacente ao conceito de entropia. A entropia é uma medição da aleatoriedade de uma variável aleatória, cuja função é:
[[Image:image11.png|image11.png]]
Neste caso, p seria a probabilidade de observar A=0 e p-1 a probabilidade de observar A=1.
No caso das árvores de decisão, a entropia representa a aleatoriedade do atributo alvo, ou seja, a dificuldade para predizer determinado atributo. O índice Gini é uma regra de ganho de informação usado no CART.Este índice de Gini pode ser considerado uma medida de impureza ou como método de divisão na árvore. Na divisão de atributos categóricos, o índice de Gini pode realizar um multi-way split ou um binary split. Este índice é representado pela seguinte fórmula:<ref name="citação5"/>
[[Image:image12.png|image12.png]]


=== Estratégias de Poda ===
=== Estratégias de Poda ===
Linha 200: Linha 107:
# Valores ausentes – Se um valor de atributo é desconhecido, não poderá ser continuado o ramo.
# Valores ausentes – Se um valor de atributo é desconhecido, não poderá ser continuado o ramo.
# Atributos contínuos – A ordenação de cada atributo contínuo estima-se que consuma 70% do tempo necessário para induzir uma árvore de decisão.
# Atributos contínuos – A ordenação de cada atributo contínuo estima-se que consuma 70% do tempo necessário para induzir uma árvore de decisão.
# Instabilidade – Breiman (1996) e Kohavi e Kunz (1997) apontaram que variações no conjunto de treino podem produzir grande variações na árvore final. Mudando um nó, todas as subárvores abaixo desse nó mudam.
# Instabilidade – Breiman (1996) e Kohavi e Kunz (1997) apontaram que variações no conjunto de treino podem produzir grande variações na árvore final. Mudando um nó, todas as sub-árvores abaixo desse nó mudam.


[[Image:image07.jpg|image07.jpg]]
[[Image:image07.jpg| center| frame | Figura 1. Representação de uma árvore de decisão efetuada no Rapidminer com dados dos sobreviventes do “Titanic”.]]


Figura 1. Representação de uma árvore de decisão efetuada no Rapidminer com dados dos sobreviventes do “Titanic”.
O [http://%20https://archive.ics.uci.edu/ml/datasets.html UCI Machine Learning Repository] constitui uma excelente fonte de bases de dados que poderão ser utilizadas de forma gratuita para a aprendizagem da utilização de softwares como rapidminer e weka.


== Regras de Decisão ==
== Regras de Decisão ==
 
Uma regra de decisão tem a forma de Se X Então Y (if X then Y), em que X pode ser uma ou várias condições. Cada condição relaciona um atributo com valores do seu domínio, múltiplas condições podem-se juntar com um dos operadores: e ou ou. A relação pode ser uma do conjunto [[Image:image03.png]].<ref name="citação5"/>
Uma regra de decisão tem a forma de Se X Então Y (if X then Y), em que X pode ser uma ou várias condições. Cada condição relaciona um atributo com valores do seu domínio, múltiplas condições podem-se juntar com um dos operadores: e ou ou. A relação pode ser uma do conjunto [[Image:image03.png]].[[[5]]]
 


Um exemplo de uma regra de decisão, com base na figura 1, é if Sex = Male then No
Um exemplo de uma regra de decisão, com base na figura 1, é if Sex = Male then No


Árvores de Decisão podem ser representadas como conjuntos de regras de decisão, que são escritas considerando o caminho do nó raiz até uma folha da árvore, com o intuito de facilitar a leitura e a compreensão. É portanto possível derivar regras de uma Árvore de Decisão.
Árvores de Decisão podem ser representadas como conjuntos de regras de decisão, que são escritas considerando o caminho do nó raiz até uma folha da árvore, com o intuito de facilitar a leitura e a compreensão. É portanto possível derivar regras de uma Árvore de Decisão.


Uma regra pode ser compreendida sem que haja a necessidade de referenciar-se a outras.
Uma regra pode ser compreendida sem que haja a necessidade de referenciar-se a outras.


=== Algoritmo de OneR ===
=== Algoritmo de OneR ===
O algoritmo OneR (One Rule), proposto por Holte (1993) gera regras baseadas num único atributo. O OneR considera para cada atributo, uma regra por cada valor desse atributo, para cada atributo é calculada a taxa de erro (proporção de erros feitos sobre todo o conjunto de exemplos), e o atributo com menos taxa de erro é o escolhido.<ref name="citação5"/>
O algoritmo OneR (One Rule), proposto por Holte (1993) gera regras baseadas num único atributo. O OneR considera para cada atributo, uma regra por cada valor desse atributo, para cada atributo é calculada a taxa de erro (proporção de erros feitos sobre todo o conjunto de exemplos), e o atributo com menos taxa de erro é o escolhido.<ref name="citação5"/>


Nas tabelas seguintes podemos ver um exemplo prático da aplicação do algoritmo OneR.
Nas tabelas seguintes podemos ver um exemplo prático da aplicação do algoritmo OneR.


 
{| class="wikitable" style="width: 85%; text-align: center; margin:auto;"
{| border="1"
|-
|-
|
|
Outlook
Outlook


|
|
Temperature
Temperature


|
|
Humidity
Humidity


|
|
Windy
Windy


|
|
Play
Play


|-
|-
|
|
sunny
sunny


|
|
hot
hot


|
|
high
high


|
|
false
false


|
|
no
no


|-
|-
|
|
sunny
sunny


|
|
hot
hot


|
|
high
high


|
|
true
true


|
|
no
no


|-
|-
|
|
overcast
overcast


|
|
hot
hot


|
|
high
high


|
|
false
false


|
|
yes
yes


|-
|-
|
|
rainy
rainy


|
|
mild
mild


|
|
high
high


|
|
false
false


|
|
yes
yes


|-
|-
|
|
rainy
rainy


|
|
cool
cool


|
|
normal
normal


|
|
false
false


|
|
yes
yes


|-
|-
|
|
rainy
rainy


|
|
cool
cool


|
|
normal
normal


|
|
true
true


|
|
no
no


|-
|-
|
|
overcast
overcast


|
|
cool
cool


|
|
normal
normal


|
|
true
true


|
|
yes
yes


|-
|-
|
|
sunny
sunny


|
|
mild
mild


|
|
high
high


|
|
false
false


|
|
no
no


|-
|-
|
|
sunny
sunny


|
|
cool
cool


|
|
normal
normal


|
|
false
false


|
|
yes
yes


|-
|-
|
|
rainy
rainy


|
|
mild
mild


|
|
normal
normal


|
|
false
false


|
|
yes
yes


|-
|-
|
|
sunny
sunny


|
|
mild
mild


|
|
normal
normal


|
|
true
true


|
|
yes
yes


|-
|-
|
|
overcast
overcast


|
|
mild
mild


|
|
high
high


|
|
true
true


|
|
yes
yes


|-
|-
|
|
overcast
overcast


|
|
hot
hot


|
|
normal
normal


|
|
false
false


|
|
yes
yes


|-
|-
|
|
rainy
rainy


|
|
mild
mild


|
|
high
high


|
|
true
true


|
|
no
no


|}


|}
 
{| border="1"
{| class="wikitable" style="width: 85%; text-align: center; margin:auto;"
|-
|-
|
|
Attribute
Attribute


|
|
Rules
Rules


|
|
Errors
Errors


|
|
Total errors
Total errors


|-
|-
|
|
outlook
outlook


|
|
sunny → no
sunny → no


overcast → yes
overcast → yes


rainy → yes
rainy → yes


|
|
2/5
2/5


0/4
0/4


2/5
2/5


|
|
4/14
4/14


|-
|-
|
|
temperature
temperature


|
|
hot → no
hot → no


mild → yes
mild → yes


cool → yes
cool → yes


|
|
2/4
2/4


2/6
2/6


1/4
1/4


|
|
5/14
5/14


|-
|-
|
|
humidity
humidity


|
|
high → no
high → no


normal → yes
normal → yes


|
|
3/7
3/7


1/7
1/7


|
|
4/14
4/14


|-
|-
|
|
windy
windy


|
|
false → yes
false → yes


true → no
true → no


|
|
2/8
2/8


3/5
3/5


|
|
5/14
5/14


|}


|}
 
{| border="1"
{| class="wikitable" style="width: 85%; text-align: center; margin:auto;"
|-
|-
|
|
outlook
outlook


|
|
sunny → no
sunny → no


overcast → yes
overcast → yes


rainy → yes
rainy → yes


|}


|}
=== Algoritmo de Cobertura ===
=== Algoritmo de Cobertura ===


Linha 690: Linha 483:




De seguida é apresentado o algoritmo de cobertura [[[5]]]
De seguida é apresentado o algoritmo de cobertura <ref name="citação5"/>
 
<blockquote style="background-color: whitesmoke;">
 
* Entrada: Um conjunto de treino D = {(xi, yi), i = 1, ..., n }
* Entrada: Um conjunto de treino D = {(xi, yi), i = 1, ..., n }
* Saída: Um conjunto de regras: Regras
* Saída: Um conjunto de regras: Regras
Linha 698: Linha 490:
* Seja Y o conjunto das classes em D;
* Seja Y o conjunto das classes em D;
* para cada yi  ∈ Y faça
* para cada yi  ∈ Y faça
 
** repita
* repita
*** Regra = Aprende_Regra(D, yi);
 
*** Regras ← Regras ∪ {Regra};
* Regra = Aprende_Regra(D, yi);
*** D ← Remove exemplos cobertos pela Regra em D;
* Regras ← Regras ∪ {Regra};
** até não haver exemplos de yi;
* D ← Remove exemplos cobertos pela Regra em D;
 
* até não haver exemplos de yi;
 
* fim
* fim
* Retorna: Regras;
* Retorna: Regras;
 
</blockquote>
Têm sido usadas duas estratégias básicas de procura[[[5]]]. Uma baseada numa estratégia top-down que começa na regra mais geral tornando-se depois mais específica acrescentando condições. A segunda começa pela regra mais específica e vai removendo condições tornando-se mais generalizada, é uma estratégia bottom-up e orientada pelos dados.<ref name="citação5"/>
Têm sido usadas duas estratégias básicas de procura de regras<ref name="citação5"/>. Uma baseada numa estratégia top-down que começa na regra mais geral tornando-se depois mais específica acrescentando condições. A segunda começa pela regra mais específica e vai removendo condições tornando-se mais generalizada, é uma estratégia bottom-up e orientada pelos dados.<ref name="citação5"/>




Uma regra torna-se mais específica quando é acrescentada uma condição diminuindo o número de exemplos cobertos pela regra, por outro lado, torna-se mais geral quando se remove uma condição aumentando o número de exemplos cobertos pela regra.
Uma regra torna-se mais específica quando é acrescentada uma condição diminuindo o número de exemplos cobertos pela regra, por outro lado, torna-se mais geral quando se remove uma condição aumentando o número de exemplos cobertos pela regra.


 
=== Algoritmo top-down ===
Algoritmo top-down
<blockquote style="background-color: whitesmoke;">
 
 
* Entrada: Um conjunto de treino D = {(xi, yi), i = 1, ..., n }
* Entrada: Um conjunto de treino D = {(xi, yi), i = 1, ..., n }
* y: classe da regra
* y: classe da regra
Linha 728: Linha 514:
* continua ← Verdadeiro;
* continua ← Verdadeiro;
* enquanto continua faça
* enquanto continua faça
 
** continua ← Falso;
* continua ← Falso;
** para cada avi  ∈ Avs faça
* para cada avi  ∈ Avs faça
*** val ← Avalia(Regra ∪  avi , D, y);
 
*** se val < melhor então
* val ← Avalia(Regra ∪  avi , D, y);
**** melhor ← val;
* se val < melhor então
**** Cond ← avi;
 
**** continua ← Verdadeiro;
* melhor ← val;
*** fim
* Cond ← avi;
*** fim
* continua ← Verdadeiro;
** se continua então
 
*** Regra ← Regra ∪ Cond;
* fim
** fim
 
* fim
* se continua então
 
* Regra ← Regra ∪ Cond;
 
* fim
 
* fim
* fim
* Retorna: Regra;
* Retorna: Regra;
</blockquote>


Algoritmo Bottom-up
=== Algoritmo Bottom-up ===
 
<blockquote style="background-color: whitesmoke;">
 
* Entrada: Um conjunto de treino D = {(xi, yi), i = 1, ..., n }
* Entrada: Um conjunto de treino D = {(xi, yi), i = 1, ..., n }
* y: classe da regra
* y: classe da regra
Linha 763: Linha 541:
* continua ← Verdadeiro;
* continua ← Verdadeiro;
* enquanto continua faça
* enquanto continua faça
 
** continua ← Falso;
* continua ← Falso;
** para cada avi  ∈ Regra faça
* para cada avi  ∈ Regra faça
*** val ← Avalia(Regra \ avi , D, y);
 
*** se val < melhor então
* val ← Avalia(Regra \ avi , D, y);
**** melhor ← val;
* se val < melhor então
**** Cond ← avi;
 
**** continua ← Verdadeiro;
* melhor ← val;
*** fim
* Cond ← avi;
** fim
* continua ← Verdadeiro;
** se continua então
 
*** Regra ← Regra \ Cond;
* fim
** fim
 
* fim
* se continua então
 
* Regra ← Regra \ Cond;
 
* fim
 
* fim
* fim
* Retorna: Regra;
* Retorna: Regra;
</blockquote>


A diferença fundamental entre os dois algoritmos é que o método top-down gera regras ordenadas pela ordem que são induzidas enquanto o método bottom-up gera um conjunto não ordenado. Esta diferença implica que a aplicação do conjunto de regras a exemplos não classificados seja, no caso do top-down, cada exemplo é classificado pela primeira regra satisfeita, no caso bottom-up, todas as regras satisfeitas são utilizadas para classificar o exemplo, optando pela regra com melhor qualidade.
A diferença fundamental entre os dois algoritmos é que o método top-down gera regras ordenadas pela ordem que são induzidas enquanto o método bottom-up gera um conjunto não ordenado. Esta diferença implica que a aplicação do conjunto de regras a exemplos não classificados seja, no caso do top-down, cada exemplo é classificado pela primeira regra satisfeita, no caso bottom-up, todas as regras satisfeitas são utilizadas para classificar o exemplo, optando pela regra com melhor qualidade.


A qualidade da regra deve ser medida tendo em conta :
A qualidade da regra deve ser medida tendo em conta :
* nCover: número de exemplos cobertos pela regra;
* nCover: número de exemplos cobertos pela regra;
* nCorreto: número de exemplos cobertos pela regra que foram corretamente classificados pela regra;
* nCorreto: número de exemplos cobertos pela regra que foram corretamente classificados pela regra;
Linha 800: Linha 568:


= Métodos Probabilísticos: =
= Métodos Probabilísticos: =
Uma das maneiras de lidar com tarefas preditivas em extração do conhecimento de dados;
Uma das maneiras de lidar com tarefas preditivas em extração do conhecimento de dados;


Útil quando as informações disponíveis são incompletas ou imprecisas;
Útil quando as informações disponíveis são incompletas ou imprecisas;


Uso de algoritmos baseados no Teorema de Bayes (Métodos Probabilísticos Bayesianos): a probabilidade de um evento A dado um evento B não depende apenas da relação entre A e B, mas também da probabilidade de observar A independentemente de observar B.
Uso de algoritmos baseados no Teorema de Bayes (Métodos Probabilísticos Bayesianos): a probabilidade de um evento A dado um evento B não depende apenas da relação entre A e B, mas também da probabilidade de observar A independentemente de observar B.


Probabilidade de ocorrer o evento A, dado que foi observado o evento B: P(A|B), onde A representa a classe e B o valor observado dos atributos para um exemplo de teste.<ref name="citação5"/>
Probabilidade de ocorrer o evento A, dado que foi observado o evento B: P(A|B), onde A representa a classe e B o valor observado dos atributos para um exemplo de teste.<ref name="citação5"/>


Exemplo: P(A) = probabilidade de ocorrência de uma determinada doença; P(B) = probabilidade de resultado num exame de raio X; sendo a variável A não observável e diante da evidência do resultado do exame de raio X, podemos inferir o valor mais provável de A estimando:
Exemplo: P(A) = probabilidade de ocorrência de uma determinada doença; P(B) = probabilidade de resultado num exame de raio X; sendo a variável A não observável e diante da evidência do resultado do exame de raio X, podemos inferir o valor mais provável de A estimando:


== Aprendizagem Bayesiana: ==
== Aprendizagem Bayesiana: ==


{| border="1"
{| class="wikitable" style="width: 85%; text-align: center; margin:auto;"
|-
|-
|
|
Doença
Doença


|-
|-
|
|
Presente
Presente


|
|
8%
8%


|-
|-
|
|
Ausente
Ausente


|
|
92%
92%


|}
|}
Quantitativa (a probabilidade a priori de observar a doença):
Quantitativa (a probabilidade a priori de observar a doença):
 
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">
 
P(Doença = Presente) = 0,08,
P(Doença = Presente) = 0,08,


P(Doença = Ausente) = 0,92.
P(Doença = Ausente) = 0,92.
 
</pre>
 
{| class="wikitable" style="width: 85%; text-align: center; margin:auto;"
{| border="1"
|-
|-
|
|
Doença
Doença


|-
|-
|
|
Teste
Teste


|
|
Presente
Presente


|
|
Ausente
Ausente


|-
|-
|
|
Positivo
Positivo


|
|
75%
75%


|
|
4%
4%


|-
|-
|
|
Negativo
Negativo


|
|
25%
25%


|
|
96%
96%


|}
|}
Probabilidades condicionais (a partir de experiências passadas na utilização do teste):
Probabilidades condicionais (a partir de experiências passadas na utilização do teste):
 
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">
 
P(Teste = Positivo |Doença = Presente) = 0,75,
P(Teste = Positivo |Doença = Presente) = 0,75,


P(Teste = Negativo |Doença = Ausente) = 0,96.
P(Teste = Negativo |Doença = Ausente) = 0,96.
 
</pre>
 
Qual é o poder preditivo do Teste com respeito à Doença?
Qual é o poder preditivo do Teste com respeito à Doença?
Se A e B são eventos disjuntos, então [[Image:image13.png|image13.png]];


Lei da probabilidade total:  [[Image:image14.png|image14.png]]


Já que P(A) = P(A|B) X P(B), então:
Lei da probabilidade condicional:<ref name="citação5"/>


[[Image:image15.png|image15.png]]


P(Teste = Positivo) = P(Teste = Positivo |Doença = Presente) X P(Doença = Presente) +


Dedução:


P(Teste = Positivo |Doença = Ausente) X P(Doença = Ausente) =
[[Image:image16.png|image16.png]]


[[Image:image17.png|image17.png]]


0,75 X 0,08 + 0,04 X 0,92 = 0,0968.
[[Image:image18.png|image18.png]]
 
 
P(Teste = Negativo) = P(Teste = Negativo |Doença = Presente) X P(Doença = Presente) +


Já que P(A) = P(A|B) X P(B), então:


P(Teste = Negativo |Doença = Ausente) X P(Doença = Ausente) =
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">
 
P(Teste = Positivo) = P(Teste = Positivo |Doença = Presente) X P(Doença = Presente) + P(Teste = Positivo |Doença = Ausente) X P(Doença = Ausente) = 0,75 X 0,08 + 0,04 X 0,92 = 0,0968.
 
</pre>
0,25 X 0,08 + 0,96 X 0,92 = 0,9032.<ref name="citação5"/>
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">
 
P(Teste = Negativo) = P(Teste = Negativo |Doença = Presente) X P(Doença = Presente) + P(Teste = Negativo |Doença = Ausente) X P(Doença = Ausente) = 0,25 X 0,08 + 0,96 X 0,92 = 0,9032.
</pre>


O problema de Inferência e o Teorema de Bayes: a sua aplicabilidade é reduzida devido ao grande número de exemplos necessários para calcular, de forma viável.
O problema de Inferência e o Teorema de Bayes: a sua aplicabilidade é reduzida devido ao grande número de exemplos necessários para calcular, de forma viável.


 
== O classificador Naïve Bayes ==
== O classificador naive Bayes ==
 
Um dos classificadores Bayesianos mais populares;
Um dos classificadores Bayesianos mais populares;


Assume que os valores de atributos são independentes entre si dada a classe;
Assume que os valores de atributos são independentes entre si dada a classe;


Todas as probabilidades necessárias para a obtenção do classificador são calculadas a partir dos dados de treino;
Todas as probabilidades necessárias para a obtenção do classificador são calculadas a partir dos dados de treino;


Não há a busca explícita por uma hipótese, mas o produto das probabilidades de cada atributo individual (porém é necessário manter um contador para cada classe para o cálculo da probabilidade a priori);
Não há a busca explícita por uma hipótese, mas o produto das probabilidades de cada atributo individual (porém é necessário manter um contador para cada classe para o cálculo da probabilidade a priori);


Para o cálculo da probabilidade condicional é necessário distinguir entre atributos nominais e atributos contínuos;
Para o cálculo da probabilidade condicional é necessário distinguir entre atributos nominais e atributos contínuos;


Atributos nominais: conjunto de valores possíveis é um conjunto enumerável – um contador para cada valor de atributo por classe;
Atributos nominais: conjunto de valores possíveis é um conjunto enumerável – um contador para cada valor de atributo por classe;


Atributos contínuos (número de valores possíveis infinito):
Atributos contínuos (número de valores possíveis infinito):


# Assumimos uma distribuição normal;
# Assumimos uma distribuição normal;
# Discretizar o atributo no pré-processamento (melhores resultados do que assumir distribuição normal):
# Discretizar o atributo no pré-processamento (melhores resultados do que assumir distribuição normal):


# Número de intervalos fixado em um k = mínimo / intervalos do mesmo tamanho;
# Número de intervalos fixado em um k = mínimo (que pode ou não ser igual a 10) / intervalos do mesmo tamanho;
# Depois de discretizar um atributo podemos calcular a probabilidade condicional ao utilizar um contador para cada classe e para cada intervalo.<ref name="citação5"/>
# Depois de discretizar um atributo podemos calcular a probabilidade condicional ao utilizar um contador para cada classe e para cada intervalo.<ref name="citação5"/>


== Análise do algoritmo: ==
== Análise do algoritmo ==


# Superfície de decisão linear (naive Bayes num problema de duas classes definidos por atributos booleanos é um hiperplano);
# Superfície de decisão linear (Naïve Bayes num problema de duas classes definidos por atributos booleanos é um hiperplano);
# As probabilidades exigidas pela equação que determina a probabilidade de um exemplo pertencer à classe em questão podem ser calculadas a partir do conjunto de treino numa única passagem;
# As probabilidades exigidas pela equação que determina a probabilidade de um exemplo pertencer à classe em questão podem ser calculadas a partir do conjunto de treino numa única passagem;
# Processo de construção do modelo bastante eficiente;
# Processo de construção do modelo bastante eficiente;
Linha 975: Linha 710:
# Problema da frequência = 0. Se uma das frequências for igual a zero devemos adicionar 1 a todos os valores da tabela;<ref name="citação5"/>
# Problema da frequência = 0. Se uma das frequências for igual a zero devemos adicionar 1 a todos os valores da tabela;<ref name="citação5"/>


== Desenvolvimentos (técnicas para melhorar o desempenho do classificador naive Bayes): ==
== Desenvolvimentos (técnicas para melhorar o desempenho do classificador Naïve Bayes) ==
 
# Langley = recursivamente constrói uma hierarquia das descrições dos conceitos probabilísticos;
# Kohavi = árvore de naive Bayes (algoritmo híbrido que gera uma árvore de decisão univariada regular cujas folhas contêm um classificador naive Bayes;
# Kononenko = classificador semi-naive Bayes (combina pares de atributos, fazendo um atributo produto-cruzado);
# Pazzani = classificador construtivo, encontrar os melhores atributos do produto cartesiano a partir de atributos nominais existentes;
# John = Bayes flexível para atributos contínuos;
# Gama = Linear Bayes, distribuição normal multivariada para cada classe (atributos contínuos).<ref name="citação5"/>


== Redes Bayesianas para classificação: Modelos gráficos probabilísticos. ==
# [http://www.springer.com/us/book/9783540566021 Langley (1993)] = recursivamente constrói uma hierarquia das descrições dos conceitos probabilísticos;
# [http://www.aaai.org/Library/KDD/kdd96contents.php Kohavi (1996)] = árvore de Naïve Bayes (algoritmo híbrido que gera uma árvore de decisão univariada regular cujas folhas contêm um classificador Naïve Bayes;
# [http://www.springer.com/cn/book/9783540538165 Kononenko (1991)] = classificador semi-Naïve Bayes (combina pares de atributos, fazendo um atributo produto-cruzado);
# [http://www.worldscientific.com/worldscibooks/10.1142/3251 Pazzani (1996)] = classificador construtivo, encontrar os melhores atributos do produto cartesiano a partir de atributos nominais existentes;
# [http://machine-learning.martinsewell.com/feature-selection/JohnKohaviPfleger1994.pdf John (1994)] = Bayes flexível para atributos contínuos;
# [http://www.springer.com/us/book/9783540412762 Gama (2000)] = Linear Bayes, distribuição normal multivariada para cada classe (atributos contínuos).<ref name="citação5"/>


== Redes Bayesianas para classificação: Modelos gráficos probabilísticos ==
Grafo Acíclico Direcionado (DAG) (cujos nós representam variáveis aleatórias e as arestas representam dependências diretas entre as variáveis) + conjunto de tabelas de probabilidade condicional;
Grafo Acíclico Direcionado (DAG) (cujos nós representam variáveis aleatórias e as arestas representam dependências diretas entre as variáveis) + conjunto de tabelas de probabilidade condicional;


Causal; escolha de nós e dependências entre variáveis na rede; probabilidades condicionadas;
Causal; escolha de nós e dependências entre variáveis na rede; probabilidades condicionadas;


Casos em que existe uma relação estatística entre duas variáveis quando uma terceira variável é conhecida (independência condicional entre variáveis);
Casos em que existe uma relação estatística entre duas variáveis quando uma terceira variável é conhecida (independência condicional entre variáveis);


Obter um equilíbrio entre o número de parâmetros a calcular e a representação de dependências entre variáveis;
Obter um equilíbrio entre o número de parâmetros a calcular e a representação de dependências entre variáveis;


Representam a distribuição de probabilidade conjunta de um grupo de variáveis aleatórias num domínio específico;
Representam a distribuição de probabilidade conjunta de um grupo de variáveis aleatórias num domínio específico;


Utilizada para tarefas de classificação de uma forma relativamente simples;
Utilizada para tarefas de classificação de uma forma relativamente simples;


Uma das variáveis é selecionada como atributo alvo e todas as outras são consideradas como atributos de entrada;
Uma das variáveis é selecionada como atributo alvo e todas as outras são consideradas como atributos de entrada;


Dado um conjunto de treino a aprendizagem consiste em selecionar o classificador baseado em Redes Bayesianas, isto é, a hipótese que produz a classificação com maior taxa de acerto para dados não conhecidos;
Dado um conjunto de treino a aprendizagem consiste em selecionar o classificador baseado em Redes Bayesianas, isto é, a hipótese que produz a classificação com maior taxa de acerto para dados não conhecidos;


O objetivo é construir um classificador com elevada taxa de acerto preditiva;<ref name="citação5"/>
O objetivo é construir um classificador com elevada taxa de acerto preditiva;<ref name="citação5"/>


----
----
Linha 1 018: Linha 743:


Um outro método de aprendizagem automática é o denominado metido de otimização que tem como principal objetivo minimizar (ou maximizar) uma determinada função. Este método baseia-se em duas técnicas de extração de conhecimento de dados que recorrem à optimização de uma função de custo na fase de treino e que são : Redes Neuronais Artificiais (RNA) e Máquinas de Vetores de Suporte (SBM). O nosso estudo incidirá apenas sobre as RNA.
Um outro método de aprendizagem automática é o denominado metido de otimização que tem como principal objetivo minimizar (ou maximizar) uma determinada função. Este método baseia-se em duas técnicas de extração de conhecimento de dados que recorrem à optimização de uma função de custo na fase de treino e que são : Redes Neuronais Artificiais (RNA) e Máquinas de Vetores de Suporte (SBM). O nosso estudo incidirá apenas sobre as RNA.


== Redes Neuronais Artificiais ==
== Redes Neuronais Artificiais ==
O desenvolvimento das redes neuronais artificiais teve como principio a estrutura e funcionamento do sistema nervoso humano de forma a que se pudesse ter uma proximidade de simular a capacidade de aprendizagem do nosso cérebro na realização de tarefas que podem ser consideradas simples tais como pegar num objeto mas que apenas são possíveis devido à complexa estrutura do cérebro humano.
O desenvolvimento das redes neuronais artificiais teve como principio a estrutura e funcionamento do sistema nervoso humano de forma a que se pudesse ter uma proximidade de simular a capacidade de aprendizagem do nosso cérebro na realização de tarefas que podem ser consideradas simples tais como pegar num objeto mas que apenas são possíveis devido à complexa estrutura do cérebro humano.


Deve-se a McCulloch e Pitts (1943) o inicio da pesquisa deste tipo de modelos computacionais tendo sido desenvolvido um primeiro modelo matemático denominado de unidades logicas com limiar (LTU em inglês).
Deve-se a McCulloch e Pitts (1943) o inicio da pesquisa deste tipo de modelos computacionais tendo sido desenvolvido um primeiro modelo matemático denominado de unidades logicas com limiar (LTU em inglês).


Este modelo tem como base o Neurónio Biológico sendo que este é o principal bloco de construção do nosso cérebro conforme ilustrado na figura 2 abaixo.


Este modelo tem como base o Neurônio Biológico sendo que este é o principal bloco de construção do nosso cérebro conforme ilustrado na figura abaixo.
[[Image:image05.png|image05.png | center| frame | Figura 2 - Esquema de um neurónio e da forma como o impulso é realizado ao longo do mesmo.]]


Tendo por base este modelo as RNA foram desenvolvidas com o mesmo principio tendo como componentes básicas unidades de processamento simples a que foi dado o nome de neurónios artificiais ilustrado a seguir na figura 3 :


[[Image:image05.png|image05.png]]
[[Image:image08.png|image08.png| center| frame | Figura 3 - Esquema de um neurónio artificial.]]
 
 
Fig. 1 - Esquema de um neurónio e da forma como o impulso é realizado ao longo do mesmo
 
 
Tendo por base este modelo as RNA foram desenvolvidas com o mesmo principio tendo como componentes básicas unidades de processamento simples a que foi dado o nome de neurônios artificiais ilustrado a seguir :
 
 
[[Image:image08.png|image08.png]]
 
 
Fig. 2 - Esquema de um neurônio artificial
 


As redes neuronais artificiais, consistem em programas únicos de software que imitam a ciência de um neurónio.
As redes neuronais artificiais, consistem em programas únicos de software que imitam a ciência de um neurónio.


A conjugação de vários input (dendrites), num determinado centro de processamento (corpo do neurónio).
A conjugação de vários input (dendrites), num determinado centro de processamento (corpo do neurónio).
Linha 1 058: Linha 768:




Uma rede neuronal artificial está, por norma, organizada em camadas, sendo que todos os neurônios de uma determinada camada têm de estar interconectados com um neurônio da camada subsequente.
Uma rede neuronal artificial está, por norma, organizada em camadas, sendo que todos os neurônios de uma determinada camada têm de estar inter-conectados com um neurônio da camada subsequente.


 
Assim, os neurónios da primeira camada terão o nome de neurónios de input, os das camadas intermédias têm a designação de camadas escondidas e os da última camada serão neurónios de output.
Assim, os neurônios da primeira camada terão o nome de neurônios de input, os das camadas intermédias têm a designação de camadas escondidas e os da última camada serão neurônios de output.




Linha 1 070: Linha 779:




O processo de treino no caso especifico deste algoritmo assenta num processo iterativo que constituído por duas etapas ; uma para a frente (forward) e uma par trás (backward) . Na primeira fase cada objeto de entrada é dado a conhecer à rede. O mesmo é recebido por cada um dos neurônios da primeira camada intermediaria sendo ponderado pelo peso associado à conexão de entrada correspondente . Na camada respetiva cada neurônio pertencente à mesma aplica a função de ativação à soma das suas entradas a produz um valor de saída (output) que é utilizado como valor de entrada (input) da camada de neurônios seguinte. Este processo é continuo ate que os neurionios da camada de asida produzem eles mesmos o seu valor de saída. Este valor é então comparado com o valor de com o valor esperado para saída desse neurônio. A diferença entre os valores achados é o erro cometido pela rede para o objeto introduzido na rede.
O processo de treino no caso especifico deste algoritmo assenta num processo iterativo que constituído por duas etapas ; uma para a frente (forward) e uma par trás (backward) . Na primeira fase cada objeto de entrada é dado a conhecer à rede. O mesmo é recebido por cada um dos neurónios da primeira camada intermediaria sendo ponderado pelo peso associado à conexão de entrada correspondente . Na camada respetiva cada neurônio pertencente à mesma aplica a função de ativação à soma das suas entradas a produz um valor de saída (output) que é utilizado como valor de entrada (input) da camada de neurónios seguinte. Este processo é continuo ate que os neurónios da camada de saída produzem eles mesmos o seu valor de saída. Este valor é então comparado com o valor de com o valor esperado para saída desse neurônio. A diferença entre os valores achados é o erro cometido pela rede para o objeto introduzido na rede.




A equação seguinte indica como é feito o ajuste de pesos de uma rede MLP pelo algoritmo back-propagation
A equação seguinte indica como é feito o ajuste de pesos de uma rede MLP pelo algoritmo back-propagation


[[Image:image04.png|image04.png]]
[[Image:image04.png|image04.png]]


Exemplo de algoritmo de treino back-propagation
Exemplo de algoritmo de treino back-propagation
 
<blockquote style="background-color: whitesmoke;">
 
* Entrada : um conjunto de n objetos de treino
* Entrada : um conjunto de n objetos de treino
*
* Saída : Rede MPL com valores de pesos ajustados
* Saída : Rede MPL com valores de pesos ajustados
* inicializar pedos da rede com valores aleatórios
* inicializar pesos da rede com valores aleatórios
* inicializarerro total=0
* inicializar erro total=0
* repita
* repita
** para cada objeto xi do conjunto faça
*** para cada camada de rede , a partir da primeira camada intermediaria.
**** Faça para cada neurónio njl da camada:
***** calcular valor da saída produzida pelo neurónio , f
**** fim
*** fim
*** calcular erro parcial=y-f
*** para cada camada de rede a partir da camada de saída faça:
**** para cada neurónio njl da camada faça
***** ajustar pesos do neurónio utilizando Equação
**** fim
*** fim
*** calcular erro total = erro total + erro parcial
** fim
* até erro total <
</blockquote>


* para cada objeto xi do conjunto faça
=Exemplos Rapidminer=
 
<gallery>
* para cada camada de rede , a partir da primeira camada intermediaria.
Ficheiro:Image19.png|Árvore de decisão e respetivo teste de performance
 
Ficheiro:Image20.png|Cross-Validation de uma árvore de decisão
* Faça para cada neuronio njl da camada:
Ficheiro:Image21.png|Processo de Cross-Validation
 
Ficheiro:Image22.png|Resultado de performance de uma árvore de decisão
* calcular valor da saida produzida pelo neurónio , f
Ficheiro:Image23.png|Exemplo com todos os métods abordados
 
</gallery>
* fim
 
* fim
* calcularerro parcial=y-f
* para cada camada de rede a partir da camada de saída faça:
 
* para cada neurónio njl da camada faça
 
* ajustar pesos do neuronio utilizando Equação
 
* fim
 
* fim
* calcular erro total = erro total + erro parcial
 
* fim
 
* até erro total <


=Conclusão=
The final solution was accomplished by combining many independent models developed by different teams that joined forces. It highlights the power of using ensembles to combine a heterogeneous set of models to achieve maximum accuracy.<ref name="citação10">R. M. Bell and K. Yehuda, “Lessons from the Netflix prize challenge,” ACM SIGKDD Explorations Newsletter, vol. 9, no. 2, p. 75, 2007.</ref>
The final solution was accomplished by combining many independent models developed by different teams that joined forces. It highlights the power of using ensembles to combine a heterogeneous set of models to achieve maximum accuracy.<ref name="citação10">R. M. Bell and K. Yehuda, “Lessons from the Netflix prize challenge,” ACM SIGKDD Explorations Newsletter, vol. 9, no. 2, p. 75, 2007.</ref>
== Referências ==
[1] [[R. Groth,]][[Data Mining: Building Competitive Advantage]][[. Prentice Hall, 2000.]]
[2] [[S. Nagabhushana,]][[Data Warehousing Olap And Data Mining]][[. New Age International, 2006.]]
[3] [[S. M. Weiss and N. Indurkhya,]][[Predictive Data Mining: A Practical Guide]][[. Morgan Kaufmann, 1998.]]
[4] [[P. Adriaans,]][[Data Mining]][[. Addison-Wesley Professional, 1996.]]
[5] [[J. G. A. P. de Leon Carvalho Katti Faceli Ana Carolina Lorena Márcia Oliveira,]][[Extração de Conhecimento de Dados]][[. 2012.]]
[6] [[J. Hipp, H. Jochen, G. Ulrich, and N. Gholamreza, “Algorithms for association rule mining --- a general survey and comparison,”]][[ACM SIGKDD Explorations Newsletter]][[, vol. 2, no. 1, pp. 58–64, 2000.]]
[7] [[S. Brin, B. Sergey, M. Rajeev, J. D. Ullman, and T. Shalom, “Dynamic itemset counting and implication rules for market basket data,” in]][[Proceedings of the 1997 ACM SIGMOD international conference on Management of data - SIGMOD ’97]][[, 1997 [Online]. Available:]][[http://dx.doi.org/10.1145/253260.253325]]
[8] [[J. R. Quinlan and Q. J.R, “Simplifying decision trees,”]][[Int. J. Hum. Comput. Stud.]][[, vol. 51, no. 2, pp. 497–510, 1999.]]
[9] [[T. Hastie, R. Tibshirani, and J. Friedman,]][[The Elements of Statistical Learning: Data Mining, Inference, and Prediction]][[. Springer Science & Business Media, 2013.]]
[10] [[R. M. Bell and K. Yehuda, “Lessons from the Netflix prize challenge,”]][[ACM SIGKDD Explorations Newsletter]][[, vol. 9, no. 2, p. 75, 2007.]]


=Referências=
=Referências=
<references/>
<references/>
Miguel Duarte, João Sabino, Mário Leal e Ricardo Lourenço 05h19min de 22 de fevereiro de 2016 (CET)
-->

Edição atual desde as 21h30min de 21 de abril de 2016

MiguelDuarte
Área(s) de Atuação Informática Médica
Entidade(s) Criadora(s) Mestrado em Informática Médica
Entidade(s) Gestora(s) Faculdade de Medicina da Universidade do Porto
Data de Lançamento 2016


About me

Foto.jpg

Licenciado em Engenharia de Informática pelo ISEP.

A frequentar Mestrado em Informática Médica na FMUP e FCUP.

Developer no Centro Hospitalar São João, co-responsável pelo desenvolvimento de várias aplicações, móveis e desktop, para uso dos vários grupos profissionais.

Formador de iOS no ISEP com formações desde o iOS 4 até ao iOS 9.

Freelancer como Developer de iOS e Windows Phone.

Amador entusiasta no desenvolvimento de aplicações para domótica e iOT

MiguelDuarte (discussão) 01h30min de 4 de fevereiro de 2016 (CET)