Segui tds os passos, porém o resultado da acurácia está sempre em 50. Poderiam verificar se não me atentei para algo ou é alguma configuração do colab? Até antes da função for está batendo certinho, pode ser q seja nesse finalzinho o problema.
Obrigado!
from sklearn.datasets import make_classification
import matplotlib.pyplot as plt
import numpy as np
np.random.seed(46)
X, Y = make_classification(n_features=2, n_redundant=0, n_informative=1, n_clusters_per_class=1)
print(X.shape, Y.shape)
plt.scatter(X[:,0], X[:,1], marker='o', c=Y,
edgecolor='k')
p= X[10]
print(Y[10])
plt.plot(p[0], p[1], marker='^', markersize=20)
def plotmodel(w1,w2,b):
plt.scatter(X[:,0], X[:,1], marker='o', c=Y,
edgecolor='k')
xmin, xmax = plt.gca().get_xlim()
ymin, ymax = plt.gca().get_ylim()
x= np.linspace(-2,4,50)
y= (-w1*x - b)/w2
plt.axvline(0,-1,1,color='k',linewidth=1)
plt.axhline(0,-2,4,color='k',linewidth=1)
plt.plot(x,y)
plt.grid(True)
plt.xlim(xmin, xmax)
plt.ylim(ymin, ymax)
w1= 5
w2= 1
b = -0.4
plotmodel(w1,w2,b)
p= (-1,1)
print(w1*p[0] + w2*p[1] + b)
def classify(ponto, w1, w2, b):
ret = w1*p[0] + w2*p[1] + b
if ret >= 0:
return 1, 'yellow'
else:
return 0, 'blue'
p= (2,-1)
classe, cor = classify(p, w1, w2, b)
print(classe, cor)
plotmodel(w1, w2, b)
plt.plot(p[0], p[1], marker='^', color=cor, markersize=20)
acertos = 0
for k in range(len(X)):
categ, _ = classify(X[k], w1, w2, b)
if categ == Y[k]:
acertos += 1
print('Acurácia: {0}'.format(100 * acertos / len(X)))