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:
| Valor | Significado |
| 0 | Bajo costo |
| 1 | Costo medio |
| 2 | Costo alto |
| 3 | Costo 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
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.
