Eu realmente não entedi o Z = modelo.predict(pontos) do código abaixo, como vai fazer a previsão de um grupo de números sequenciais? Por acaso o resultado dessa linha é um grupo de 0 e 1 aleatórios? Pois para mim o precict precisaria ter duas entradas, e nessa caso só tem uma.
xx, yy = np.meshgrid(eixo_x, eixo_y)
pontos = np.c_[xx.ravel(), yy.ravel()]
Z = modelo.predict(pontos)