fbpx
Sigmoidal
  • Home
  • Cursos
  • Pós-Graduação
  • Blog
  • Sobre Mim
  • Contato
Sem Resultado
Ver Todos Resultados
  • English
  • Home
  • Cursos
  • Pós-Graduação
  • Blog
  • Sobre Mim
  • Contato
Sem Resultado
Ver Todos Resultados
Sigmoidal
Sem Resultado
Ver Todos Resultados

Data Science: Investigando o naufrágio do Titanic [Pt. 1]

Carlos Melo por Carlos Melo
julho 11, 2019
em Blog, Data Science
4
130
COMPARTILHAMENTOS
4.3k
VIEWS
Publicar no LinkedInCompartilhar no FacebookCompartilhar no Whatsapp

O desafio de Data Science (Ciência de Dados) do Titanic é uma das competições mais conhecidas dos cientistas de dados, e é promovida pelo site kaggle.com.

Tamanha popularidade desta competição fez com que ela fosse considerada como sendo um Hello, World! para o universo fantástico do Data Science .

Neste tutorial, damos início à análise exploratória de dados que termina com a construção de modelos de Machine Learning (Parte II). Para ver a continuação deste artigo:

[PARTE II – DESAFIO DO TITANIC]

Com certeza, a maioria de vocês conhece a história por trás do naufrágio deste que seria o navio mais moderno do mundo para a época. Apesar da tecnologia disponível, após colidir com um iceberg em 15 de abril de 1912, seu naufrágio matou 1502 pessoas de um total de 2224 passageiros.

Competição de Data Science: Titanic, Kaggle e Python

Como principal fator contribuinte, logo se descobriu que não havia botes salva-vidas suficientes para toda a tripulação e passageiros, além de diversas atitudes irresponsáveis por parte da tripulação..

Obviamente, aqueles que sobreviveram à tragédia contaram com muita sorte, mas será que alguns grupos de passageiros não tiveram “mais sorte” que outros grupos? Será que crianças e mulheres realmente tiveram mais chances de sobreviver? Será que o Jack teve menos chances de escapar do seu destino trágico que a Rose, só pelo fato de ele ter embarcado na 3ª Classe?

Com os dados reais disponibilizados, agora você pode fazer uma análise exploratória, testar suas hipóteses e até mesmo construir um modelo preditivo (que tal descobrir quais seriam suas chances de sobrevivência na 1ª Classe se você tivesse viajado com sua esposa e filho?!).

Eu acho este um ótimo exemplo para uma introdução ao mundo da Ciência de Dados, e pretendo dividir toda a análise em 3 artigos diferentes, onde vamos entender o problema, explorar os dados e construir dois modelo de Machine Learning (Regressão Logística e Árvore de Decisão) para gerar previsões para nós.

Acessar Código Fonte

Como estou escrevendo todo o  código em um notebook do Jupyter, não faz sentido colocar todo o código aqui no blog. Para você entender o passo a passo, acesse o notebook com todo o código no repositório do Github clicando no botão acima.

Checklist do Cientista de Dados: Como começar?

Todo projeto de Data Science precisa seguir um framework, um fluxograma ou pelo menos um checklist com algumas etapas essenciais para se fazer uma boa análise.

Se a primeira coisa que você faz quando vai iniciar um projeto é criar de cara um notebook, importar os arquivos para um DataFrame e já sair escrevendo código, há grandes chances que você vai ficar perdido no meio da análise.

Competição de Data Science: Titanic, Kaggle e Python

Existem diversos frameworks que podem ser usados, como o CRISP-DM (Cross Industry Standard Process for Data Mining) e outros. Servindo como um checklist para te balizar, eles dividem o ciclo de vida de um projeto de Data Science em etapas que são comuns a diversos problemas, dando mais agilidade e credibilidade ao seu trabalho.

Especificamente para este Projeto do Titanic, seguiremos as seguintes etapas ao longo dos três de artigos (e notebook):

  1. Definição do Problema
  2. Obtenção dos Dados
  3. Exploração dos Dados
  4. Preparação dos Dados
  5. Modelagem
  6. Avaliação

Você vai ver só como dividir um problema em etapas bem definidas vai te ajudar e tornar as análises mais robustas.

