Solucionado (ver solución)
Solucionado
(ver solución)
2
respuestas

[Duda] Ayuda en el código

Seguí todos los pasos, y mi gráfica no salió curva, por mas que reviso no encuentro el error. De antemano les agradezco la ayuda

from sklearn.svm import SVC
from sklearn.preprocessing import StandardScaler

x = datos[['horas_esperadas', 'precio']]
y = datos.finalizado

SEED = 42
np.random.seed(SEED)

raw_x_train, raw_x_test, y_train, y_test = train_test_split(x,y,test_size=0.25, stratify=y )
print(f"Entrenaremos con {len(x_train)} elementos y provamos con {len(x_test)} elementos.")


scaler = StandardScaler()
scaler.fit(raw_x_train)
x_train = scaler.transform(raw_x_train)
x_test = scaler.transform(raw_x_test)


mode = SVC() #modelo lineal, sera support vector clasifire
model.fit(x_train, y_train)
previsiones = model.predict(x_test)

data_x = x_test[:,0]
data_y = x_test[:,1]

x_min = data_x.min()
x_max = data_x.max()
y_min = data_y.min()
y_max = data_y.max()

pixels = 100
eje_x = np.arange(x_min, x_max, (x_max-x_min)/pixels)
eje_y = np.arange(y_min, y_max, (y_max-y_min)/pixels)

xx, yy = np.meshgrid(eje_x, eje_y)
puntos = np.c_[xx.ravel(), yy.ravel()]


Z = model.predict(puntos)
Z = Z.reshape(xx.shape)


plt.contourf (xx, yy, Z, alpha=0.3)
plt.scatter(data_x, data_y, c=y_test, s=1)

tasa_de_acierto = accuracy_score (y_test, previsiones)
print(f'La tasa de acierto fue de: {round(tasa_de_acierto*100,2)}%')

Gráfica

2 respuestas
solución!

Hola,

Por lo que veo en tu código, parece que todo está en orden. Sin embargo, la gráfica que obtuviste es lineal en lugar de curva, lo cual es un poco extraño considerando que estás utilizando el Support Vector Classifier (SVC) que debería ser capaz de encontrar relaciones no lineales en los datos.

Una posible explicación podría ser la naturaleza de tus datos. Aunque el SVC es capaz de encontrar relaciones no lineales, si tus datos están distribuidos de una manera que se ajusta mejor a una línea recta, el SVC podría generar una frontera de decisión lineal.

Por último, te recomendaría que revises tus datos. Asegúrate de que están correctamente preprocesados y de que no hay ningún error en ellos que pueda estar afectando a los resultados. Podrías reiniciar y ejecutar el notebook nuevamente para ver si alguna parte de los datos no sufrieron alguna alteración antes de plotar el gráfico.

Si este post te ayudó, por favor, marca como solucionado ✓.

Reinicie el notebook y funciono. Les agradezco.