Exame 2023_2024
Grupo 1 - Espaços em branco
Questão 1
Numa metodologia de análise de dados como o CRISP-DM, a preparação de dados é uma tarefa anterior à modelagem e é preponderante visto que os dados recolhidos do mundo real podem apresentar-se incompletos, ruidosos.
Questão 2
Algoritmos de Clustering, tais como K-Means e Hierarchical Clustering, implementam uma técnica de aprendizagem não supervisionada com o objetivo de agrupar um conjunto de casos de estudo, de tal forma que os objetos no mesmo grupo apresentam mais similiaridades entre si do que com outros grupos.
Questão 3
Feature Engineering permite a criação de features a partir da informação
disponível, como forma de auxiliar o Machine Learning a realizar previsões mais performantes .
Grupo 2 - Perguntas Extensas
Questão 1: Em alguns algoritmos de Machine Learning é usada a técnica de descida por gradiente (gradient descent) no processo de otimização dos parâmetros do algoritmo.
a) Quais poderão ser os motivos para esta convergir lentamente ou não convergir?
A não-convergência ou a convergência lenta podem ocorrer devido a:
- Learning rate desadequada - os ajustes nos parâmetros são muito pequenos a cada iteração
- Feature Scaling - quando as características (features) têm escalas muito diferentes, a descida por gradiente pode ter dificuldade em convergir eficientemente. Normalizar as características pode ajudar.
- Função de Custo - funções de custo com muitos mínimos locais, platôs ou regiões planas podem dificultar a convergência.
- Inicialização inadequada de pârametros - os valores iniciais dos parâmetros podem afetar a convergência; podem levar a oscilações ou a ficar preso em mínimos locais.
- Precision issues - a precisão numérica pode ser um problema, especialmente se os valores dos gradientes forem muito pequenos ou muito grandes. Isso pode resultar em underflow ou overflow.
- Dependência da inicialização - Se diferentes inicializações levarem a ótimos locais diferentes, o algoritmo pode convergir para soluções distintas.
- Dados ruinosos ou outliers - podem introduzir instabilidade.
b) Indique 2 exemplos de algoritmos de Machine Learning que façam uso desta técnica.
-
Regressão Linear - a descida por gradiente é frequentemente usada para encontrar os coeficientes que minimizam a função de custo, que mede a diferença entre as previsões do modelo e os valores reais. O objetivo é ajustar os parâmetros de modo a minimizar a soma dos quadrados dos erros.
-
Redes Neuronais - a descida por gradiente é amplamente empregada para otimizar os pesos das conexões entre neurónios. É essencial no treinamento de redes neurais, especialmente em arquiteturas profundas. Existem variações como a descida por gradiente estocástica (SGD) e otimizadores mais avançados, como o Adam, que utilizam técnicas adaptativas para ajustar a taxa de aprendizado.
Grupo 3 - V/F
Questão 1: O algoritmo de aprendizagem Decision Tree apresenta normalmente um melhor desempenho quando comparado com o algoritmo Random Forest, apresentando características que possibilitem mitigar o problema de overfit de dados.
Questão 2: O algoritmo de aprendizagem Decision Tree apresenta normalmente um melhor desempenho quando comparado com o algoritmo Random Forest, apresentando características que possibilitem mitigar o problema de overfit de dados.
Verdadeiro.
O Random Forest é uma técnica de ensemble learning que constrói várias árvores de decisão e combina seus resultados. Ao fazer isso, ajuda a reduzir o overfitting, tornando o modelo mais robusto e geral.
Questão 3: Uma matriz de confusão é uma métrica de avaliação de desempenho de modelos de Reinforcement Learning.
Falsa.
A matriz de confusão é uma métrica de avaliação de desempenho mais comumente associada a modelos de aprendizagem supervisionada, especialmente em problemas de classificação. Para avaliar modelos de Reinforcement Learning, são frequentemente utilizadas métricas como recompensa média, retorno esperado, ou métricas específicas do domínio da aplicação.
Questão 4: Em todos os algoritmos de clustering é necessário justificar a quantidade de clusters a procurar nos dados.
Verdadeiro.
A seleção do número de clusters é uma etapa crucial no processo de clustering. A escolha incorreta do número de clusters pode levar a agrupamentos inadequados e prejudicar a interpretação dos resultados. Para isso usa-se o método do cotovelo, método da silhueta, métodos baseados em valores próprios (eigenvalues) ou simplesmente validação externa/conhecimento especializado.
Grupo 4 - Code Analysis
df = pandas.read_csv('breast_cancer_dataset.csv') #load data into dataframe
df['diagnosis'] = df['diagnosis'].substitute(['B', 'M'], [0, 1]) #in column 'diagnosis' substitute data equivalent to B with 0 and M with 1
X = df.drop(['diagnosis', 'id'], axis=1) #drop columns 'diagnosis' and 'id' and that dataframe is now X
y = df['diagnosis'] #column 'diagnosis' is now dataframe y
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=1, random_state=2023) #separation of data sets for training and test; test percentage of total data = 10%, with a random state
model = RandomForestClassifier(random_state=2023) #instanciation of a random forest classifier
model.predict(X_train, y_train) #train the random forest classifier with the train set data
inferences = model.fit(X_test) #fit the model
accuracy = accuracy_score(y_train, inferences) #get the accuracy score of the y predictions given by the fitted model
mse = MSE(y_test, inferences) #get the MSE associated with the fitted model with the test data set
print(classification_report(y_test, inferences)) #summary of various metrics used to evaluate the performance of a classification model. It includes metrics such as precision, recall, F1-score, and support for each class
print(confusion_matrix(y_test, inferences)) #prints the confusion matrix, a table that shows the counts of true positive, true negative, false positive, and false negative predictions.