Classificação

Na classificação, $y$ representa uma informação categórica. A convenção que usaremos será

  • Classe positiva: 1 (azul)
  • Classe negativa: 0 (vermelha)

Objetivo: familiarizar-se com a representação dos dados e plot

Note que, diferentemente do caso de regressão, aqui $y$ representa o rótulo de uma classe e portanto no plot ele aparece como uma cor.


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

# Criar um array com N números.
# Cada um desses números é um exemplo x
# Em seguida, estender os exemplos:  x ---> (1,x)
N = 14
x = np.array([0.2, 0.5, 1, 1.1, 1.2, 1.8, 2, 4.3, 4.4, 5.7, 6.9, 7.5, 8, 8.2])
X = np.vstack(zip(np.ones(N), x))

print X.shape


# Supor que os exemplos na primeira metade são negativos e o restante são
# positivos
y = np.array([0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1])

print y.shape


# show elements in distinct colors to discriminate negative from positive ones
for i in range(N):
    if y[i]==1:
        plt.plot(X[i,1], 0, 'bo')  # o (bolinhas) azuis (blue)
    else:
        plt.plot(X[i,1], 0, 'ro')  # o (bolinhas) vermelhas (red)
        
plt.ylim(-1,1)
plt.title('Exemplos de duas classes')
plt.xlabel('x')
ax1 = plt.axes()
ax1.axes.get_yaxis().set_visible(False)
plt.show()

Qual seria uma fronteira de decisão ?