O objetivo deste desafio de Data Science é utilizar os dados disponíveis para medir a probabilidade de sobrevivência dos passageiros do Titanic.

1. Definição do Problema de Data Science

Muita gente prefere ir direto ao código e modelagem de seus problemas de Data Science, o que é um erro grave!

Já escutou aquela frase “para quem não sabe onde quer chegar, qualquer caminho serve”? Então, se você não gastar um tempo logo no começo para entender sobre o que o negócio se trata e qual o problema que se espera resolver, provavelmente você vai se perder em algum momento lá na frente.

No nosso caso, entender o problema (ou negócio) é pesquisar um pouco mais da historia do Titanic 🙂

A construção do Titanic levou cerca de 2 anos e custou 7,5 milhões de dólares (valores da época). Com 269 metros de comprimento, 28 metros de largura e 53 metros de altura, operava com uma tripulação de 892 pessoas e poderia levar até 2435 passageiros (espalhados pelas três classes disponíveis).

Pensado para ser o mais seguro e luxuoso navio da época, foi lançado ao mar em 1911, ganhando fama de ser “inafundável”.

O naufrágio do Titanic teve como fatores contribuintes causas naturais (como o clima) e causas humanas (negligência e excesso de confiança). Independente das causas, o fato é que seu naufrágio matou 1502 pessoas de um total de 2224 passageiros.

Embora aqueles que escaparam com vida tiveram sua boa dose de sorte, alguns grupos de pessoas eram mais propensos a escaparem da morte do que outros. Por exemplo, mulheres, crianças e passageiros da 1ª Classe. Assim, nota-se que existe algum padrão que pode ser extraído dos dados brutos.

A descrição completa da competição, assim como o conjunto de dados, está disponível na página do Kaggle Titanic: Machine Learning from Disaster.

Objetivo

Espera-se que você consiga fazer uma análise sobre quais variáveis tiveram maior influência na probabilidade de sobrevivência (ou seja, que tipo de pessoa teve mais chance de escapar com vida).

Após analisar os dados, espera-se também que você seja capaz de construir um modelo que dê a previsão de sobrevivência para um passageiro qualquer que seja fornecido como input.

Métrica de Desempenho

O score é calculado em relação ao número de previsões corretas que seu modelo fez. Ou seja, é considerada apenas a acurácia do modelo.

2. Obtenção dos Dados

Todo o material necessário está disponível no site da competição, com maiores detalhes e explicações. Os dados disponibilizados pelo Kaggle foram divididos em dois grupos:

  • Dataset de treino (train.csv)
    • Deve ser usado para construir o modelo de Machine Learning. Neste conjunto de dados, é informado se o passageiro sobreviveu ou não.
    • Composto por diversas features como gênero do passageiro e classe do embarque.
  • Dataset de Teste (test.csv)
    • Deve ser usado como dados que nunca forma vistos pelo modelo. Neste conjunto de dados, não é informado se o passageiro sobreviveu ou não.
Competição de Data Science: Titanic, Kaggle e Python

Para conseguir baixar os dados, é obrigatório fazer o cadastro no Kaggle antes.

Também é disponibilizado um modelo (gabarito) de como as previsões devem ser enviadas para a plataforma do Kaggle (gender_submission).

Como esta é uma competição introdutória, há poucas variáveis e entradas, além das inforções estarem bem pré-processadas. Para conseguir baixar os arquivos, é precisar criar um login no Kaggle antes.

3. Exploração dos Dados

Definitivamente, a etapa mais importante do projeto. É aqui que você vai gastar entre 70-80% do tempo total. Muitas vezes, as perguntas e hipóteses iniciais conseguem ser respondidas apenas com uma Análise Exploratória bem feita. Caso seja necessário construir um modelo, o desempenho do mesmo estará diretamente ligado à qualidade dessa análise. Nesta etapa você irá:

  • Estudar cada atributo e suas características, tais como:
    • Nome
    • Tipo (numérica, categórica, float, int, etc)
    • % de valores faltantes para cada coluna
    • Presença de ruído ou outliers
    • Tipo de distribuição (Gaussiana, uniforme, logarítmica,)
  • Identificar a variável alvo 
  • Identificar correlações
  • Visualizar os dados graficamente

