Clasificación con Support Vector Machine (SVM)

Prediciendo el rango de precio de celulares con Machine Learning

En este artículo vamos a construir paso a paso un modelo de clasificación usando Support Vector Machine (SVM), uno de los algoritmos más poderosos y versátiles del Machine Learning.

Nuestro objetivo será predecir el rango de precio de un celular a partir de sus características técnicas: RAM, batería, resolución de pantalla y más.

¿Qué es un SVM?
Un SVM busca el “mejor límite” posible para separar distintas categorías de datos. Imagínalo como trazar la línea más amplia posible entre dos grupos: los puntos de un lado pertenecen a una clase, los del otro a otra. Para más de dos clases, esta idea se extiende automáticamente.

En este ejemplo nos enfocamos en el flujo básico de entrenamiento, sin validación cruzada ni búsqueda de hiperparámetros — eso lo veremos en un próximo artículo, ya que es costoso en términos de cómputo.

El Dataset: ¿Con qué datos vamos a trabajar?

El dataset contiene características técnicas de celulares. A partir de ellas vamos a predecir la variable price_range, que indica en qué categoría de precio cae cada equipo:

ValorSignificado
0Bajo costo
1Costo medio
2Costo alto
3Costo muy alto

Las 20 características disponibles son:

  • battery_power: Energía total que una batería puede almacenar, medida en mAh
  • blue: Indica si tiene bluetooth o no
  • clock_speed: Velocidad del microprocesador
  • dual_sim: Indica si tiene soporte dual de *sim* o no
  • fc: Megapíxeles de la cámara frontal
  • four_g: Indica si tiene 4G o no
  • int_memory: Memoria interna en GB
  • m_dep: Grosor del celular en cm
  • mobile_wt: Peso del celular
  • n_cores: Número de núcleos del procesador
  • pc: Megapíxeles de la cámara principal
  • px_height: Alto de la resolución de píxeles
  • px_width: Ancho de resolución de píxeles
  • ram: RAM en MB
  • sc_h: Alto de la pantalla en cm
  • sc_w: Ancho de la pantalla en cm
  • talk_time: Tiempo máximo que dura una sola carga de la batería
  • tres_g: Indica si es 3G o no
  • touch_screen: Indica si tiene pantalla táctil o no
  • wifi: Indica si tiene wifi o no

Descargar el dataset

Conclusiones

¡Llegamos al final! Repasemos lo que construimos y aprendimos:

  • Seguimos un pipeline completo de Machine Learning: exploración de datos → preprocesamiento → entrenamiento → evaluación.
  • Usamos SVM con kernel lineal, que logró una exactitud superior al 95% — un resultado excelente para un modelo sin ajuste de hiperparámetros.
  • Aplicamos escalado correcto: ajustando el `StandardScaler` solo con los datos de entrenamiento para evitar data leakage.
  • Evaluamos el modelo más allá de la exactitud, usando la matriz de confusión y el classification report para entender el comportamiento por clase.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *