26
APRENDIZAGEM DE M ´ AQUINA (usando Python) Thiago Marzag˜ ao INTRODUC ¸ ˜ AO ` A PROGRAMAC ¸ ˜ AO Thiago Marzag˜ ao APRENDIZAGEM DE M ´ AQUINA 1 / 26

APRENDIZAGEM DE MAQUINA - Thiago Marzagãothiagomarzagao.com/assets/teaching/ipea/slides2.pdf · boa linguagem p/ iniciantes: simples e intuitiva Thiago Marzag~ao APRENDIZAGEM DE

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: APRENDIZAGEM DE MAQUINA - Thiago Marzagãothiagomarzagao.com/assets/teaching/ipea/slides2.pdf · boa linguagem p/ iniciantes: simples e intuitiva Thiago Marzag~ao APRENDIZAGEM DE

APRENDIZAGEM DE MAQUINA(usando Python)

Thiago Marzagao

INTRODUCAO A PROGRAMACAO

Thiago Marzagao APRENDIZAGEM DE MAQUINA 1 / 26

Page 2: APRENDIZAGEM DE MAQUINA - Thiago Marzagãothiagomarzagao.com/assets/teaching/ipea/slides2.pdf · boa linguagem p/ iniciantes: simples e intuitiva Thiago Marzag~ao APRENDIZAGEM DE

linguagens de programacao

Thiago Marzagao APRENDIZAGEM DE MAQUINA 2 / 26

Page 3: APRENDIZAGEM DE MAQUINA - Thiago Marzagãothiagomarzagao.com/assets/teaching/ipea/slides2.pdf · boa linguagem p/ iniciantes: simples e intuitiva Thiago Marzag~ao APRENDIZAGEM DE

nossa linguagem

Thiago Marzagao APRENDIZAGEM DE MAQUINA 3 / 26

Page 4: APRENDIZAGEM DE MAQUINA - Thiago Marzagãothiagomarzagao.com/assets/teaching/ipea/slides2.pdf · boa linguagem p/ iniciantes: simples e intuitiva Thiago Marzag~ao APRENDIZAGEM DE

Guido van Rossum (BDFL - Benevolent Dictator For Life)

Thiago Marzagao APRENDIZAGEM DE MAQUINA 4 / 26

Page 5: APRENDIZAGEM DE MAQUINA - Thiago Marzagãothiagomarzagao.com/assets/teaching/ipea/slides2.pdf · boa linguagem p/ iniciantes: simples e intuitiva Thiago Marzag~ao APRENDIZAGEM DE

Guido van Rossum (BDFL - Benevolent Dictator For Life)

Thiago Marzagao APRENDIZAGEM DE MAQUINA 5 / 26

Page 6: APRENDIZAGEM DE MAQUINA - Thiago Marzagãothiagomarzagao.com/assets/teaching/ipea/slides2.pdf · boa linguagem p/ iniciantes: simples e intuitiva Thiago Marzag~ao APRENDIZAGEM DE

por que Python?

open source

excelente p/ mineracao de dados

amplamente usado (ou seja, e facil conseguir ajuda)

facilita “appificar” seu modelo

boa linguagem p/ iniciantes: simples e intuitiva

Thiago Marzagao APRENDIZAGEM DE MAQUINA 6 / 26

Page 7: APRENDIZAGEM DE MAQUINA - Thiago Marzagãothiagomarzagao.com/assets/teaching/ipea/slides2.pdf · boa linguagem p/ iniciantes: simples e intuitiva Thiago Marzag~ao APRENDIZAGEM DE

o fundamental

tipos de dados (str, int, float, etc)

variaveis

condicionais (if/else)

operadores (and/or/not)

loops

listas, conjuntos, dicionarios

REPL vs scripts

I/O

Thiago Marzagao APRENDIZAGEM DE MAQUINA 7 / 26

Page 8: APRENDIZAGEM DE MAQUINA - Thiago Marzagãothiagomarzagao.com/assets/teaching/ipea/slides2.pdf · boa linguagem p/ iniciantes: simples e intuitiva Thiago Marzag~ao APRENDIZAGEM DE

tipos de dados

1 + 1

“1” + “1”

“oi” + “mundo”

1.5 + 1.5

“1.5” + “1.5”

4 / 2

5 / 2

5.0 / 2

1 + 1.5

1 + “oi”

“1” + “oi”

type(5), type(“5”), type(5.0)

Thiago Marzagao APRENDIZAGEM DE MAQUINA 8 / 26

Page 9: APRENDIZAGEM DE MAQUINA - Thiago Marzagãothiagomarzagao.com/assets/teaching/ipea/slides2.pdf · boa linguagem p/ iniciantes: simples e intuitiva Thiago Marzag~ao APRENDIZAGEM DE

variaveis

x = 3

y = 4

x + y

x - y

x * y

x / y

float(x) / y

x ** y

((x + y) * (x - y) + (x ** y)) + 1000.5

z = ((x + y) * (x - y) + (x ** y)) + 1000.5

Thiago Marzagao APRENDIZAGEM DE MAQUINA 9 / 26

Page 10: APRENDIZAGEM DE MAQUINA - Thiago Marzagãothiagomarzagao.com/assets/teaching/ipea/slides2.pdf · boa linguagem p/ iniciantes: simples e intuitiva Thiago Marzag~ao APRENDIZAGEM DE

variaveis (cont.)

x = 3

y = 4

x + y

x = 1

x + y

variaveis variam!

z = x + y

x = 10

z

mas nem sempre como se espera (mais sobre isso ao longo do curso)

Thiago Marzagao APRENDIZAGEM DE MAQUINA 10 / 26

Page 11: APRENDIZAGEM DE MAQUINA - Thiago Marzagãothiagomarzagao.com/assets/teaching/ipea/slides2.pdf · boa linguagem p/ iniciantes: simples e intuitiva Thiago Marzag~ao APRENDIZAGEM DE

listas

x = [1, 3, 5, 7, 9]

type(x)

len(x)

x.append(11)

x

x.remove(1)

x

y = [2, 4, 6, 8, 10]

z = x + y

z

z[0] (Python conta a partir de zero.)

z[3] = 20

sorted(z)

z[-1]

Thiago Marzagao APRENDIZAGEM DE MAQUINA 11 / 26

Page 12: APRENDIZAGEM DE MAQUINA - Thiago Marzagãothiagomarzagao.com/assets/teaching/ipea/slides2.pdf · boa linguagem p/ iniciantes: simples e intuitiva Thiago Marzag~ao APRENDIZAGEM DE

listas (cont.)

listas podem diferentes tipos de dados

x = [1.1, 201.312, 3123.8]

x = [“joao”, “maria”, “priscila”, “alexandre”]

x = [“joao”, 1, 5.5]

listas podem contar outras listas

x = [[1, 2, 3], [4, 5, 6]]

type(x)

len(x)

x[0]

x = [[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]

len(x)

x[0]

x[0][0]

x[0][0][0]

x[0][0][0] = 15

Thiago Marzagao APRENDIZAGEM DE MAQUINA 12 / 26

Page 13: APRENDIZAGEM DE MAQUINA - Thiago Marzagãothiagomarzagao.com/assets/teaching/ipea/slides2.pdf · boa linguagem p/ iniciantes: simples e intuitiva Thiago Marzag~ao APRENDIZAGEM DE

conjuntos (sets)

parecidos c/ listas

mas sem elementos repetidos

e nao e possıvel ordenar os elementos

x = [1, 3, 5, 5, 7, 9, 9]

s = set(x)

s

type(s)

len(s)

uso frequente: len(set(x))

Thiago Marzagao APRENDIZAGEM DE MAQUINA 13 / 26

Page 14: APRENDIZAGEM DE MAQUINA - Thiago Marzagãothiagomarzagao.com/assets/teaching/ipea/slides2.pdf · boa linguagem p/ iniciantes: simples e intuitiva Thiago Marzag~ao APRENDIZAGEM DE

dicionarios

sao como “listas telefonicas”

mapeiam um conjunto de elementos a outro

exemplo: alunos -> notas

d = {“joao”: 5.5, “maria”: 7.2, “priscila”: 6.8}type(d)

d[“joao”]

d[“maria”]

d[“priscila”]

d[“joao”] = 6.5

d[“alexandre”] = 7.1

d

d.keys()

d.values()

Thiago Marzagao APRENDIZAGEM DE MAQUINA 14 / 26

Page 15: APRENDIZAGEM DE MAQUINA - Thiago Marzagãothiagomarzagao.com/assets/teaching/ipea/slides2.pdf · boa linguagem p/ iniciantes: simples e intuitiva Thiago Marzag~ao APRENDIZAGEM DE

FOR loops

x = [1, 3, 5, 7, 9]

for i in x:

print(i ** 2)

(importante: 4 espacos de “margem”)

Thiago Marzagao APRENDIZAGEM DE MAQUINA 15 / 26

Page 16: APRENDIZAGEM DE MAQUINA - Thiago Marzagãothiagomarzagao.com/assets/teaching/ipea/slides2.pdf · boa linguagem p/ iniciantes: simples e intuitiva Thiago Marzag~ao APRENDIZAGEM DE

condicionais

x = [1, 3, 5, 7, 9]

for i in x:

print(i ** 2)

(importante: 4 espacos de “margem”)

for i in x:

if i > 5:

print(i ** 2)

(importante: mais 4 espacos de “margem”)

(4 espacos de margem depois de “for” e depois de “if”)

Thiago Marzagao APRENDIZAGEM DE MAQUINA 16 / 26

Page 17: APRENDIZAGEM DE MAQUINA - Thiago Marzagãothiagomarzagao.com/assets/teaching/ipea/slides2.pdf · boa linguagem p/ iniciantes: simples e intuitiva Thiago Marzag~ao APRENDIZAGEM DE

operadores

1 < 2

2 < 1

(1 < 2) or (2 < 1)

(1 < 2) and (2 < 1)

(1 < 2) and not (2 < 1)

((1 < 2) and (2 < 1)) or ((1 < 2) or (2 < 1))

z = ((x + y) * (x - y) + (x ** y)) + 1000.5

if z < 1200:

print(“z menor que 1200”)

else:

print(“z maior ou igual a 1200”)

Thiago Marzagao APRENDIZAGEM DE MAQUINA 17 / 26

Page 18: APRENDIZAGEM DE MAQUINA - Thiago Marzagãothiagomarzagao.com/assets/teaching/ipea/slides2.pdf · boa linguagem p/ iniciantes: simples e intuitiva Thiago Marzag~ao APRENDIZAGEM DE

funcoes

def potencias(numero):

quadrado = numero ** 2

cubo = quadrado ** 3

quarta = cubo ** 4

quinta = quarta ** 2

return quinta

(4 espacos de margem depois de “for”, depois de “if” e depois de“def”)

potencias(2)

potencias(3)

x = potencias(2)

y = potencias(3)

Thiago Marzagao APRENDIZAGEM DE MAQUINA 18 / 26

Page 19: APRENDIZAGEM DE MAQUINA - Thiago Marzagãothiagomarzagao.com/assets/teaching/ipea/slides2.pdf · boa linguagem p/ iniciantes: simples e intuitiva Thiago Marzag~ao APRENDIZAGEM DE

funcoes (cont.)

def macarena(nome):

texto = “”

texto = texto + nome + “!”

texto += “ baila”

texto += “ tu cuerpo”

texto += “ alegria”

texto += “ macarena”

texto += “ hey macarena!”

return texto

(4 espacos de margem depois de “for”, depois de “if” e depois de“def”)

macarena(“priscila”)

Thiago Marzagao APRENDIZAGEM DE MAQUINA 19 / 26

Page 20: APRENDIZAGEM DE MAQUINA - Thiago Marzagãothiagomarzagao.com/assets/teaching/ipea/slides2.pdf · boa linguagem p/ iniciantes: simples e intuitiva Thiago Marzag~ao APRENDIZAGEM DE

funcoes (cont.)

def potencia2(numero1, numero2):

numero = numero1 ** numero2

return numero

(4 espacos de margem depois de “for”, depois de “if” e depois de“def”)

potencia2(5, 4)

Thiago Marzagao APRENDIZAGEM DE MAQUINA 20 / 26

Page 21: APRENDIZAGEM DE MAQUINA - Thiago Marzagãothiagomarzagao.com/assets/teaching/ipea/slides2.pdf · boa linguagem p/ iniciantes: simples e intuitiva Thiago Marzag~ao APRENDIZAGEM DE

funcoes (cont.)

por que funcoes?

DRY = Don’t Repeat Yourself

Thiago Marzagao APRENDIZAGEM DE MAQUINA 21 / 26

Page 22: APRENDIZAGEM DE MAQUINA - Thiago Marzagãothiagomarzagao.com/assets/teaching/ipea/slides2.pdf · boa linguagem p/ iniciantes: simples e intuitiva Thiago Marzag~ao APRENDIZAGEM DE

pacotes

pacotes sao conjuntos de funcoes

import math

math.sqrt(4)

import random

random.random()

alguns pacotes ja vem no Python mas a maioria precisa ser baixada einstalada

pacotes que vamos usar (muito!) no curso: pandas; scikit-learn

Thiago Marzagao APRENDIZAGEM DE MAQUINA 22 / 26

Page 23: APRENDIZAGEM DE MAQUINA - Thiago Marzagãothiagomarzagao.com/assets/teaching/ipea/slides2.pdf · boa linguagem p/ iniciantes: simples e intuitiva Thiago Marzag~ao APRENDIZAGEM DE

onde conseguir ajuda

Google

StackOverflow.com

pt.StackOverflow.com

Thiago Marzagao APRENDIZAGEM DE MAQUINA 23 / 26

Page 24: APRENDIZAGEM DE MAQUINA - Thiago Marzagãothiagomarzagao.com/assets/teaching/ipea/slides2.pdf · boa linguagem p/ iniciantes: simples e intuitiva Thiago Marzag~ao APRENDIZAGEM DE

Thiago Marzagao APRENDIZAGEM DE MAQUINA 24 / 26

Page 25: APRENDIZAGEM DE MAQUINA - Thiago Marzagãothiagomarzagao.com/assets/teaching/ipea/slides2.pdf · boa linguagem p/ iniciantes: simples e intuitiva Thiago Marzag~ao APRENDIZAGEM DE

Thiago Marzagao APRENDIZAGEM DE MAQUINA 25 / 26

Page 26: APRENDIZAGEM DE MAQUINA - Thiago Marzagãothiagomarzagao.com/assets/teaching/ipea/slides2.pdf · boa linguagem p/ iniciantes: simples e intuitiva Thiago Marzag~ao APRENDIZAGEM DE

Thiago Marzagao APRENDIZAGEM DE MAQUINA 26 / 26