Exercício 0-3

No caso de classificação de dados 2D, $\mathbf{x}=(x_1,x_2)$ e $y$ é o rótulo de uma classe.
Aqui também o rótulo $y$ é representado pelos valores 1 (positivo, na cor azul) ou 0 (negativo, na cor vermelha)


In [ ]:
import matplotlib.pyplot as plt
import numpy as np

In [ ]:
# draw N random points in the [0,1]x[0,1] square
N = 100

x1 = np.random.rand(N)
x2 = np.random.rand(N)

# gráfico à esquerda mostra o conjunto de pontos e uma cosenóide
p = plt.figure()
p1 = p.add_subplot(121)
p1.plot(x1,x2,'rx')

# create a senoidal curve and add to the plot
x = np.arange(0, 1.0, 0.01)
fx = np.cos(2*np.pi*x) / 2 + 0.5
p1.plot(x, fx, lw=2)


# Gráfico à direita discrimina positivos (acima da curva) dos negativos (abaixo da curva)
# Ou seja, seria assim se a fronteira de decisão fosse a curva cosenóide
p2 = p.add_subplot(122)
for i in range(N):
    if np.cos(2*np.pi*x1[i])/2 + 0.5 > x2[i]:
        p2.plot(x1[i],x2[i],'bo')  # o (bolinhas) azuis (blue)
    else:
        p2.plot(x1[i],x2[i],'ro')  # o (bolinhas) vermelhas (red)
        
p2.plot(x, fx, lw=2)        
plt.show()