Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Problema com a bibioteca Matplotlib

Quando vou plotar os dados com a biblioteca Matplotlib e executo o bloco de comandos:

import matplotlib.pyplot as plt
plt.contourf(xx, yy, Z, alpha=0.3)
plt.scatter(teste_x.horas_esperadas, teste_x.preco, c=teste_y, s=1)

Recebo esta saída:

TypeError                                 Traceback (most recent call last)
<ipython-input-15-5e679b570130> in <module>()
      1 import matplotlib.pyplot as plt
----> 2 plt.contourf(xx, yy, Z, alpha=0.3)
      3 plt.scatter(teste_x.horas_esperadas, teste_x.preco, c=teste_y, s=1)

6 frames
/usr/local/lib/python3.7/dist-packages/matplotlib/contour.py in _check_xyz(self, args, kwargs)
   1506 
   1507         if z.ndim != 2:
-> 1508             raise TypeError(f"Input z must be 2D, not {z.ndim}D")
   1509         if z.shape[0] < 2 or z.shape[1] < 2:
   1510             raise TypeError(f"Input z must be at least a (2, 2) shaped array, "

TypeError: Input z must be 2D, not 1D
1 resposta
solução!

Oii Alex, tudo bem?

O erro que está dando diz que o seu valor de Z deve ser de 2 dimensões, não só 1, mas por que está acontecendo isso?

Na aula, o Guilherme usa o comando reshape em Z, porque o nosso valor de Z é um array com shape de 10000, já o xx tem um shape de 100,100, ou seja, se rodarmos o código com o valor convencional de Z, ele ocorre esse erro de dimensionalidade.

Rodei aqui na minha máquina seu código, com a linha do reshape de Z comentada, e obtive o mesmo erro que você, como pode ver aqui:

Código da aula com a linha reshape de z comentada

Quando eu adiciono novamente a linha que tinha comentado, ele funciona normalmente, como pode ver aqui:

Código da aula com todos os valores conforme o Guilherme usou em aula

Agora, você pode conferir como está o seu código de Z? Ele deve estar dessa forma aqui:

Z = modelo.predict(pontos)
Z = Z.reshape(xx.shape)
Z

Acredito que depois disso você vai conseguir os mesmos resultados da aula, mas me conta se deu certo, qualquer coisa estou por aqui!

Bons estudos ^^