Você está na página 1de 21

1

Universidade do Minho
Mestrado Integrado em Engenharia Informática

Descoberta de Conhecimento
Ano Letivo de 2019/2020

Ficha 04

Alexandru Domente PG41063


Francisco Reinolds A82982
José Costa A82136

2
Q. 1.1
1. Para cada atributo encontre as seguintes informações. Alíneas: a, b, c.

Atributo Tipo do % de Máximo Mínimo Média Desvio


Atributo valores Padrão
ausentes

age Numeric 0 77 29 54.366 9.082

sex Nominal 0 - - - -

cp Nominal 0 - - - -

trestbps Numeric 0 200 94 131.624 17.538

chol Numeric 0 564 126 246.264 51.831

fbs Nominal 0 - - - -

restecg Nominal 0 - - - -

thalach Numeric 0 202 71 149.647 22.905

exang Nominal 0 - - - -

oldpeak Numeric 0 6.2 0 1.04 1.161

slope Nominal 0 - - - -

ca Numeric 2 3 0 0.674 0.938

thal Nominal 1 - - - -

num Nominal 0 - - - -

d)
Sim, nomeadamente nos atributos:
1. age -> 4 registos únicos (correspondentes a 1% dos registos)
2. trestbps -> 16 registos únicos (correspondentes a 5% dos registos)
3. chol -> 62 registos únicos (correspondentes a 20% dos registos)
4. thalach -> 28 registos únicos (correspondentes a 9% dos registos)
5. oldpeak -> 10 registos únicos (correspondentes a 3% dos registos)

3
e)
age -> à medida que a idade aumenta, verificamos um aumento na ocorrência de
doenças cardíacas, até aos 67.6 anos, idade a partir da qual, a percentagem de
ocorrências diminui.
sex -> existe uma maior percentagem de ocorrência de doenças cardíacas em homens
do que nas mulheres
cp -> nota-se uma maior percentagem de ocorrência de doenças cardíacas, cerca
trestbps -> excetuando um ou dois intervalos nos registos (94 a 102.83 e 164 a 182),
verifica-se cerca de 50% de ocorrência de doenças cardíacas em todos os intervalos
chol -> analogamente ao anterior, excetuando um ou dois intervalos, a ocorrência
permanece igual ao longo dos registos
fbs -> apesar de existirem muitos mais casos com o atributo f do que com o t, a
percentagem de ocorrência de doenças cardíacas
restecg -> verificamos uma ocorrência de doenças cardíacas semelhante nos 3 valores
thalach -> à medidia que o thalach aumenta, diminuiem as ocorrências de doenças
cardíacas, verificando-se uma proporcionalidade inversa
exang -> quando o valor do atributo é “no” verifica-se uma menor ocorrência de
doenças cardíacas enquanto que quando o valor é “yes” verifica-se uma grande
ocorrência de doenças cardíacas
oldpeak -> verifica-se um aumento de ocorrências de doenças cardíacas à medida que
o valor do atributo aumenta
slope -> quando o atributo toma o valor de up, temos uma baixa incidência de doenças
cardíacas, enquanto que quando toma os valores flat e down, verifica-se uma maior
incidência
ca -> à medida que o ca aumenta, aumenta também o número de ocorrências
thal -> o thal adota três valores, fixed_defect, normal, reversable defect, para os
valores fixed e reversable defect, verifica-se uma grande ocorrência de doenças
cardíacas enquanto que se o thal adotar o valor normal, temos uma baixa ocorrência

2.
a)
4
Podemos verificar que à medida que o thalach aumenta, nota-se uma diminuição nos
ocorrências de doenças cardíacas.

5
Podemos também constatar que independentemente do valor de colesterol, à medida
que o valor de thalach aumenta, diminuem o número de ocorrências de doenças
cardíacas.

b) Denota-se, inicialmente, uma correlação entre os atributos “trestbps” e “chol”,


isto é, a pressão sanguínea está diretamente ligada ao colesterol de cada
doente, como se comprova pela similaridade dos dados abaixo:

