Um currículo completo de ciência de dados para iniciantes

Mar 22 2022
UCL Data Science Society: Introdução ao Python, Data Scientists Toolkit, Data Science com Python
Este ano, a UCL Data Science Society teve como objetivo criar um currículo completo de Ciência de Dados com o objetivo de ajudar outros alunos em sua jornada de Ciência de Dados. Para o efeito, criámos uma série de workshops, com base no trabalho de anos anteriores, para abranger três áreas principais da jornada de qualquer Cientista de Dados.
Imagem do autor

Este ano, a UCL Data Science Society teve como objetivo criar um currículo completo de Ciência de Dados com o objetivo de ajudar outros alunos em sua jornada de Ciência de Dados. Para isso, criamos uma série de workshops, com base no trabalho de anos anteriores, para cobrir três áreas principais da jornada de qualquer Cientista de Dados.

  • Introdução ao Python : Uma série de quatro workshops cobrindo a notação básica e as estruturas usadas no Python para poder entender a codificação usada em workshops posteriores.
  • Um kit de ferramentas para cientistas de dados : uma série de cinco workshops abrangendo três bibliotecas principais em qualquer kit de ferramentas de cientistas de dados de Numpy, Matplotlib e Pandas, juntamente com as principais ferramentas do Git, GitHub e SQL.
  • Data Science with Python : Uma série de nove workshops que abrangem as quatro principais categorias de modelos de Machine Learning: Regressão, Classificação, Clustering e Redução de Dimensionalidade por meio de vários dos algoritmos mais usados ​​aplicados em diferentes conjuntos de dados e exemplos.

Esperamos que isso possa ajudá-lo em sua jornada de ciência de dados no futuro!

Introdução ao Python

Para qualquer iniciante em Data Science, uma das primeiras perguntas que você precisa responder é qual idioma você escolherá? Embora existam algumas opções disponíveis, incluindo Python e R, começamos com Python devido à sua aplicabilidade e usabilidade além da Data Science e da ampla variedade de bibliotecas que podem ser usadas para dar suporte a qualquer fluxo de trabalho da Data Science. Ao fazer isso, abordamos os principais fundamentos que qualquer pessoa precisaria para continuar uma carreira em Ciência de Dados e além em Python, apresentando conceitos como fundamentos do Python, sequências, lógica e programação orientada a objetos. Isso estabelece as bases para poder entender o que o código faz em workshops posteriores e também como encontrar soluções para os desafios de codificação que você pode encontrar.

Fundamentos do Python

A primeira tarefa de quem está aprendendo Python é configurar seu ambiente e depois aprender o que o código Python representa. Neste workshop, fornecemos uma introdução de como configurar seu ambiente de programação através do Anaconda, falamos sobre o que é um notebook Jupyter e abordamos os conceitos básicos de variáveis, tipos de dados e operações básicas em Python. Isso ajudará você a entender como ler o código Python e como começar a interagir com seu próprio código também.

Sequências Python

O Python possui várias sequências embutidas que podem ser usadas para armazenar vários pontos de dados em vez de criar muitas variáveis ​​em seu ambiente. Torna-se importante desde o início entender o que cada uma dessas sequências pode ou não fazer para que você saiba como armazenar seus dados no futuro. Nessa medida, abordamos a principal funcionalidade de listas, tuplas, conjuntos e dicionários em Python, que são as principais sequências/estruturas de dados que você encontrará em sua jornada de ciência de dados.

Lógica Python

Quando se trata de construir programas mais avançados, entender como a lógica funciona em Python se torna fundamental. Isso inclui a criação de código que é executado quando uma determinada condição é atendida ou a execução de código alternativo se não for, a execução de ações repetidas em Python e também a definição de partes de código que podem ser usadas repetidamente em seu código. Nesse sentido, apresentamos instruções de condição, instruções lógicas (if, else e elif), loops (for e while) e funções neste workshop, onde você pode ver como eles funcionam separadamente e também juntos para criar um código mais complexo.

Programação Orientada a Objetos Python

Embora a maioria dos fluxos de trabalho de Ciência de Dados tenda a usar a Programação Processual ao trabalhar em Jupyter Notebooks, é útil entender os benefícios e os casos de uso da Programação Orientada a Objetos. Este é um paradigma de programação que estrutura o código para que as características e os comportamentos dos dados possam ser agrupados em uma única estrutura e, muitas vezes, formam a base da maioria das bibliotecas que você encontrará em sua jornada de programação. Isso significa que entender como essa forma de código é estruturada é importante para poder interagir com muitas das bibliotecas às quais você será apresentado em sua jornada de Data Science.