Como se trata de um Aprendizado Supervisionado (Supervised Learning), a variável Survived é facilmente identificada como sendo a nossa variável alvo (target). De grande importância, vamos construir agora um dicionário de dados, para saber exatamente qual o significado de cada coluna.

Dicionário de Dados

  • PassengerId: Número de identificação do passageiro
  • Survived: Informa se o passageiro sobreviveu ao desastre
    • 0 = Não
    • 1 = Sim
  • Pclass: Classe do bilhete
    • 1 = 1ª Classe
    • 2 = 2ª Classe
    • 3 = 3ª Classe
  • Name: Nome do passageiro
  • Sex: Sexo do passageiro
  • Age: Idade do passageiro
  • SibSp: Quantidade de cônjuges e irmãos a bordo
  • Parch: Quantidade de pais e filhos a bordo
  • Ticket: Número da passagem
  • Fare: Preço da Passagem
  • Cabin: Número da cabine do passageiro
  • Embarked: Porto no qual o passageiro embarcou
    • C = Cherbourg
    • Q = Queenstown
    • S = Southampton

Pronto! Feito isso, vamos começar a fazer alguns questionamento e formular hipóteses.

Quais os tipos de cada variável?

Já sabemos o que cada coluna representa, então vamos dar uma olhada nas primeiras entradas e ver quais variáveis são numéricas e quais são categóricas.

Qual a porcentagem de valores faltantes?

A informação sobre a Cabin é a que possui o maior número de informações faltantes, com mais de 77%. Após, a coluna Age não possui valor em quase 20% dos passageiros. Por fim, a coluna informando o Porto de embarque (Embarked) possui apenas 2% de informações faltantes.

Como é a distribuição estatística dos dados?

Usar o método describe()do Pandas e plotar um histograma vai dar uma visão geral a respeito da distribuição de cada variável e sobre posisveis outliers e valores faltantes. Isso vai ser muito útil na próxima etapa, quando iremos trabalhar a limpeza dos dados e decidir se vamos excluir uma entrada que tenha um valor faltante ou preencheremos com a média/mediana, por exemplo.

Quais grupos de pessoas tinham mais chances de sobrevivência?

Aqui já podemos testar uma hipótese lá do começo do artigo: Será que as mulheres de fato tem mais chance de sobreviverem ao naufrágio do Titanic? Vale a pena olhar as correlações e relacionamentos entre as variáveis, seja para decidir quais entrarão em um modelo futuro ou para formular novas hipóteses.

Pelo gráfico acima já conseguimos confirmar duas suposições iniciais:

  • Mulheres tem muito mais chance de sobreviverem que os homens (75% vs. 18%)
  • Passageiros da 3ª Classe tem menos da metade de chance de escaparem do desastre que aqueles passageiros que estão na 1ª Classe.

Ao analisar também a distribuição das idades dos sobreviventes e mortos, dá para ver um pico no lado dos sobreviventes para crianças pequenas. O comportamento dos dois gráficos é bem parecido, mas esse detalhe é bem importante pois confirma a hipótese que crianças também tem maior chance de sobreviverem: “Crianças e mulheres primeiro”. Trago também um tipo de gráfico bem interessante do Pandas: scatter_matrix. Sabe o que é bacana nesse tipo de visualização abaixo?

A vantagem desse tipo de gráfico é que a diagonal dele traz informação útil, exibindo um histograma de cada atributo (outras opções estão disponíveis). Rapidamente a gente consegue ver coisas como – por exemplo – o fato de que pessoas mais velhas estão mais concentradas na 1ª Classe e pessoas mais jovens na 3ª classe. Por fim, terminando esta primeira etapa de análise exploratória, vamos dar uma olhada no heatmap para entender como as variáveis estão correlacionadas, positiva ou negativamente.

Competição de Data Science: Titanic, Kaggle e Python

Por enquanto é só isso na Parte I. No próximo artigo, vamos evoluir nossa análise e dar uma olhada mais detalhada nas variáveis categóricas. Também vamos falar sobre como lidar com valores faltantes (NaN) e preparar os dados para alimentar o nosso modelo.

Resumo

Nesta Parte I do nosso projeto de Data Science, conseguimos tomar consciência da situação, entender o problema, entender as principais variáveis e começar a visualização das variáveis numéricas.

