Escolar Documentos
Profissional Documentos
Cultura Documentos
2023/2024
Aprendizagem Automática em
Sistemas Empresariais
Entrega 3
TP1 – Grupo 1
O grupo terá como base a metodologia CRISP-DM, que fornece um modelo de orientação a
projetos de Data Mining através de uma sequência de eventos idealizados e contém seis fases,
nomeadamente, Business Understanding, Data Understanding, Data Preparation, Modeling, Evalution
Deployment.
Portanto, ao longo da realização deste trabalho, pretende-se aplicar esta metodologia de modo
a obter um modelo de previsão que permita indicar valores futuros para uma variável, target, num
determinado domínio do problema, isto é, um modelo de previsão ideal para o objetivo de negócio.
2
2. Modeling
2.1. Selecionar Técnicas de Modelação
Nesta etapa do projeto, optamos por escolher diversas técnicas de modelação que se adequam
aos diferentes cenários criados e aos testes realizados. Isto vai-nos permitir explorar e comparar os
vários tipos de técnicas em cada uma das análises a serem realizadas. Selecionamos técnicas de
modelação relacionadas com problemas de classificação e problemas de regressão, uma vez que vamos
explorar as duas abordagens.
Relativamente à classificação, para podermos utilizar esta técnica, dividimos a variável preço
em 50 categorias diferentes. Essas categorias enquadram o preço num intervalo de valor mínimo a
valor máximo. Acrescentamos uma nova coluna ao dataset e preenchemos com a categoria associada
ao preço de cada linha. O número de valores por categoria é semelhante. Os intervalos das categorias
não são contínuos.
Tendo em conta a linguagem utilizada ao longo de todo o trabalho, Python, a equipa de trabalho
optou por utilizar a biblioteca sklearn para concretizar a fase da modelação. Dentro desta biblioteca,
selecionamos diferentes técnicas de modelação.
Tabela 1 - Técnicas de Modelação
Regressão Classificação
Decision Tree Utiliza uma árvore de decisão Decision Tree Utiliza uma árvore de decisão
Regressor para prever valores numéricos. Classifier para classificar instâncias em
diferentes categorias.
MLP Regressor Redes Neuronais Artificiais MLP Classifier Redes Neuronais Artificiais para
(MLP) aplicadas à regressão (Redes classificar padrões complexos em
para modelar relações Neuronais) conjuntos de dados.
complexas.
SVR (Support Utiliza vetores de suporte para SVC (Support Utiliza vetores de suporte para
Vector realizar a regressão, sendo Vector classificar instâncias em
Regression) eficaz em conjuntos de dados Classifier) diferentes categorias, eficaz em
complexos. espaços de alta dimensão.
3
2.2. Criar uma conceção de Teste
Nesta fase, a equipa optou por definir vários cenários e métodos para testar a eficácia do
modelo em questão. Assim, podemos afirmar que cada um dos cenários criados é uma combinação de
variáveis fornecidas pelo conjunto de dados, técnicas utilizadas e métodos de teste e validação.
Na seguinte tabela encontram-se representados os diversos cenários criados para cada uma
das técnicas.
Método de Teste
Cenários Atributos Selecionados Técnicas Usadas
e Validação
'brand',’model_year’,’milage','fuel_type', Árvores de Decisão
MAE
‘engine’, 'transmission', 'int_color', Naive Bayes
MSE
C1 'ext_color', 'clean_title', 'accident', Random Forest
RMSE
‘price’, ‘kilometers’, 'horsepower', Vetor Machine
R2
'litres', 'cylinders' Redes Neuronais
Árvores de Decisão
MAE
Naive Bayes
'model_year', 'price', 'kilometers', MSE
C3 Random Forest
'horsepower' RMSE
Vetor Machine
R2
Redes Neuronais
Árvores de Decisão
MAE
Naive Bayes
'model_year', 'price', 'kilometers', MSE
C4 Random Forest
'horsepower' RMSE
Vetor Machine
R2
Redes Neuronais
4
Tabela seguindo a abordagem de problemas de classificação:
Tabela 3 - Técnica de Modelação Classificação
Método de Teste
Cenários Atributos Selecionados Técnicas Usadas
e Validação
Accuracy
'brand',’model_year’,’milage','fuel_type',
Árvores de Decisão precision
‘engine’, 'transmission', 'int_color',
Redes Neuronais recall
C1 'ext_color', 'clean_title', 'accident',
Vetor Machine f1
‘price’, ‘kilometers’, 'horsepower',
Naive Bayes AUC
'litres', 'cylinders'
kappa
accuracy
'brand', 'model_year', 'milage',
Árvores de Decisão precision
'fuel_type', 'engine', 'transmission',
Redes Neuronais recall
C2 'ext_col', 'int_col', 'accident',
Vetor Machine F1
'clean_title', 'price', 'kilometers',
Naive Bayes AUC
'horsepower', 'litres', 'cylinders'
kappa
accuracy
Árvores de Decisão precision
'model_year', 'price', 'kilometers', Redes Neuronais recall
C3
'horsepower' Vetor Machine f1
Naive Bayes AUC
kappa
accuracy
Árvores de Decisão precision
'model_year', 'price', 'kilometers', Redes Neuronais recall
C4
'horsepower' Vetor Machine f1
Naive Bayes AUC
kappa
import pandas as pd
from sklearn.metrics import (
make_scorer,
confusion_matrix
)
from sklearn.model_selection import cross_validate, StratifiedKFold
from sklearn.tree import DecisionTreeRegressor # decision trees for
classification
5
from sklearn.naive_bayes import GaussianNB # naive bayes for classification
from sklearn.svm import SVR
from sklearn.tree import DecisionTreeRegressor
from sklearn.svm import SVC # support vector machines for classification
import pandas as pd
6
from sklearn.neural_network import MLPClassifier # neural networks for
classification
from sklearn.naive_bayes import GaussianNB # naive bayes for classification
from sklearn.svm import SVC # support vector machines for classification
METRICS = {
"accuracy": make_scorer(accuracy_score),
"precision": make_scorer(precision_score, average='weighted'),
"recall": make_scorer(recall_score, average='weighted'),
"f1": make_scorer(f1_score, average='weighted'),
"AUC": make_scorer(roc_auc_score, needs_proba=True, multi_class='ovr',
average='weighted'),
"specificity": make_scorer(specificity_score),
"kappa": make_scorer(cohen_kappa_score)
}
• Regressão
o Cenário1 (todas com outliers)
7
o Cenário 2 (todas sem outliers)
8
• Classificação
o Cenário 1 (todas com outliers)
9
o Cenário 4 (correlação com outliers)
Tal como referido anteriormente, o grupo decidiu dividir em duas perspetivas; regression e
classification. Na regression o melhor modelo encontrado foi o Random Forest Regressor e na
classificação o melhor modelo encontrado foi a Decision Tree Classifier.
Não aplicável.
Não aplicável.
10
3. Evaluation
Segundo a metodologia CRISP-DM a Evaluation é a penúltima fase e tem como objetivo analisar
os impactos dos resultados dos modelos gerados da etapa anterior.
• Regressão
Tabela 12 - Comparar e avaliar os resultados na Regressão
Modelo / Métricas C1 C2 C3 C4
MAE 22880.3615 9252.812706 9771.463369 23067.978716
Decision Tree MSE 7.128680e+09 1.528815e+08 1.703728e+08 8.804754e+09
Regressor RMSE 71292.067247 12325.089725 13040.419066 75717.526006
R2 -0.589065 0.634636 0.557204 -1.663345
MAE 19711.841341 9925.64672 10458.226514 21144.126082
MSE 5.943120e+09 1.972043e+08 2.202289e+08 6.530048e+09
Naive Bayes
RMSE 60773.705532 14021.898223 14823.850602 65940.020436
R2 0.285163 0.524786 0.42705 0.081629
MAE 13949.402096 6144.589488 7914.601306 19767.940514
Random
MSE 4.972935e+09 7.846130e+07 1.290824e+08 6.630686e+09
Forest
RMSE 54551.599223 8806.882541 11341.357988 67749.682751
Regressor
R2 0.333841 0.81296 0.664924 -0.00729
MAE 27184.063668 16037.377387 15411.438959 27025.420321
Vetor MSE 7.198234e+09 4.352618e+08 3.875293e+08 7.193037e+09
Machine RMSE 70758.530536 20831.527072 19678.534252 70708.511698
R2 -0.045349 -0.040507 -0.006282 -0.043042
MAE 22049.046445 8788.400083 9866.693387 22119.175252
Redes MSE 5.974702e+09 1.389079e+08 1.653742e+08 6.061847e+09
Neuronais RMSE 60628.214177 11741.555719 12846.813871 61184.473142
R2 0.313496 0.668316 0.570697 0.294912
11
• Classificação:
Tabela 13 - Comparar e avaliar os resultados na Classificação
Modelo / Métricas C1 C2 C3 C4
accuracy 0.995014 0.990371 0.991238 0.995014
precision 0.995678 0.992286 0.992546 0.995678
Árvore de recall 0.995014 0.990371 0.991238 0.995014
Decisão f1 0.994937 0.990152 0.991015 0.994937
AUC 0.997455 0.995086 0.995524 0.997455
kappa 0.994911 0.990169 0.991056 0.994911
accuracy 0.083892 0.08207 0.061366 0.068909
precision 0.057501 0.052227 0.025487 0.031287
Redes recall 0.083892 0.08207 0.061366 0.068909
Neuronais f1 0.052535 0.050798 0.028742 0.033927
AUC 0.781003 0.780659 0.712655 0.755667
kappa 0.06505 0.06301 0.041885 0.049645
accuracy 0.915491 0.907846 0.930615 0.93171
precision 0.925553 0.921632 0.942624 0.941018
Naive recall 0.915491 0.907846 0.930615 0.93171
Bayes f1 0.91457 0.905826 0.929045 0.930941
AUC 0.99916 0.999105 0.999522 0.999553
kappa 0.913744 0.905905 0.929175 0.930298
accuracy 0.139689 0.095373 0.118705 0.165879
precision 0.100739 0.032807 0.053299 0.126587
Vetor recall 0.139689 0.095373 0.118705 0.165879
Machine f1 0.100629 0.040554 0.066291 0.125487
AUC 0.868399 0.834089 0.878201 0.888634
kappa 0.120541 0.073521 0.099366 0.147324
Quando comparamos os valores obtidos nos cenários 2 e 3, verificamos que possuem valores
satisfatórios e, portanto, admissíveis. Entre o cenário 2 e 3, conseguimos destacar o cenário 2 que
possui um valor mais baixo de MAE e não possui nenhum valor acima do que foi previamente definido,
encontrando-se mais próximos dos valores mencionados na definição de objetivos e critérios de
sucesso de data mining.
De uma forma a detalhar o que foi anteriormente referido, concluímos que o cenário 2
corresponde ao melhor cenário encontrado pelo grupo uma vez que os seus valores das várias métricas
se encontram, maior parte, abaixo dos valores mencionados na definição de objetivos e critérios de
sucesso de data mining.
12
Relativamente à técnica de modelação Regressão, verificamos que ao erro médio absoluto, a
equipa estipulou que erraria abaixo de 20% ao prever o preço dos carros. Desta forma, obtivemos um
erro de 6144 aproximadamente, que dividindo pelo preço médio, que é de 31751, obtemos 19 %,
aproximadamente, pelo que cumpre o critério estipulado.
No que diz respeito à métrica R ao quadrado, foi definido que estaria acima de 0.80 e, após a
fase de modelação, a equipa obteve um valor de 0.81296.
Quanto ao erro médio quadrático, definimos como valores ideais abaixo de 0.30, pelo que
conseguimos cumprir tendo ficado abaixo deste valor. Desta forma, obtivemos um erro de 8806
aproximadamente, que dividindo pelo preço médio, que é de 31751, obtemos 28 %, aproximadamente,
pelo que cumpre o critério estipulado.
Como os modelos preveem o preço dos carros com métricas bastante positivas, os utilizadores
vão confiar mais na nossa plataforma, tornando-se a sua referência no que toca à compra/venda de
carros, com isto aumentamos a nossa taxa da utilização, uma vez que, as pessoas vão recomendar a
plataforma a outros.
Como a plataforma vai fornecer as melhores previsões de preços de automóveis, vamos gerar
grande valor para os utilizadores, que é um dos critérios de negócio mais importante, uma vez que, os
utilizadores tomam melhores decisões quando forem comprar/vender automóveis.
Outro objetivo de negócio é nos conseguirmos destacar em relação à concorrência, para tal
acreditamos que a nossa plataforma, baseada num modelo abrangente, que foi treinada incluindo todo
um espectro de preços de automóveis, dos mais baratos aos mais caros, distingue-se das demais. O
modelo vai continuar sempre a ser treinado, uma vez que os utilizadores após a venda/compra do
automóvel submetem na plataforma o valor real da compra/venda. Com isto o sistema não permanece
estático no tempo e acompanha as variações no mercado de automóveis, com valores atuais.
Após esta comparação dos valores, provenientes das melhores métricas utilizadas para cada
um dos cenários, é possível concluir que tanto o cenário 1 como o cenário 4 vão ser descartados, uma
vez que os seus valores de Erro Médio Absoluto se encontram muito elevados, relativamente ao que
foi definido.
13
A equipa concluiu que o cenário 2 apresenta valores que satisfazem os objetivos da equipa da
melhor maneira, pois os seus valores, nas várias métricas apresentadas, são menores do que os dos
restantes cenários e se encontram mais próximos dos valores mencionados na definição de objetivos e
critérios de sucesso de data mining.
Tal como referimos anteriormente, o grupo decidiu abordar o problema usando duas
perspetivas diferentes para aprofundarmos o conhecimento nas duas técnicas: regression e
classification.
Tendo em conta todos os modelos obtidos, o grupo considerou que era ainda possível otimizar
alguns dos cenários. Para isso, seria necessário realizar uma análise mais precisa dos cenários, através
da utilização de diferentes ferramentas que permitissem obter uma melhor qualidade dos dados. Esta
melhoria na qualidade ia possibilitar a um aumento de soluções ideias.
3.3.2. Decisões
Obter mais dados fiáveis sobre viaturas, as suas características bem como o preço associado.
14