O documento fornece uma introdução sobre machine learning, explicando os conceitos básicos como tipos de problemas (classificação e regressão), algoritmos supervisionados e não-supervisionados, e recomendações de ferramentas e cursos para aprender sobre o tema.
3. Sobre mim
Vinicius Mesel
17 anos
Pseudo-Pesquisador(IC) no Instituto Butantan
Python lover, gamer e Nerd nas horas vagas
vinicius@bigsp.com.br
4. Primeiramente: o que um bioinformata faz?
- Utiliza dados de genes e genomas para extrair informações
biológicamente relevantes
- Realiza processamentos de dados em pequena e larga escala
- Detecta padrões relevantes em dados como sequências de
DNA/RNA ou nos níveis das proteínas
- Realiza experimentos in silico**
O Genoma Humano tem 9gb
5. O que eu faço?
- Estudo alguns dos mecanismos envolvidos com a formação e progressão
do câncer de próstata
- Utilizo o RNA de células do cancer para identificar padrões por meio de
Machine Learning
8. - Fazer Estátistica de Faculdade
- Gostar de teorias matemáticas "malucas"
- Gostar de quebrar a cabeça e melhorar algoritmos
- Saber pesquisar no Google/YouTube/Coursera
- Ter uma base de linguagens de programação
O que você precisa saber antes de mexer com
Machine Learning?
9. O que é machine learning?
- Um método estatístico para predição, classificação, regressão e etc.
- Uma parte da ciência da computação
- Ramo de estudos da Inteligência Artificial
- É basicamente a construção de um modelo estatístico algébrico para
predição de algo
12. Agora chegou a parte interessante!!!!
Um problema em machine learning pode pertencer a uma das duas categorias:
- Regressivo (quando você tem uma variável contínua. Ex: Estimar cotação
do Dólar)
- Classificatório (quando você tem diferentes classes envolvidas em um
problema. Ex: Utilizar imagens de um ultrassom para definir o sexo do bebe
(0=F , 1=M))
13. Sabendo o tipo de problema, você deve saber
o algoritmo…
Já que agora você sabe os tipos de problema, você tem que conhecer também
as possibilidades de resolução deles a partir de algoritmos.
Existem 2 tipos de algoritmos que podem ser usados para resolver um dado
problema:
- Aprendizado Supervisionado (O treinamento é feito com dados que
possuem as classes já conhecidas)
- Não-supervisionados (O modelo deve estimar as categorias sem
conhece-las previamente)
14. Não-supervisionado - (Separe os
dados em K grupos e utilize esses
grupos para classificar novos
dados)
Supervisionado - (Aprenda a
classificar novos dados utilizando
o que já se sabe sobre as classes)
15. Seria possivel inferir o salário de um funcionário de uma empresa através da
composição de sua marmita?
- Neste caso eu tenho as features (dimensões da marmita, informações dos
alimentos [Preço, quantidade e etc], acompanhamentos da marmita)
- Temos um valor de salário associado a cada marmita.
- Portanto, seria utilizado um algoritmo supervisionado (os salários são
conhecidos) de regressão (salário é uma variavel contínua).
- Ex: random forest regressor, SVM regressor, Regressão linear
1o Exemplo de problema:
16. 2o exemplo de problema
Eu tenho o IRIS dataset(um dos datasets mais básicos) e gostaria de predizer a
classificação de cada planta baseada no tamanho das pétalas que ela tem e se
é possível inferir a qual grupo ela pertence!
- Neste caso eu também tenho as features
- A cada grupo já montado, temos um valor médio da petala, caule e etc…
associado
- Por não ser uma variável continua, mas as médias e outras métricas podem
levar a uma classificação de um tipo de planta, o algoritmo é classificatório
e supervisionado por já sabemos as classes envolvidas.
17. 3o exemplo de problema
Um pesquisador mediu a quantidade de açucar, gordura e alcool no sangue de
centenas de pessoas. Seria possivel dividir as pessoas estudadas em dois
grupos?
- Problema não-supervisionado (As pessoas não pertencem a nenhuma
categoria)
- Algoritmos utilizados: k-means (K=2)
(Utiliza as distancias das 3 features para agrupar as pessoas, colocando
no mesmo grupo pessoas com valores aproximados nessas features)
18. Tipos de problema que estão sendo
resolvidos com ML
- Vendas de produtos e predições de vendas (Quantos funcionarios devo
escalar para trabalhar em um feriado?)
- Genética e estudos no genoma humano e animal
- Desenvolvimento de vacinas mais rápidamente
- Linguística Moderna/Computacional
- Desenvolvimento de Inteligência Artificial
- E MUITO MAIS...
19. Como posso aprender Machine Learning?
- Procure vídeos no YouTube:
- Sobre a PyCon deste ano
- Sobre a PyData destes anos(recheado de conteúdo)
- Sobre os meetups de SciPy
- Cursos no Coursera:
- Curso de Introdução a Machine Learning
- Curso de Estatística
- Buscando no Google
20. Materiais que eu recomendo
- Udacity
- Coursera
- Guia Mangá de Estatística (livro)
- Python para Desenvolvedores (livro)
- Teses de Iniciação Científica/Mestrado/Doutorado/Pós Grad (USP e ITA
são muito boas, além das em inglês)
21. Ferramentas que eu recomendo
- Scikit-Learn (Biblioteca em Python)
- Kaggle (site de competições de Machine Learning)
- PyCharm (IDE que proporciona boa integração para rodar códigos)
- Pandas (Extremamente essencial para processamentos de tabelas)
- Seaborn (API Gráfica fantástica para Python)
22. Conhecimentos que serão explicados no
SciPy de Machine Learning
- Uma base sólida de Python
- Pandas e suas formas de armazenamento e tratamento de dados
- Scikit-learn e seus métodos de machine learning
- Como escolher features relevantes para não causar overfitting
- Estatística básica para cálculo de média, mediana, variância e etc...
23. Agora façam seus computadores aprender!
Caso vocês não consigam domar seus computadores, seus computadores
tenham déficit de atenção ou coisas do gênero: Não me chamem!
Se tiver alguma dúvida, pergunta, sugestão:
vinicius@bigsp.com.br