Muitos acabam negligenciando esta etapa inicial, preferindo partir logo para a etapa de feature engineering ou modelagem em si, escolhendo atributos sem critério algum – e tendo desempenhos ruins, enviesados ou com overfitting.

Se você quer ter sucesso nas análises, aprenda a documentar bem seus projetos, detalhando o máximo possível cada etapa em um notebook – lembre-se que tudo tem que ser replicável por qualquer pessoa – e seguindo uma metodologia, um framework!

Na Parte II do artigo, vamos trabalhar as variáveis categóricas, limpar dados e tratar informações faltantes, e começar a preparar nosso modelo preditivo, onde testaremos técnicas de Regressão Logística.

Se você ficou com alguma dúvida, clique no link abaixo para acessar o notebook completo (com todo o código), baixe ele e comece a rodar na sua própria máquina, faça testes e teste suas próprias hipóteses 🙂

E se você está começando na área, parabéns! Você está no caminho certo da profissão do futuro, aprendendo como se tornar um Cientista de Dados. Para não perder a continuação deste artigo, inscreva-ser com seu email abaixo, e receba a notificação antes dos outros!

Compartilhar9Compartilhar52Enviar
Post Anterior

Armazenamento de grandes quantidades de dados com HDF5

Próximo Post

Como usar o Histograma para Data Science

Carlos Melo

Carlos Melo

Engenheiro de Visão Computacional graduado em Ciências Aeronáuticas pela Academia da Força Aérea (AFA) e Mestre em Engenharia Aeroespacial pelo Instituto Tecnológico de Aeronáutica (ITA).

Relacionado Artigos

Curso de Pós-Graduação em Data Science
Data Science

Vale a pena fazer uma Pós-Graduação em Data Science?

por Carlos Melo
janeiro 20, 2025
Review do Livro “Mãos à obra: Aprendizado de Máquina com Scikit-Learn, Keras & TensorFlow”
Livros

Review do Livro “Mãos à obra: Aprendizado de Máquina com Scikit-Learn, Keras & TensorFlow”

janeiro 18, 2025
Carlos Melo e Sérgio Sacani – Ciência Sem Fim
Youtube

Carlos Melo e Sérgio Sacani – Ciência Sem Fim

por Carlos Melo
janeiro 16, 2025
Carlos Melo da Pós Graduação em Data Science do Sigmoidal
Aeroespacial

Oportunidades no Setor Espacial para Cientistas de Dados

por Carlos Melo
janeiro 15, 2025
Visão Computacional

Processamento de Nuvens de Pontos com Open3D e Python

por Carlos Melo
janeiro 2, 2025
Próximo Post
Como usar o Histograma para Data Science

Como usar o Histograma para Data Science

Comentários 4

  1. Luiz Henrique says:
    4 anos atrás

    Muito boa sua explicação. Estou com problemas na linha 71 para gerar os gráficos do seaborn, esta dando erro, já atualizei o pacote, reiniciei o Kernel do jupyter notebook e nada. O que pode ser este problema? Obrigado!

    Responder
  2. Pymerim says:
    4 anos atrás

    Excelente artigo!

    Responder
  3. jaymeson gomes says:
    4 anos atrás

    foi um viagem sensacional de analise de dados.

    Responder
  4. Humberto Cordeiro says:
    4 anos atrás

    Muito bom o artigo, parabéns

    Responder

Deixe um comentário Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Pós-Graduação em Data Science Pós-Graduação em Data Science Pós-Graduação em Data Science

Mais Populares

  • Introdução ao MediaPipe e Pose Estimation

    Introdução ao MediaPipe e Pose Estimation

    451 compartilhamentos
    Compartilhar 180 Tweet 113
  • Equalização de Histograma com OpenCV e Python

    112 compartilhamentos
    Compartilhar 45 Tweet 28
  • ORB-SLAM 3: Tutorial Completo para Mapeamento 3D e Localização em Tempo Real

    385 compartilhamentos
    Compartilhar 154 Tweet 96
  • Geometria da Formação de Imagens: Matrizes, Transformações e Sistemas de Coordenadas

    368 compartilhamentos
    Compartilhar 147 Tweet 92
  • Redes Neurais Convolucionais com Python

    92 compartilhamentos
    Compartilhar 37 Tweet 23
  • Em Alta
  • Comentários
  • Mais Recente
