← Teacher guide

Machine learning with Gradio: cheat sheet

Machine learning with Gradio · In any playground, open Reference to copy these.

Models by hand

running total

Start the total at 0 once, then add to it on every pass.

total = 0
while total < 10:
    total += int(input("Add: "))

variable

Give a value a name, so you can reuse and change it.

size = 50
Example
length = 120
forward(length)
left(90)
forward(length / 2)
What it draws
length = 120, then half of it

list

Keep many values in order under one name. The first item is place 0.

colours = ["red", "blue", "green"]

for each item

Work through a list, one item at a time.

for c in colours:
    pass
Example
pensize(6)
for c in ["red", "blue", "green"]:
    pencolor(c)
    forward(40)
What it draws
One line per colour in the list

print

Show text or a value in the output box.

print("Hello")

random number

Pick a random whole number between two values.

import random

n = random.randint(1, 10)

join text

Join pieces of text into one with +. Spaces only appear where they are inside the quotes.

"Hello, " + name

str

Turn a number into text, so it can be joined: "Score: " + str(score).

str(score)

dictionary value

The value stored under that key. The key goes in quotes. Assign to it to change it: star["speed"] = 8.

star["speed"]

read a file

Opens the file to read and gives you all of it as one piece of text.

with open("save.txt") as f:
    text = f.read()

test a model

Shuffle, then keep some examples back. Train on one part; test only on the other.

random.seed(1)
random.shuffle(penguins)
train = penguins[:250]
test = penguins[250:]

if / else

Do one thing or the other, depending on a condition.

if x > 0:
    pass
else:
    pass
Example
for x in [-90, -30, 30, 90]:
    penup()
    goto(x, 0)
    if x > 0:
        dot(30, "red")
    else:
        dot(30, "blue")
hideturtle()
What it draws
Red when x > 0, else blue

grow value

Change a value every pass: read the old one, store a new one.

size = 5
for i in range(20):
    forward(size)
    right(90)
    size = size + 5
Example
size = 5
for i in range(30):
    forward(size)
    right(90)
    size = size + 5
What it draws
The same spiral, grown by an update

def (function)

Name a group of steps, then run it by calling its name.

def shape():
    pass

shape()
Example
def zigzag():
    left(45)
    forward(30)
    right(90)
    forward(30)
    left(45)

zigzag()
zigzag()
zigzag()
What it draws
Defined once, called three times

dictionary

Values stored under names (keys). One dictionary can hold everything about one thing.

star = {"speed": 5, "points": 1}

in

True if the item is in the list (or the key is in the dictionary, or the letters are in the text).

if item in bag:
    pass

read a CSV

Each row of the file becomes a dictionary, keyed by the column names in the first line. Every value is text.

import csv

with open("music.csv") as f:
    rows = list(csv.DictReader(f))

Real tools

square (loop)

Draw a square by repeating forward and right four times.

for i in range(4):
    forward(100)
    right(90)
What it draws

every other

i % 2 == 0 is true on every second pass.

for i in range(8):
    if i % 2 == 0:
        pass
    else:
        pass
Example
for i in range(8):
    if i % 2 == 0:
        pencolor("red")
    else:
        pencolor("blue")
    pensize(6)
    forward(30)
    right(45)
What it draws
Red and blue sides, taking turns

an app with Gradio

Gradio calls your function with what was chosen, and shows what it returns.

import gradio as gr

def answer(choice):
    return "You chose " + choice

gr.Interface(fn=answer, inputs=gr.Dropdown(["pop", "rock"]), outputs="text").launch()

predict with a model

The new example needs the same columns, in the same order, as the training data.

mystery = pd.DataFrame([[47.0, 215.0]], columns=X.columns)
print(model.predict(mystery)[0])

for loop

Repeat the indented lines this many times.

for i in range(4):
    pass
Example
for i in range(5):
    forward(15)
    penup()
    forward(10)
    pendown()
What it draws
range(5): five dashes

counter step

Use the counter i to make each pass different.

for i in range(20):
    forward(i * 5)
    right(90)
Example
for i in range(30):
    forward(i * 5)
    right(90)
What it draws
A square spiral: each line longer than the last

read a CSV with pandas

Reads the whole file into a table (a DataFrame). Numbers stay numbers.

import pandas as pd

songs = pd.read_csv("music.csv")

train and score a model

fit learns from the training examples; score tests on the held-back ones (1.0 is 100%).

from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=1)
model = KNeighborsClassifier(n_neighbors=1)
model.fit(X_train, y_train)
print(model.score(X_test, y_test))