Kits de ferramentas para cientistas de dados

Uma vez que você tenha coberto o básico do Python para que você possa criar programas básicos, torna-se importante aprender algumas das ferramentas que você usará dia após dia. Essas ferramentas são bibliotecas e softwares que já foram criados outros para que você não precise reinventar a roda e tornará seu código muito mais fácil de ler e entender. Três das principais bibliotecas que você encontrará com frequência como Cientista de Dados incluem Numpy, Pandas e Matplotlib, e você também usará as ferramentas do GitHub e SQL em sua jornada de ciência de dados.

Numpy

O Numpy se concentra muito na funcionalidade matemática e é uma biblioteca fundamental que sustenta muitos métodos e funções em outros pacotes Python. Isso significa que é um pacote básico que geralmente é muito útil para entender. Nessa medida, cobrimos o básico de Numpy Arrays, operações matemáticas dentro do pacote e como interagir com a funcionalidade de números aleatórios.

Pandas

O segundo pacote fundamental que você encontrará com frequência é o dos Pandas. Este é um pacote amplamente usado para tarefas de análise e ciência de dados que se baseia no pacote Numpy. É um dos pacotes de organização de dados mais populares para fluxos de trabalho de ciência de dados e se integra bem a muitas outras bibliotecas usadas durante o fluxo de trabalho de ciência de dados, como o SciKit Learn. Neste workshop abordamos como criar um Pandas Series e um Pandas DataFrame, como acessar informações dessa estrutura de dados e quais operações podemos realizar quando os dados estão na estrutura.

Matplotlib

Ser capaz de visualizar dados é uma habilidade fundamental para que qualquer Cientista de Dados possa comunicar seus resultados e descobertas para um público técnico e não técnico. Embora existam muitos pacotes diferentes que você pode usar em Python, um dos principais que você encontra e um bom para começar é o Matplotlib. Neste workshop, abordamos como construir um gráfico básico, plotando vários conjuntos de informações no mesmo gráfico e, em seguida, plotando informações em vários eixos.

Git e Github

Além das bibliotecas em Python que fazem parte de um kit de ferramentas de cientistas de dados, existem muitos outros softwares e ferramentas que são úteis em um fluxo de trabalho de ciência de dados. Uma das principais ferramentas com as quais qualquer Cientista de Dados deve estar familiarizado deve ser o Git e o GitHub como meio de controle de versão. Isso garante que você esteja controlando a versão dos resultados em vez de nomeá-los como rascunho1, rascunho2, rascunho3 etc. Isso pode ser vinculado ao GitHub para que você possa armazenar essas versões em outro lugar que não seja sua área de trabalho e permitir que você e sua equipe, acesso a isso de qualquer lugar do mundo, desde que tenham uma conexão com a internet. Neste workshop, abordamos os fundamentos da criação de um repositório Git local, confirmando as alterações nesse repositório e, em seguida, vinculando-o ao GitHub.

SQL

A ferramenta final em nosso kit de ferramentas para cientistas de dados é o SQL. SQL significa Structured Query Language e é uma das linguagens de programação mais usadas ao trabalhar com bancos de dados em sistemas de gerenciamento de banco de dados relacional. Ele está sendo usado para realizar várias operações diferentes, como dados de seleção, consulta de dados, agrupamento de dados e extração de medidas de resumo de dados fora de um ambiente Python. O benefício disso é trabalhar com grandes armazenamentos de dados, especialmente quando estes são mantidos em um sistema gerenciado centralmente. Neste workshop, abordamos a configuração de uma instância SQL em sua própria máquina e, em seguida, o uso dela para manipular um conjunto de dados, incluindo seleção de dados, pesquisa de condições, estatísticas resumidas e agrupamento de dados.

Ciência de dados com Python

Depois de conhecer e entender como usar o Python e suas principais bibliotecas, juntamente com outros softwares importantes em um fluxo de trabalho de ciência de dados, você poderá aprender e entender cada um dos algoritmos de aprendizado de máquina que podem ser usados. Para esse fim, existem duas distinções principais entre as tarefas de aprendizado de máquina que podem ser divididas em quatro grupos gerais de aprendizado de máquina.

A primeira divisão é entre tarefas de aprendizado de máquina supervisionadas e não supervisionadas. A primeira delas significa que temos uma meta definida para a qual queremos trabalhar, como detectar diabetes ou câncer, modelar os preços das casas ou modelar a posição dos jogadores da NBA. Isso geralmente é feito usando métodos de aprendizado de máquina de regressão ou classificação que visam chegar o mais próximo possível do destino definido.