Como Tratar Dados Ausentes com Pandas

Como Tratar Dados Ausentes com Pandas

agosto 13, 2019
Como usar o DALL-E 2 para gerar imagens a partir de textos

Como usar o DALL-E 2 para gerar imagens a partir de textos

dezembro 25, 2022
Introdução ao MediaPipe e Pose Estimation

Introdução ao MediaPipe e Pose Estimation

julho 15, 2023

ORB-SLAM 3: Tutorial Completo para Mapeamento 3D e Localização em Tempo Real

abril 10, 2023
Como Analisar Ações da Bolsa com Python

Como Analisar Ações da Bolsa com Python

15
Setembro Amarelo: Análise do Suicídio no Brasil, com Data Science

Setembro Amarelo: Análise do Suicídio no Brasil, com Data Science

13
Como Aprender Data Science?

Como Aprender Data Science?

9
Qual o Cenário de Data Science no Brasil hoje?

Qual o Cenário de Data Science no Brasil hoje?

8
DeepSeek vazamento de dados de usuários

DeepSeek: Vazamento de dados expõe dados de usuários

fevereiro 1, 2025
DeepSeek R1 vs OpenAI o1 – Qual é o Melhor Modelo de IA

DeepSeek R1 vs OpenAI o1 – Qual é o Melhor Modelo de IA?

janeiro 25, 2025
Trump Anuncia Investimento de US$ 500 Bilhões em Infraestrutura de IA

Trump Anuncia Investimento de US$ 500 Bilhões em Infraestrutura de IA

janeiro 22, 2025
Trump revoga decreto de Biden sobre regulação de Inteligência Artificial

Trump revoga decreto de Biden sobre regulação de Inteligência Artificial

janeiro 21, 2025

Seguir

  • 🇺🇸 Green Card por Habilidade Extraordinária em Data Science e Machine Learning

Após nossa mudança para os EUA, muitas pessoas me perguntaram como consegui o Green Card tão rapidamente. Por isso, decidi compartilhar um pouco dessa jornada.

O EB-1A é um dos vistos mais seletivos para imigração, sendo conhecido como “The Einstein Visa”, já que o próprio Albert Einstein obteve sua residência permanente através desse processo em 1933.

Apesar do apelido ser um exagero moderno, é fato que esse é um dos vistos mais difíceis de conquistar. Seus critérios rigorosos permitem a obtenção do Green Card sem a necessidade de uma oferta de emprego.

Para isso, o aplicante precisa comprovar, por meio de evidências, que está entre os poucos profissionais de sua área que alcançaram e se mantêm no topo, demonstrando um histórico sólido de conquistas e reconhecimento.

O EB-1A valoriza não apenas um único feito, mas uma trajetória consistente de excelência e liderança, destacando o conjunto de realizações ao longo da carreira.

No meu caso específico, após escrever uma petição com mais de 1.300 páginas contendo todas as evidências necessárias, tive minha solicitação aprovada pelo USCIS, órgão responsável pela imigração nos Estados Unidos.

Fui reconhecido como um indivíduo com habilidade extraordinária em Data Science e Machine Learning, capaz de contribuir em áreas de importância nacional, trazendo benefícios substanciais para os EUA.

Para quem sempre me perguntou sobre o processo de imigração e como funciona o EB-1A, espero que esse resumo ajude a esclarecer um pouco mais. Se tiver dúvidas, estou à disposição para compartilhar mais sobre essa experiência! #machinelearning #datascience
  • 🚀Domine a tecnologia que está revolucionando o mundo.

A Pós-Graduação em Visão Computacional & Deep Learning prepara você para atuar nos campos mais avançados da Inteligência Artificial - de carros autônomos a robôs industriais e drones.

🧠 CARGA HORÁRIA: 400h
💻 MODALIDADE: EAD
📅 INÍCIO DAS AULAS: 29 de maio

Garanta sua vaga agora e impulsione sua carreira com uma formação prática, focada no mercado de trabalho.

Matricule-se já!

