Guia 1
Mini-Curso: Introdução ao Machine Learning com Python
● Machine Learning: Processamento e a análise de dados por meio de algoritmos,
com o objetivo de gerar informações úteis para fundamentar a tomada de decisão.
- Definição do problema, coleta, processamento e análise de dados;
- Aplica-se o machine learning com o objetivo de encontrar padrões nos dados, seja
gerando modelos preditivos ou análises exploratórias para identificar relações
latentes
- As aplicações do machine learning são multidisciplinares!
-
● Data-driven decision making: redução de incertezas, aumento da eficácia
● Aplica-se o machine learning com o objetivo de encontrar padrões nos dados, seja
gerando modelos preditivos ou análises exploratórias para identificar relações
latentes;
● Envolve conhecimentos de estatística, softwares ou linguagem de programação e
sobre a área de interesse para a interpretação dos resultados.
Fluxo do Machine Learning:
● Definição do problema:
a. Perguntas e problemas a serem resolvidos;
b. Atributos a serem envolvidos;
● Coleta de Dados:
a. Fontes: dados históricos; dados atualizados em tempo real;
b. Provenientes de várias fontes ou já estão consolidados em um único local;
c. É fundamental avaliar a qualidade dos dados.
● Tratamento e preparação de dados:
a. Junção de bases, limpeza, criação de variáveis, seleção de observações,
entre outros.
b. Etapa operacional que depende muito da manipulação utilizando-se o
Python, sendo uma das etapas onde mais tempo é investido.
● Aplicação das análises:
a. Escolha das técnicas e modelos mais adequados às características dos
dados.
b. Análises exploratórias dos dados e modelos multivariados de machine
learning.
● Interpretação e tomada de decisão:
a. Como os resultados podem ser interpretados e colocados em prática.
b. Outputs: Resultados extraídos: Saber ler o resultado encontrado na utlização
dos modelos.
Banco de dados:
● Definição e composição;
● O banco de dados é composto por observações e variáveis:
a. Observações: Unidades que têm suas características e atributos
medidos,
b. Variáveis: Características/atributos observados, medidos ou
categorizados.
Estrutura para uso: É preciso ter uma estrutura definida para aplicação em machine
learning, estruturando com as variáveis em colunas, e as observações em linhas em uma
estrutura tabular.
Tipos de variáveis
● A identificação do tipo de variável é fundamental para a escolha da técnica que será
utilizada na análise dos dados.
● A depender do tipo de variável, serão direcionados o tipo de análise:
As variáveis podem ser divididas em:
● Métricas: são as variáveis quantitativas, isto é, apresentam características que
podem ser mensuradas ou contadas;
● Não métricas ou Categóricas: são as variáveis qualitativas, indicam as
características que não podem ser medidas. Tais variáveis contêm categorias, por
isto, muitas vezes, são chamadas de variáveis categóricas;
○ Escala Likert: Concordo Totalmente, Discordo Totalmente,
Concordo/Discordo Parcialmente, Neutro.
○ Na escala Likert é incorreto atribuir valores as opções e fazer médias
ponderadas;
○ Não é possível obter medidas descritivas como média e desvio padrão para
variáveis qualitativas.
A. Tipos de análises adequadas para variáveis qualitativas:
Tabelas de frequências;
Frequência absoluta: Contagem de ocorrências em cada categoria;
Frequência relativa: Percentual de cada categoria em relação ao total de
observações.
Gráficos de Frequências;
Histogramas;
● Modelos de Machine Learning:
Machine Learning é uma forma de uso de IA?
Sim. O Machine Learning é um subconjunto da IA. É o campo dedicado a encontrar padrões
dentro dos dados.
● Deep Learning: Aprendizado profundo, baseado em redes neurais.
Spider: Quatro grandes quadrantes
Python - Glossário
# Texto
#%%: Célula do Script, bloco de funções.
print: mostra resultado na tela
# Adição
print(5 + 10)
# Note que foi utilizada a função "print"
# Tem o objetivo de mostrar no console o resultado da fórmula
# Também é possível digitar os comandos diretamente no console
# Subtração
print(20 - 6)
# Multiplicação
print(30 * 3)
# Divisão
print(200 / 10)
# Exponenciação
print(5 ** 3)
Python - Guide
Bibliotecas
- Sempre salvar todos os scripts criados em uma pasta do projeto.
- Uma boa prática ao iniciar qualquer código, é na primeira célula já importar todos os
pacotes que serão utilizados no script.
- Para ganhar tempo, é usual dar apelidos aos pacotes.
#%% 1º Passo: Importar as bibliotecas
import pandas as pd
import numpy as np
Usando as bibliotecas
print ([Link](144)
Função geral nome da biblioteca do comando comando da biblioteca
Objetos:
# O Python funciona com base em objetos
# Quando utilizamos o Spyder, os objetos ficam listados no ambiente ao lado
# Vamos iniciar armazenando as listas em novos objetos
# As listas são elementos fundamentais para a estruturação de dados
Criando objetos: Basta usar o sinal de = e incluir o objeto entre [objeto]
Lista_numeros = [1,2,3,4,5]
nome do objeto Indicação do objeto Objeto
É possivel realizar operações matemáticas conforme a ordem dos elementos.
CUIDADO: No indice, o primeiro item SEMPRE estará referenciado por 0 (ZERO).
Exemplo:
print (lista_numeros[0] + lista_numeros[3])
Lista_numeros = [1,2,3,4,5]
ÍNDICE: 0,1,2,3,4
1+4=5
Listas:
Utilizar colchetes e separar elementos com vírgulas.
É nomeado assim como um objeto.
Funções Pandas:
[Link]
● Ler um arquivo em XLS do excel:
titanic = pd.read_excel('[Link]')
Objeto Nomeando base de dados = função pandas > nome do arquivo que deve estar
mesma pasta do projeto
Dataframe = Objetos do pandas que contém os bancos de dados (Várias listas e colunas).
● Ler arquivos em CSV:
pd.read_csv('[Link]', sep=',', decimal='.')
Sep: Separador das colunas;
Separador de números decimais (vírgula ou ponto)
Sempre faça os objetos com nomes simples, sem acentuações e caracteres especiais para
evitar erros.
selecao_var: Seleciona as variáveis (colunas) que você quer referenciar na tabela
selecao_var.drop: exclui os nomes da coluna de um objeto que você nao quer na tabela
para análise.
● A seleção pode ser feita das duas maneira, selecionando as tabelas que você quer,
ou as que você não quer com ‘drop’.
●
selecao_var = selecao_var.drop(columns=[[‘classe’, ‘sexo’]]
)
Nome do objeto
especificação que haveria uma lista
#%% Selecionando observações
# É possível filtrar (selecionar) observações por meio de condições
# Alguns operadores úteis para realizar os filtros:
# "== igual"
# "> maior"
# ">= maior ou igual"
# "< menor"
# "<= menor ou igual"
# "!= diferente"
# "& indica e"
# "| indica ou"
# Exemplos de filtros:
# Sobreviveram (duas opções de filtros)
sobreviveu = titanic[titanic['sobreviveu'] == 'sim']
sobreviveu = titanic[titanic['sobreviveu'] != 'nao']
# Adultos do sexo masculino
masc_adultos = (titanic[(titanic['sexo'] == 'masculino') &
(titanic['idade'] >= 18)])
# Mulheres ou crianças
mulheres_criancas = (titanic[(titanic['sexo'] == 'feminino') |
(titanic['idade'] < 18)])
# Pessoas sozinhas (sem parentes)
sozinhos = (titanic[(titanic['irmaos_conjuges'] == 0) &
(titanic['pais_filhos'] == 0)])
# Pessoas que pagaram mais de $100 pela tarifa e embarcaram em Cherbourg
tarifas_embarque = (titanic[(titanic['valor_tarifa'] > 100) &
(titanic['embarque'] == 'Cherbourg')])
Limpeza de Dados:
#%% Limpeza de dados
# Para analisar as observações com informações completas em todas as variáveis
titanic_limpo = [Link]()
# Porém, desta forma, seria uma opção muito ruim para esse banco de dados!
# Uma das variáveis (nivel_cabine) tem muitos valores faltantes
# Vamos excluir a variável e, em seguida, remover os NAs
titanic_limpo = [Link](columns=['nivel_cabine']).dropna()
Tabelas de Frequências
(normalize=TRUE): Traz as frequências em termos %.
#%% Estatísticas descritivas: tabela de frequências
titanic['sobreviveu'].value_counts()
titanic['sobreviveu'].value_counts(normalize=True)
# Podemos utilizar os DataFrames filtrados
Variáveis Quantitativas:
#%% Estatísticas descritivas: variável quantitativa
# Contagem de observações
titanic['idade'].count()
# Média aritmética
titanic['idade'].mean()
# Mediana
titanic['idade'].median()
# Máximo
titanic['idade'].max()
# Mínimo
titanic['idade'].min()
# Quartis e Percentis
titanic['idade'].quantile(q = 0.25) # Primeiro Quartil
titanic['idade'].quantile(q = 0.75) # Terceiro Quartil
# Variância
titanic['idade'].var()
# Desvio padrão
titanic['idade'].std()
Guia 4
-
-