6
Destaca-se, também, a observação de que, à medida que se envelhece, a
pressão sanguínea tende também a aumentar. Tal pode ser comprovado com
o gráfico abaixo, que expõe o aumento da pressão sanguínea à medida que
subimos no eixo dos yy, isto é, aumentar a idade:

7
3. Onde se denotam mais áreas densas de casos de doenças cardíacas é, justamente,
na correlação exposta na alínea anterior. Analisando a pressão sanguínea
relativamente ao colesterol, é visível que existe um grande aglomerado de casos de
doenças cardíacas quando estes dois atributos têm valores similares:

8
Q1.2
1) Após a aplicação do filtro AttributeSelection do Weka verificamos que, dos 14
atributos que compõem o dataset, 8 deles foram selecionados para um novo
subconjunto de dados que contém atributos com maior capacidade de
previsão.

2)
a) Para tratar os valores em falta substituindo os valores numéricos em
falta pela média do atributo e os nominais pela moda, foi utilizado o filtro
ReplaceMissingValues, que efetua todas estas alterações de forma
automática.

b) Há, também, a possibilidade de utilizar regressão linear para preencher


os valores em falta no dataset. Para o atributo “ca”, que é numérico, a previsão
pode ser feita por regressão linear, sendo possível calcular os valores em falta
segundo a seguinte fórmula:

No entanto, o atributo “thal”, que tem dois valores em falta, é


nominal. Assim sendo, não é possível aplicar regressão linear para o cálculo
dos valores em falta, pelo que estes foram alterados, tal como na alínea
anterior, pela moda do atributo, que se cifra em “normal”.

3) Para descobrir e eliminar os outliers do nosso dataset, foi utilizado o filtro


InterquartileRange com os seus parâmetros predefinidos, que quando

9
aplicado criou no conjunto de dados dois novos atributos: “Outlier” e
“ExtremeValue”:

Estes atributos, nominais e binários (“yes” e “no”), indicam se cada uma das
303 entradas do nosso dataset é avaliada como sendo (ou não) um outlier.
Ao observar o atributo “Outlier”, notamos que nenhuma entrada foi detetada
como sendo um valor discrepante:

De qualquer forma, e para interiorizar as várias potencialidades do Weka,


aplicou-se o filtro RemoveWithValues para remover outliers, sendo que nesse
filtro alteramos o parâmetro “attributeIndex” para “9” - Número do atributo
“Outlier”, e ainda o “nominalIndices” para “last”, que corresponde ao campo
“yes”, isto é, aos valores que tenham sido avaliados como discrepantes.

10
No entanto, e como foi dito acima, o filtro InterquartileRange não detetou
outliers, pelo que ao aplicar o filtro RemoveWithValues não se verificou
qualquer alteração aos dados.

11
Q1.3

Neste exercício, serão comparados os seguintes datasets: heart-c, heart-c1, heart-c2 e


heart-c3.

1)
a)
HEART-C:

HEART-C1:

HEART-C2:

HEART-C3:

12
Para obter estas classificações, foi executado em cada um dos datasets o
algoritmo OneR com o método 10 fold-cross validation.

b) Utilizando como opção de treino o set de treino, ao invés do método de


fold-cross validation, obteve-se esta classificação em cada um dos quatro
conjuntos avaliados:

Isto denota que existe uma melhoria na precisão quando é utilizado o


conjunto de treino, que se justifica pelo facto de este estar a também a ser
utilizado como teste para o algoritmo. Isto faz com que se torne mais simples
prever o resultado do algoritmo, dado que é com os mesmos dados que este
efetua a aprendizagem, mas não previne um possível overfitting do modelo.

2)
HEART-C (com/sem pruning):

HEART-C1 (com/sem pruning):

13
HEART-C2/C3 (com/sem pruning):

Como é possível verificar, existe uma melhoria substancial na previsão


quando não é usado o pruning. O pruning (poda) é uma estratégia de redução
que, neste contexto, está aliado ao algoritmo RIPPER para auxiliar a uma
redução no erro.

3)
a) Utilizou-se o classificador J48 alterando os parâmetros “unpruned” e
“minNumObj”, obtendo-se sempre uma melhoria aquando estes
valores eram, respetivamente, “True” e “1”, isto é, sem fazer uma