#deeplearning #machinelearning #visãocomputacional
  • Green Card aprovado! 🥳 Despedida do Brasil e rumo à nova vida nos 🇺🇸 com a família!
  • Haverá sinais… aprovado na petição do visto EB1A, visto reservado para pessoas com habilidades extraordinárias!

Texas, we are coming! 🤠
  • O que EU TENHO EM COMUM COM O TOM CRUISE??

Clama, não tem nenhuma “semana” aberta. Mas como@é quinta-feira (dia de TBT), olha o que eu resgatei!

Diretamente do TÚNEL DO TEMPO: Carlos Melo &Tom Cruise!
  • Bate e Volta DA ITÁLIA PARA A SUÍÇA 🇨🇭🇮🇹

Aproveitei o dia de folga após o Congresso Internacional de Astronáutica (IAC 2024) e fiz uma viagem “bate e volta” para a belíssima cidade de Lugano, Suíça.

Assista ao vlog e escreve nos comentários se essa não é a cidade mais linda que você já viu!

🔗 LINK NOS STORIES
  • Um paraíso de águas transparentes, e que fica no sul da Suíça!🇨🇭 

Conheça o Lago de Lugano, cercado pelos Alpes Suíços. 

#suiça #lugano #switzerland #datascience
  • Sim, você PRECISA de uma PÓS-GRADUAÇÃO em DATA SCIENCE.
  • 🇨🇭Deixei minha bagagem em um locker no aeroporto de Milão, e vim aproveitar esta última semana nos Alpes suíços!
  • Assista à cobertura completa no YT! Link nos stories 🚀
  • Traje espacial feito pela @axiom.space em parceria com a @prada 

Esse traje será usados pelos astronautas na lua.
para acompanhar as novidades do maior evento sobre espaço do mundo, veja os Stories!

#space #nasa #astronaut #rocket
  • INTERNATIONAL ASTRONAUTICAL CONGRESS - 🇮🇹IAC 2024🇮🇹

Veja a cobertura completa do evento nos DESTAQUES do meu perfil.

Esse é o maior evento de ESPAÇO do mundo! Eu e a @bnp.space estamos representando o Brasil nele 🇧🇷

#iac #space #nasa #spacex
  • 🚀 @bnp.space is building the Next Generation of Sustainable Rocket Fuel.

Join us in transforming the Aerospace Sector with technological and sustainable innovations.
  • 🚀👨‍🚀 Machine Learning para Aplicações Espaciais

Participei do maior congresso de Astronáutica do mundo, e trouxe as novidades e oportunidade da área de dados e Machine Learning para você!

#iac #nasa #spacex
  • 🚀👨‍🚀ACOMPANHE NOS STORIES

Congresso Internacional de Astronáutica (IAC 2024), Milão 🇮🇹
  • Projeto Aeroespacial do final de semana!👨‍🚀
Instagram Youtube LinkedIn Twitter
Sigmoidal

O melhor conteúdo técnico de Data Science, com projetos práticos e exemplos do mundo real.

Seguir no Instagram

Categorias

  • Aeroespacial
  • Artigos
  • Blog
  • Carreira
  • Cursos
  • Data Science
  • Deep Learning
  • Destaques
  • Entrevistas
  • IA Generativa
  • Livros
  • Machine Learning
  • Notícias
  • Python
  • Teoria
  • Tutoriais
  • Visão Computacional
  • Youtube

Navegar por Tags

camera calibration carreira chatgpt cientista de dados cnn computer vision Cursos dados desbalanceados data science data science na prática decision tree deep learning gpt-3 histograma IA generativa image formation inteligência artificial jupyter kaggle keras machine learning matplotlib mnist nft openai opencv overfitting pandas profissão python redes neurais redes neurais convolucionais regressão linear regressão logística salário scikit-learn seaborn sklearn tensorflow titanic tutorial visão computacional vídeo youtube árvore de decisão

© 2024 Sigmoidal - Aprenda Data Science, Visão Computacional e Python na prática.

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In

Add New Playlist

Sem Resultado
Ver Todos Resultados
  • Home
  • Cursos
  • Pós-Graduação
  • Blog
  • Sobre Mim
  • Contato
  • English

© 2024 Sigmoidal - Aprenda Data Science, Visão Computacional e Python na prática.