A segunda significa que não temos um alvo claramente definido, mas ainda queremos um resultado, como agrupar os consumidores com base nos hábitos de compra ou identificar comportamentos dentro de um conjunto de resultados. Essas tarefas geralmente são feitas com métodos de agrupamento ou redução de dimensionalidade que visam identificar grupos de pontos de dados semelhantes ou reduzir o número de dimensões para visualizar os dados ou inserir em outro algoritmo de aprendizado de máquina.

Regressão

O primeiro desses grupos é a regressão no aprendizado de máquina. Este é um método para modelar a dependência ou relação entre duas ou mais quantidades, como preços de casas e características da casa ou eficiência energética nas características do edifício. O objetivo desta metodologia é encontrar a força e a direção dessas relações para modelar resultados não vistos com base nos dados que você possui ou para entender a relação entre duas variáveis.

Regressão linear

O primeiro método que você encontra sob esse guarda-chuva é o de regressão linear que modela a relação entre as variáveis ​​de maneira linear. O objetivo deste método é reduzir a distância entre o valor real e o valor previsto usando mínimos quadrados e permite extrair parâmetros que mostram a força e a direção da relação entre eles e a variável alvo. Neste workshop, abordamos como implementar uma regressão básica por meio do scikit learn e, em seguida, quem implementar e interpretar uma equação de regressão linear múltipla.

Regressão logística

Um segundo método comum sob o guarda-chuva de regressão é o da regressão logística. Enquanto a regressão linear é frequentemente aplicada à predição de variáveis ​​contínuas (aquelas que podem ter um número infinito de valores dentro de um determinado intervalo), a regressão logística pode ser aplicada para prever saídas categóricas (aquelas que contêm um número finito de pontos ou categorias dentro de um determinado intervalo ). O principal objetivo deste método é prever a qual categoria ou observação um ponto de dados pertence, em vez de um valor exato, como no caso de um paciente ter diabetes? Isso, portanto, cai sob o guarda-chuva de regressão, mas também atua como uma metodologia de classificação usando regressão. No workshop abordamos como implementar e avaliar uma regressão logística básica para modelar a incidência de diabetes.

Regressão avançada

Além da regressão linear e logística, há uma variedade de outros métodos de regressão que geralmente são úteis para entender. Isso pode incluir Lasso e Ridge Regression que se baseiam em metodologias básicas de regressão linear introduzindo regularização para tentar evitar o problema de overfitting ou métodos de aprendizado de máquina de árvores de decisão e florestas aleatórias que são capazes de modelar as relações não lineares entre variáveis. Estes têm vantagens e desvantagens, pois esses métodos geralmente são mais capazes de modelar as relações entre as variáveis, mas isso pode custar o aumento dos recursos de computação necessários ou a redução da interpretabilidade.

Classificação

Após a regressão, outra tarefa comum de aprendizado de máquina supervisionado é a de classificação. O objetivo disso, em vez de modelar um valor específico, é modelar a qual grupo ou classe um ponto de dados pertence com base em um conjunto de dados de destino que conhecemos. Isso pode incluir modelar se um paciente tem diabetes, se um paciente tem câncer, se um usuário vai se inscrever novamente ou não, ou qual a posição de um jogador da NBA com base em suas estatísticas. Existem muitos métodos que se enquadram nesse guarda-chuva, muitos dos quais também podem ser usados ​​para classificação, mas três métodos comuns incluem: Classificação de árvore de decisão, Classificação de floresta aleatória e Classificação de máquina de vetor de suporte.

Classificação da Árvore de Decisão

Uma Árvore de Decisão segue uma estrutura semelhante a uma árvore (daí o nome) que é semelhante a algumas das árvores de decisão que você provavelmente fez na escola primária ou secundária em algum momento. Esse método é capaz de realizar a classificação usando as decisões para chegar a uma previsão sobre a qual resultado um ponto de dados pertence. Especificamente, ele funciona dividindo o conjunto de dados de acordo com diferentes atributos enquanto tenta reduzir um determinado critério de seleção. Neste workshop, abordamos como implementar uma árvore de decisão básica, como visualizar o desempenho e como avaliar o desempenho do modelo.

Classificação Florestal Aleatória

Um classificador de floresta aleatória é um método de conjunto que utiliza o algoritmo classificador de árvore de decisão, mas em vez de uma única árvore de decisão ser criada, várias são. Ao fazer isso, isso aproveita uma amostragem aleatória de dados e recursos para garantir que o modelo não se ajuste demais e produza melhores previsões como resultado. Isso segue a lógica de que o desempenho da multidão é melhor do que o desempenho de um indivíduo. Se você puder implementar uma Árvore de Decisão, geralmente é melhor implementar esse método, embora isso possa custar o aumento dos recursos computacionais necessários. Este workshop abrange a implementação básica de uma floresta aleatória e como avaliar os resultados.