14
poda dos registos da árvore e em que o número mínimo de registos
em cada folha é apenas um.

HEART-C (com pruning, minNumObj = 2):


HEART-C (sem pruning, minNumObj = 2):
HEART-C (sem pruning, minNumObj = 1):

HEART-C1 (com pruning, minNumObj = 2):


HEART-C1 (sem pruning, minNumObj = 2):
HEART-C1 (sem pruning, minNumObj = 1):

15
HEART-C2 (com pruning, minNumObj = 2):
HEART-C2 (sem pruning, minNumObj = 2):
HEART-C2 (sem pruning, minNumObj = 1):

HEART-C3 (com pruning, minNumObj = 2):

16
HEART-C3 (sem pruning, minNumObj = 2):
HEART-C3 (sem pruning, minNumObj = 1):

17
Q1.4
2) O número mais adequado será o 5. Porque desta forma iremos obter um erro
menor, sem ter de dividir muito o dataset.

3e4)
Este exercício foi executado com um número de clusters igual a 5. Apenas foram
atribuídas classes aos clusters 3 e 4, onde no caso do cluster 3 não há existência de
doença e no cluster 4 indica um aumento do nível de doença cardíaca. Após
analisarmos os valores em ambos os clusters reparamos nas seguintes diferenças:

cp

Cluster 3: asympt

Cluster 4: non\_anginal

restecg

Cluster 3: left\_vent\_hyper

Cluster 4: normal

exang

Cluster 3: yes

Cluster 4: no

oldpeak

Cluster 3: 1.7826 (+/-1.2842)

Cluster 4: 0.5563 (+/-0.8287)

18
slope

Cluster 3: flat

Cluster 4: up

thal

Cluster 3: reversable\_defect

Cluster 4: normal

5)
Após utilizar a opção “Visualize cluster assignments”, apenas conseguimos descrever
o cluster 0 como sendo o único cujas instâncias eram na maioria do sexo feminino.
No caso dos restantes clusters não foi possível descobrir uma descrição pois os dados
estavam muito distribuídos, não permitido destacar nenhuma característica.

6)
Após seguir a recomendação indicada no enunciado, testamos todos os
classificadores que foram lecionados nas aulas e chegamos à conclusão de que o
classificador IBk, com o parâmetro “Cross-validation Folds “igual a 20 e os restantes
parâmetros por defeito, apresentava os melhores resultados, classificando 260
instâncias corretamente e 43 incorretamente. Desta forma conseguimos obter
melhores resultados dos que foram alcançados na secção 1.3.

19
Q 1.5
1) Weka fornece várias medidas de avaliação de desempenho, de entre as quais
se destacam: o número de instâncias corretamente classificadas, o número de
instâncias incorretamente classificadas, a e o número total de instâncias
analisadas. A primeira medida mencionada é um valor percentual indicativo
das instâncias que o classificador conseguiu identificar corretamente, em
oposição à segunda medida indicada, que apresenta uma percentagem de
instâncias mal identificadas. A confusion matrix é uma matriz de valores
inteiros, que para cada tipo de classificação, indica o número de vezes que se
classificou uma instância com esse mesmo tipo. O número total de instâncias
indica o caso de estudo. Escolheram-se estas medidas de desempenho, pois
são as principais utilizadas nas aulas práticas, para além de que os seus
valores não deixam ambiguidades.

2 e 3)

Conclui-se que para o classificador IBk, o teste efetuado ao dataset heart-c1.arff


apresenta os melhores resultados em termos de instâncias corretamente
classificadas e os valores mais baixos para o número de instâncias incorretamente
classificadas. Em relação ao classificador NaiveBayes, o teste efetuado ao dataset
heart-c1.arff apresenta os melhores resultados em termos de instâncias
corretamente classificadas e os valores mais baixos para o número de instâncias
incorretamente classificadas.

DATASET Original

20
DATASET heart-c1.arff

DATASET heart-c2.arff

DATASET heart-c3.arff

21

Você também pode gostar