Exame 2021_2022
Grupo 1 - Perguntas Extensas
Questão 1: No desenvolvimento de sistemas de aprendizagem automática (machine learning) podem ser utilizados diferentes paradigmas de aprendizagem. Neste contexto pretende-se que:
a) caracterize os paradigmas de aprendizagem supervisionada, não supervisionada e por reforço;
Aprendizagem Supervisionada: O modelo é treinado com um conjunto de dados rotulado (labeled), onde cada exemplo de entrada está associado a uma saída desejada. O objetivo é que o modelo generalize padrões a partir desses dados rotulados para fazer previsões ou classificações em novos dados.
Aprendizagem Não Supervisionada: O modelo é treinado com um conjunto de dados não rotulado (labeled), e o sistema tenta aprender padrões intrínsecos, estrutura ou relações nos dados sem ter saídas conhecidas. O objetivo é explorar a estrutura oculta nos dados.
Aprendizagem por Reforço: O agente aprende tomando ações num ambiente e recebendo recompensas ou penalidades em resposta a essas ações. O objetivo é que o agente aprenda ações que maximizem a recompensa cumulativa ao longo do tempo.
b) apresente dois exemplos de técnicas de cada paradigma, ilustrando-os com casos de aplicação.
Aprendizagem Supervisionada:
-
Regressão Linear:
- Descrição: Um modelo que procura estabelecer uma relação linear entre variáveis de entrada e saída. É utilizado quando se deseja prever valores contínuos.
- Exemplo de Aplicação: Previsão do preço de imóveis com base em características como área, número de quartos, etc.
-
Support Vector Machine (SVM):
- Descrição: Uma técnica que mapeia dados em um espaço dimensional superior para encontrar um hiperplano que melhor separa classes. Pode ser usado para classificação ou regressão.
- Exemplo de Aplicação: Classificação de documentos em categorias, como spam ou não spam.
Aprendizagem Não Supervisionada:
-
K-Means:
- Descrição: Um algoritmo que agrupa dados em k clusters, onde k é um número predefinido. Cada cluster representa um grupo de dados similares.
- Exemplo de Aplicação: Segmentação de clientes com base em padrões de compra para estratégias de marketing personalizadas.
-
Redes Neuronais:
- Descrição: Uma classe de redes neuronais que aprende representações de dados, geralmente realizando uma compressão e reconstrução dos mesmos.
- Exemplo de Aplicação: Redução de dimensionalidade em conjuntos de dados complexos para visualização ou pré-processamento em tarefas subsequentes.
Aprendizagem por Reforço:
- Q-Learning:
- Descrição: Um algoritmo de aprendizagem por reforço que aprende uma função Q, representando a qualidade de ações em um determinado estado do ambiente.
- Exemplo de Aplicação: Treino de um agente para jogar jogos de tabuleiro, como o xadrez.
- Deep Deterministic Policy Gradients (DDPG):
- Descrição: Um algoritmo que estende a aprendizagem por reforço para ambientes contínuos usando redes neurais profundas para representar políticas e valores.
- Exemplo de Aplicação: Controle de robôs para tarefas físicas, como manipulação de objetos em um ambiente simulado.
Questão 2: O processo de desenvolvimento de uma solução de aprendizagem automática envolve diversas etapas, que podem diferir de acordo com a metodologia escolhida. Tendo em consideração a metodologia CRISP-DM, pretende-se que enumere e descreva as suas etapas.
A metodologia CRISP-DM surge sob a aplicação das seguintes etapas:
- Business Understanding: Compreender os objetivos e requisitos do negócio. Identificar os problemas que podem ser abordados pela aprendizagem de máquina e definir metas claras.
- Data Understanding: Colecionar e explorar os dados disponíveis para o projeto. Avaliar a qualidade dos dados, identificar padrões iniciais e determinar se mais dados são necessários.
- Data Preparation: Tarefas como limpeza de dados, transformação, seleção de atributos e criação de conjuntos de treino e teste. Garantir que os dados estão prontos para serem usados nos algoritmos de machine learning.
- Modeling: Selecionar e aplicar técnicas de modelagem adequadas. Treinar e avaliar vários modelos de machine learning. Ajustar os parâmetros para otimizar o desempenho.
- Evaluation: Avaliar o desempenho dos modelos usando métricas apropriadas. Compreender se os modelos atendem aos critérios de sucesso definidos na fase de 1. Iterar e refinar modelos conforme necessário.
- Deployment: Implementar o modelo num ambiente de produção. Integrar a solução aos sistemas existentes e garantir que ela funcione conforme o esperado. Desenvolver planos de monitorazação e manutenção contínua.
Grupo 2 - Espaços em branco
Questão 1
No contexto da utilização de técnicas de aprendizagem automática (machine learning), a adoção de uma metodologia para a extração de conhecimento descreve e cria smth pelos quais deverá passar o desenvolvimento de um projeto de extração de conhecimento para smth.
Questão 2
A metodologia de extração de conhecimento que se desenvolve em 5 etapas, a saber, Sample, Explore, Modify, Model e Assess denomina-se SEMMA.
Referência: T2#SEMMA
Questão 3
Máquina de Vetores de Suporte (Support Vector Machine) é uma técnica supervisionada de aprendizagem automática que pode ser utilizada para resolver problemas de classificação e de regressão.
Questão 4
Num diagrama de caixa (boxplot), como no exemplo à direita, o
ponto C corresponde à mediana, a caixa G representa 50% centrais dos dados do estudo, e os círculos F identificam os valores outliers do dataset.
Grupo 3 - Code Analysis
Questão 1
df = pd.read_csv('titanic_dataset.csv') ```python
# Carrega um conjunto de dados do arquivo 'titanic_dataset.csv' para uma dataframe usando a biblioteca pandas
X = df.drop(['Survived', 'Age', 'PassengerId', 'Name', 'Ticket', 'Cabin', 'Embarked', 'Sex'], axis=1) # Remove as colunas especificadas ('Survived', 'Age', 'PassengerId', 'Name', 'Ticket', 'Cabin', 'Embarked', 'Sex') do DataFrame, e este será o X (variável independente)
y = df['Survived'] # Define o target (variável dependente) como a coluna 'Survived'
sex_ohe = pd.merge(df['Sex'], drop_first=True)#Realiza a codificação one-hot para a coluna 'Sex'
embarked_ohe = pd.merge(df['Embarked'], drop_first=True) #Realiza a codificação one-hot para a coluna 'Sex'
X = pd.concat([X, sex_ohe, embarked_ohe], axis=1) #Concatena as colunas codificadas ao DataFrame X
X_train, X_test, y_train, y_test = train_test_split(y, X, test_size=0.3)
# Divide o conjunto de dados em conjuntos de treino e teste
model = Sequential()# Cria um modelo de rede neural sequencial
model.add(Dense(16, input_dim=y.shape[1], activation='relu')) #Adiciona uma camada densa com 16 neurônios, função de ativação 'relu', e especifica a entrada
model.add(Dense(8, activation='relu')) #Adiciona uma camada densa com 8 neurônios e função de ativação 'relu'
model.add(Dense(1, activation='sigmoid')) #Adiciona uma camada densa com 1 neurônio e função de ativação 'sigmoid' para problemas de classificação binária
model.compile( loss = 'binary_crossentropy', optimizer = 'adam', metrics = ['mse']) #Compila o modelo com a função de perda 'binary_crossentropy', otimizador 'adam' e métrica 'mse' (erro quadrático médio)
model.transform(X_train, y_train, epochs=50, batch_size=32) #Treina o modelo nos dados de treinamento por 50 épocas com um tamanho de lote de 32
loss, acc = model.evaluate(X_train, y_train) #Avalia o modelo nos dados de treinamento e retorna a perda (loss) e a acurácia (acc)
Questão 2 - Identifique a técnica de aprendizagem utilizada no excerto de código apresentado na Figura 1, e indique quatro hiperparâmetros passíveis de serem modificados para afinar o modelo.
O excerto de código apresentado utiliza uma técnica de aprendizagem profunda (deep learning), especificamente uma rede neural implementada com a biblioteca Keras.
Quanto aos hiperparâmetros que podem ser modificados para afinar o modelo, aqui estão quatro exemplos:
- Número de Camadas e Neurónios: Número de camadas e a quantidade de neurônios em cada camada podem ser ajustados para alterar a capacidade e complexidade da rede neural;
- Função de ativação: A função de ativação usada nas camadas pode ser modificada. No exemplo, 'relu' é usado nas camadas ocultas, mas outras opções incluem 'sigmoid', 'tanh', etc.
- Learning Rate: A taxa de aprendizado no otimizador 'adam' pode ser ajustada para controlar o tamanho dos passos durante a descida por gradiente.
- Número de Épocas e Tamanho do Lote (Batch Size): O número de épocas (ciclos completos pelos dados de treinamento) e o tamanho do lote (número de amostras usadas em cada atualização do modelo) podem ser ajustados.
Questão 3 - Admita que o dataset Titanic não está balanceado. Descreva de que forma este desbalanceamento influencia o modelo.
O desbalanceamento em um conjunto de dados, como no caso do dataset Titanic, ocorre quando o número de amostras em cada classe alvo é significativamente diferente. No contexto do Titanic, isso significa que o número de passageiros que sobreviveram pode ser muito diferente do número de passageiros que não sobreviveram.
A influência do desbalanceamento pode afetar o treino e a avaliação do modelo de várias maneiras:
- Bias do modelo: Modelos treinados em conjuntos de dados desbalanceados podem desenvolver biases em direção à classe majoritária. Eles podem ter dificuldade em aprender padrões da classe minoritária, resultando em um modelo que favorece a previsão da classe maioritária.
- Desempenho na Classe Minoritária: A classe minoritária pode não ser representada adequadamente durante o treinamento, levando a um desempenho inferior na previsão dessa classe. O modelo pode ter dificuldade em generalizar padrões específicos da classe minoritária devido à falta de exemplos para aprendizado.
- Métricas Enganosas: Métricas de desempenho, como accuracy, podem ser enganosas em conjuntos de dados desbalanceados. Um modelo que prevê sempre a classe majoritária pode ter uma alta accuracy, mas não será útil em situações em que a classe minoritária é crítica.
- Sensibilidade a Erros: Erros na previsão da classe minoritária podem ter um impacto mais significativo, dependendo da aplicação. Em alguns casos, o custo de prever erroneamente a classe minoritária pode ser muito maior do que prever erroneamente a classe majoritária.
Grupo 3 - V/F
Questão 1 - No desenvolvimento de sistemas de aprendizagem automática, a fase de preparação de dados tem particular importância porque os dados obtidos do «mundo físico» são incompletos, contêm lixo e são falsos.
Verdadeiro.
A afirmação de que os dados obtidos do "mundo físico" são incompletos, contêm lixo e são falsos é, de facto, uma generalização, mas é muito raro haver "dados perfeitos". A qualidade dos dados pode variar significativamente, o que afeta bastante o trabalho do analista de dados.
A preparação de dados é importante porque lida com questões como limpeza de dados, tratamento de valores nulos/ausentes e transformação de dados para que se adequem aos requisitos dos algoritmos de aprendizagem de máquina. A qualidade dos resultados da aprendizagem automática depende da qualidade e preparação dos dados.
Questão 2 - Técnicas de aprendizagem automática baseadas no desenvolvimento de árvores de decisão são utilizadas exclusivamente para a resolução de problemas de classificação.
Falso. Técnicas de aprendizagem automática baseadas em árvores de decisão são versáteis e aplicáveis tanto a problemas de classificação quanto a problemas de regressão.
Questão 3 - Paradigmas de aprendizagem com supervisão exigem maior intervenção humana do que qualquer outro paradigma uma vez que necessitam de quem desempenhe o papel de supervisor.
Falso. Embora os paradigmas de aprendizagem supervisionada envolvam a necessidade de rótulos ou supervisão humana para treinar modelos, não é necessariamente verdade que exigem maior intervenção humana do que outros paradigmas. Em paradigmas não supervisionados, como clustering, é possível que a interpretação e validação dos resultados exijam intervenção humana significativa. Além disso, em aprendizagem por reforço, a interação contínua com o ambiente pode demandar supervisão humana.
Questão 4 - O tratamento de valores nulos (missing values) existentes num dataset pode envolver a remoção de observações/registos ou de atributos/características
Verdadeiro. O tratamento de valores nulos em um dataset pode envolver a remoção de observações/registros ou de atributos/características, dependendo da quantidade de dados faltantes e da importância das informações ausentes. Alternativa a isto é o capping de valores em falta.
Questão 5 - A matriz de confusão à direita apresenta um valor de accuracy de 165/150 .
Falso.
Accuracy = (TP+TN)/Total de Amostras = (100+50)/165 = 150/165.
Questão 6 - Num processo de aprendizagem automática, a qualidade dos dados não afeta os resultados do processo uma vez que na fase de preparação de dados serão resolvidos todos os problemas como, por exemplo, ruído, outliers, dados falsos ou dados duplicados
Falso. A qualidade dos dados é crucial para o sucesso de um processo de aprendizagem automática. Embora a fase de preparação de dados possa lidar com problemas como ruído, outliers, dados falsos e duplicados, não é possível resolver completamente questões fundamentais de qualidade, como representatividade inadequada ou informações ausentes.