Introdução ao aprendizado de máquina com scikit-learn
Esta série de vídeos ensinará como resolver problemas de aprendizado de máquina usando a popular biblioteca scikit-learn do Python. São 10 tutoriais em vídeo totalizando 4,5 horas, cada um com um notebook Jupyter correspondente.
Você pode assistir a série inteira no YouTube e visualizar todos os notebooks usando o nbviewer.
A série também está disponível como um curso online gratuito que inclui conteúdo atualizado, questionários e certificado de conclusão.
Nota: Os notebooks neste repositório foram atualizados para usar Python 3.9.1 e scikit-learn 0.23.2. Os notebooks originais (mostrados no vídeo) usavam Python 2.7 e scikit-learn 0.16 e podem ser baixados do branch archive. Você pode ler sobre como atualizei o código nesta postagem do blog.
Índice
O que é aprendizado de máquina e como funciona? (vídeo, caderno)
- O que é aprendizado de máquina?
- Quais são as duas categorias principais de aprendizado de máquina?
- Quais são alguns exemplos de aprendizado de máquina?
- Como o aprendizado de máquina “funciona”?
Configurando Python para aprendizado de máquina: scikit-learn e Jupyter Notebook (vídeo, notebook)
- Quais são as vantagens e desvantagens do scikit-learn?
- Como instalo o scikit-learn?
- Como faço para usar o Jupyter Notebook?
- Quais são alguns bons recursos para aprender Python?
Introdução ao scikit-learn com o famoso conjunto de dados iris (vídeo, notebook)
- O que é o famoso conjunto de dados da íris e como ele se relaciona com o aprendizado de máquina?
- Como carregamos o conjunto de dados da íris no scikit-learn?
- Como descrevemos um conjunto de dados usando a terminologia de aprendizado de máquina?
- Quais são os quatro principais requisitos do scikit-learn para trabalhar com dados?
Treinando um modelo de aprendizado de máquina com scikit-learn (vídeo, notebook)
- Qual é o modelo de classificação de K-vizinhos mais próximos?
- Quais são as quatro etapas para treinamento e previsão de modelo no scikit-learn?
- Como posso aplicar esse padrão a outros modelos de Machine Learning?
Comparando modelos de aprendizado de máquina no scikit-learn (vídeo, notebook)
- Como escolho qual modelo usar para minha tarefa de aprendizagem supervisionada?
- Como escolho os melhores parâmetros de ajuste para esse modelo?
- Como posso estimar o desempenho provável do meu modelo em dados fora da amostra?
Pipeline de ciência de dados: pandas, seaborn, scikit-learn (vídeo, notebook)
- Como uso a biblioteca pandas para ler dados em Python?
- Como uso a biblioteca marítima para visualizar dados?
- O que é regressão linear e como funciona?
- Como treino e interpreto um modelo de regressão linear no scikit-learn?
- Quais são algumas métricas de avaliação para problemas de regressão?
- Como escolho quais recursos incluir em meu modelo?
Validação cruzada para ajuste de parâmetros, seleção de modelo e seleção de recursos (vídeo, notebook)
- Qual é a desvantagem de usar o procedimento de divisão de treinamento/teste para avaliação do modelo?
- Como a validação cruzada K-fold supera essa limitação?
- Como a validação cruzada pode ser usada para selecionar parâmetros de ajuste, escolher entre modelos e selecionar recursos?
- Quais são algumas possíveis melhorias na validação cruzada?
Pesquisa eficiente de parâmetros de ajuste ideais (vídeo, notebook)
- Como a validação cruzada K-fold pode ser usada para procurar um parâmetro de ajuste ideal?
- Como esse processo pode ser tornado mais eficiente?
- Como você procura vários parâmetros de ajuste ao mesmo tempo?
- O que você faz com esses parâmetros de ajuste antes de fazer previsões reais?
- Como o custo computacional desse processo pode ser reduzido?
Avaliando um modelo de classificação (vídeo, notebook)
- Qual é o propósito da avaliação do modelo e quais são alguns procedimentos de avaliação comuns?
- Qual é o uso da precisão da classificação e quais são suas limitações?
- Como uma matriz de confusão descreve o desempenho de um classificador?
- Quais métricas podem ser calculadas a partir de uma matriz de confusão?
- Como você pode ajustar o desempenho do classificador alterando o limite de classificação?
- Qual é o propósito de uma curva ROC?
- Como a área sob a curva (AUC) difere da precisão da classificação?
Construindo um fluxo de trabalho de aprendizado de máquina (vídeo, notebook)
- Por que você deve usar um Pipeline?
- Como você codifica recursos categóricos com OneHotEncoder?
- Como você aplica OneHotEncoder a colunas selecionadas com ColumnTransformer?
- Como você constrói e faz a validação cruzada de um pipeline?
- Como você faz previsões sobre novos dados usando um Pipeline?
- Por que você deveria usar o scikit-learn (em vez do pandas) para pré-processamento?
Vídeo bônus
Na conferência PyCon 2016, ensinei um tutorial de 3 horas que se baseia nesta série de vídeos e se concentra em dados baseados em texto . Você pode assistir ao vídeo tutorial no YouTube.
Aqui estão os tópicos que abordei:
- Construção de modelo no scikit-learn (atualização)
- Representando texto como dados numéricos
- Lendo um conjunto de dados baseado em texto em pandas
- Vetorizando nosso conjunto de dados
- Construindo e avaliando um modelo
- Comparando modelos
- Examinando um modelo para obter mais informações
- Praticando este fluxo de trabalho em outro conjunto de dados
- Ajustando o vetorizador (discussão)
Visite este repositório GitHub para acessar os cadernos do tutorial e muitos outros recursos recomendados.