Classificação de máquinas de vetor de suporte

Além das Árvores de Decisão e Florestas Aleatórias, embora existam muitos outros métodos de classificação que podem ser usados, o Support Vector Machines é aquele que é frequentemente encontrado. Ele trabalha para a classificação tentando encontrar um limite nos dados que separam as duas ou mais classes diferentes que estamos tentando definir. Ao fazer isso, esse modelo pode ser usado para previsão, encontrando em que lado da fronteira um ponto pode estar e, portanto, a que grupo o ponto pode pertencer. A utilidade desse algoritmo é que o limite pode assumir muitas formas diferentes, seja linear, não linear ou definida pelo usuário. Neste workshop, abordamos a implementação básica do modelo, além de como visualizar o resultado.

Agrupamento

O clustering faz parte do ramo não supervisionado do aprendizado de máquina, o que significa que não temos um alvo definido para trabalhar como faríamos com tarefas de regressão ou classificação. O objetivo desses algoritmos é identificar grupos distintos de objetos que compartilham características semelhantes, como compradores, filmes ou lojas. Isso permite que as decisões se concentrem nesses grupos e vejam como eles podem atendê-los melhor, como retenção de clientes ou incentivá-los a gastar mais dinheiro. Para este fim, dois algoritmos de agrupamento comuns incluem agrupamento k-means e agrupamento hierárquico.

Agrupamento K-means

O agrupamento K-means é um dos algoritmos de agrupamento mais usados. Ele funciona primeiramente definindo o número alvo de grupos para criar o que o algoritmo busca definir com base em diferentes métricas de distância entre pontos e grupos. Neste workshop, abordamos como implementar um algoritmo de agrupamento Kmeans, como escolher o número ideal de clusters e como avaliar os resultados.

Agrupamento hierárquico

O agrupamento hierárquico funciona criando esses grupos em uma hierarquia com base em uma métrica de distância que é usada para separar grupos diferentes. A singularidade desse algoritmo é que você pode identificar uma hierarquia de como diferentes grupos podem se encaixar ou separar uns dos outros com base na distância escolhida. Isso significa que não precisamos saber o número de clusters antes de executar o algoritmo, embora isso possa ocorrer com maior complexidade de tempo. Neste workshop, abordamos como implementar e avaliar esse algoritmo.

Redução de dimensionalidade

Finalmente, temos a redução de dimensionalidade, que também vem (na maioria dos casos) sob o título de algoritmos de aprendizado de máquina não supervisionados. O principal desse método é reduzir o número de recursos em um conjunto de dados, de modo a reduzir os recursos necessários para o modelo, ou auxiliar na visualização dos dados antes de qualquer análise ser realizada. Isso é feito reduzindo o número de atributos ou variáveis ​​no conjunto de dados enquanto tenta manter o máximo possível da variação no conjunto de dados original. Esta é uma etapa de pré-processamento, o que significa que é executada principalmente antes de criarmos ou treinarmos qualquer modelo. Existem duas formas principais disso na álgebra linear de aprendizagem múltipla, onde no workshop introduzimos a Análise de Componentes Principais da primeira e a Incorporação de Vizinhas Estocásticas t da última.

Conclusão

Este currículo visa dar aos indivíduos um início em Ciência de Dados com cada uma das bibliotecas, softwares e técnicas apresentadas de forma que todos os conceitos básicos de implementação e como eles funcionam sejam abordados sem entrar em muitos detalhes. Isso deve dar a qualquer novo cientista de dados uma plataforma a partir da qual eles possam explorar tópicos que estejam mais interessados, sejam mais métodos de regressão, classificação, clustering e dimensionalidade ou se isso está mergulhando mais fundo em cada um dos modelos que já apresentamos . Desejamos a você boa sorte em sua jornada de Ciência de Dados!

Se você quiser mais informações da nossa sociedade, sinta-se à vontade para nos seguir em nossas redes sociais:

O Facebook:https://www.facebook.com/ucldata

Instagram:https://www.instagram.com/ucl.datasci/

LinkedIn:https://www.linkedin.com/company/ucldata/

E se você quiser se manter atualizado com as lojas da UCL Data Science Society e outros autores incríveis, sinta-se à vontade para se inscrever no meio usando meu código de referência abaixo.