Cómo empezar en machine learning con Python desde cero

El machine learning, o aprendizaje automático, es una rama de la inteligencia artificial que permite a los ordenadores aprender patrones a partir de datos. En lugar de programar todas las reglas manualmente, entrenamos un modelo con ejemplos para que pueda hacer predicciones, clasificar información o detectar patrones.
Python es uno de los lenguajes más usados para empezar en machine learning porque es sencillo, tiene una comunidad enorme y cuenta con librerías muy potentes como NumPy, pandas, scikit-learn, Matplotlib, TensorFlow o PyTorch.
Si partes desde cero, no necesitas aprenderlo todo a la vez. Lo importante es seguir un camino ordenado: primero Python básico, después manejo de datos, luego estadística esencial y finalmente modelos simples de machine learning.
- Qué necesitas saber antes de empezar
- Qué es machine learning, explicado fácil
- Tipos básicos de machine learning
- Paso 1: aprende Python básico
- Paso 2: instala tu entorno de trabajo
- Paso 3: aprende NumPy y pandas
- Paso 4: aprende visualización de datos
- Paso 5: entiende estadística básica
- Paso 6: aprende scikit-learn
- Paso 7: aprende a separar entrenamiento y prueba
- Paso 8: empieza con modelos sencillos
- Paso 9: aprende métricas de evaluación
- Paso 10: practica con datasets reales
- Ruta de aprendizaje recomendada
- Proyecto práctico para empezar
- Errores comunes al empezar
- Herramientas recomendadas
- Cómo saber si estás progresando
Qué necesitas saber antes de empezar
No hace falta ser matemático ni programador avanzado para dar los primeros pasos, pero sí necesitas una base mínima.
Qué es el doble factor de autenticación y cómo activarlo paso a pasoAntes de entrenar modelos, conviene entender:
- Variables, listas, diccionarios y funciones en Python.
- Cómo leer y manipular datos.
- Conceptos básicos de estadística.
- Qué es una tabla de datos.
- Cómo interpretar gráficos.
- Qué significa entrenar y evaluar un modelo.
El error más común es empezar directamente con redes neuronales o modelos complejos. Eso suele generar frustración. Es mejor dominar primero problemas sencillos y modelos clásicos.
Qué es machine learning, explicado fácil
Machine learning consiste en enseñar a un algoritmo a encontrar patrones en datos.
Por ejemplo, imagina que tienes una tabla con viviendas:
Cómo borrar tus datos personales de internet paso a paso| Tamaño | Habitaciones | Zona | Precio |
|---|---|---|---|
| 80 m² | 2 | Centro | 250.000 € |
| 120 m² | 3 | Norte | 330.000 € |
| 60 m² | 1 | Sur | 180.000 € |
Con suficientes ejemplos, un modelo puede aprender la relación entre tamaño, habitaciones, zona y precio. Luego podrías darle una vivienda nueva y pedirle que estime su precio.
Eso es un problema de regresión, porque queremos predecir un número.
Otro ejemplo: detectar si un email es spam o no. Ahí queremos clasificar entre dos categorías: spam o no spam. Eso es un problema de clasificación.
Tipos básicos de machine learning
Para empezar, basta con conocer tres tipos:
Cómo saber si una app móvil está robando tus datos personalesAprendizaje supervisado
El modelo aprende con ejemplos que ya tienen respuesta. Por ejemplo, viviendas con precio conocido, emails marcados como spam o clientes clasificados como compradores o no compradores.
Se usa para:
- Predecir precios.
- Clasificar correos.
- Detectar fraude.
- Estimar ventas.
- Predecir abandono de clientes.
Aprendizaje no supervisado
El modelo busca patrones sin tener una respuesta previa. Por ejemplo, agrupar clientes según comportamiento de compra.
Se usa para:
Qué permisos de Android deberías desactivar para mejorar tu privacidad- Segmentación de clientes.
- Agrupación de productos.
- Detección de patrones.
- Reducción de dimensiones.
Aprendizaje por refuerzo
El modelo aprende mediante prueba y error, recibiendo recompensas o penalizaciones. Se usa en robótica, juegos, sistemas de decisión y control.
Para empezar desde cero, céntrate primero en aprendizaje supervisado.
Paso 1: aprende Python básico
Python será tu herramienta principal. No necesitas saberlo todo, pero sí dominar lo esencial.
Conceptos clave:
- Variables.
- Tipos de datos.
- Condicionales.
- Bucles.
- Listas y diccionarios.
- Funciones.
- Lectura de archivos.
- Instalación de paquetes.
- Uso de notebooks.
Ejemplo básico:
nombre = "Ana"
edad = 28
if edad >= 18:
print(nombre, "es mayor de edad")
else:
print(nombre, "es menor de edad")
También deberías practicar funciones:
def calcular_iva(precio):
return precio * 1.21
print(calcular_iva(100))
Cuando entiendas este tipo de código sin dificultad, puedes pasar al análisis de datos.
Paso 2: instala tu entorno de trabajo
Para empezar, tienes varias opciones.
Opción sencilla: Google Colab
Google Colab permite programar en Python desde el navegador, sin instalar nada. Es ideal para principiantes porque ya incluye muchas librerías útiles.
Ventajas:
- No necesitas configurar tu ordenador.
- Funciona desde el navegador.
- Puedes guardar notebooks en Google Drive.
- Permite ejecutar código por bloques.
- Es gratis para aprender.
Opción local: Anaconda
Anaconda instala Python, Jupyter Notebook y muchas librerías de ciencia de datos. Es una buena opción si quieres trabajar en tu ordenador.
Opción más técnica: VS Code
Visual Studio Code es un editor muy popular. Es flexible y potente, pero puede requerir algo más de configuración.
Recomendación para empezar: usa Google Colab. Te permite centrarte en aprender sin pelearte con instalaciones.
Paso 3: aprende NumPy y pandas
Cuando trabajas con machine learning, casi todo empieza con datos. Para manejarlos en Python, dos librerías son fundamentales.
NumPy
NumPy sirve para trabajar con arrays, matrices y operaciones numéricas.
Ejemplo:
import numpy as np
numeros = np.array([10, 20, 30, 40])
print(numeros.mean())
pandas
pandas sirve para trabajar con tablas de datos, similares a hojas de cálculo.
Ejemplo:
import pandas as pd
datos = {
"nombre": ["Ana", "Luis", "Marta"],
"edad": [28, 35, 22],
"ciudad": ["Madrid", "Valencia", "Sevilla"]
}
df = pd.DataFrame(datos)
print(df)
Con pandas aprenderás a:
- Cargar archivos CSV.
- Ver filas y columnas.
- Filtrar datos.
- Limpiar valores vacíos.
- Agrupar información.
- Crear nuevas columnas.
- Calcular estadísticas básicas.
Ejemplo de carga de datos:
df = pd.read_csv("datos.csv")
print(df.head())
print(df.info())
print(df.describe())
Si no sabes manejar datos, entrenar modelos será mucho más difícil. Por eso pandas es una de las primeras habilidades que debes dominar.
Paso 4: aprende visualización de datos
Antes de entrenar un modelo, necesitas entender los datos. Para eso sirven los gráficos.
La librería más básica es Matplotlib.
Ejemplo:
import matplotlib.pyplot as plt
edades = [20, 25, 30, 35, 40]
salarios = [18000, 22000, 28000, 35000, 42000]
plt.scatter(edades, salarios)
plt.xlabel("Edad")
plt.ylabel("Salario")
plt.title("Relación entre edad y salario")
plt.show()
También puedes usar gráficos de barras, histogramas y líneas.
Los gráficos ayudan a detectar:
- Tendencias.
- Valores extremos.
- Errores en los datos.
- Relaciones entre variables.
- Distribuciones desiguales.
No entrenes modelos a ciegas. Mira los datos primero.
Paso 5: entiende estadística básica
No necesitas dominar estadística avanzada al principio, pero sí algunos conceptos.
Aprende:
- Media.
- Mediana.
- Desviación estándar.
- Correlación.
- Distribución.
- Porcentaje.
- Probabilidad básica.
- Muestra y población.
- Variables numéricas y categóricas.
Ejemplo sencillo:
Si la media de ventas mensuales es 10.000 €, pero algunos meses vendes 1.000 € y otros 30.000 €, la media puede no contar toda la historia. Por eso también necesitas mirar la distribución, valores extremos y tendencias.
En machine learning, la estadística te ayuda a entender si un modelo realmente está aprendiendo o solo está dando resultados engañosos.
Paso 6: aprende scikit-learn
scikit-learn es la librería más recomendable para empezar en machine learning clásico con Python. Permite entrenar modelos de regresión, clasificación, clustering y evaluación con una sintaxis bastante clara.
Un flujo básico con scikit-learn suele ser:
- Cargar datos.
- Separar variables de entrada y variable objetivo.
- Dividir datos en entrenamiento y prueba.
- Elegir modelo.
- Entrenar modelo.
- Hacer predicciones.
- Evaluar resultados.
Ejemplo simple de regresión lineal:
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_absolute_error
# Datos de ejemplo
df = pd.DataFrame({
"metros": [50, 60, 80, 100, 120, 150],
"habitaciones": [1, 2, 2, 3, 3, 4],
"precio": [150000, 180000, 240000, 300000, 360000, 450000]
})
X = df[["metros", "habitaciones"]]
y = df["precio"]
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42
)
modelo = LinearRegression()
modelo.fit(X_train, y_train)
predicciones = modelo.predict(X_test)
error = mean_absolute_error(y_test, predicciones)
print("Error medio absoluto:", error)
Este ejemplo es muy pequeño, pero muestra la idea básica.
Paso 7: aprende a separar entrenamiento y prueba
Uno de los conceptos más importantes es no evaluar el modelo con los mismos datos que usaste para entrenarlo.
Si estudias para un examen memorizando las preguntas exactas y luego te hacen esas mismas preguntas, sacarás buena nota, pero eso no demuestra que entiendas el tema. Lo mismo ocurre con un modelo.
Por eso se dividen los datos:
- Entrenamiento: datos para que el modelo aprenda.
- Prueba: datos nuevos para comprobar si generaliza.
En scikit-learn se hace así:
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42
)
Normalmente se usa entre un 70% y 80% para entrenamiento, y el resto para prueba.
Paso 8: empieza con modelos sencillos
No necesitas empezar con redes neuronales. De hecho, suele ser mejor empezar con modelos clásicos.
Modelos recomendados para principiantes:
Regresión lineal
Sirve para predecir valores numéricos, como precios, ventas o temperaturas.
Regresión logística
Sirve para clasificación binaria, como sí/no, compra/no compra, spam/no spam.
Árboles de decisión
Son modelos fáciles de entender porque toman decisiones por ramas.
Random Forest
Combina muchos árboles de decisión y suele funcionar bastante bien en problemas prácticos.
K-means
Sirve para agrupar datos sin etiquetas, por ejemplo segmentar clientes.
Empieza con un modelo simple, evalúa resultados y después prueba uno más avanzado.
Paso 9: aprende métricas de evaluación
Entrenar un modelo no sirve de mucho si no sabes medir si funciona.
Para regresión puedes usar:
- Error absoluto medio.
- Error cuadrático medio.
- R².
Para clasificación puedes usar:
- Accuracy.
- Precision.
- Recall.
- F1-score.
- Matriz de confusión.
Ejemplo de clasificación:
from sklearn.metrics import accuracy_score, classification_report
predicciones = modelo.predict(X_test)
print("Accuracy:", accuracy_score(y_test, predicciones))
print(classification_report(y_test, predicciones))
Importante: una accuracy alta no siempre significa que el modelo sea bueno. Si el 95% de los emails no son spam, un modelo que diga siempre “no spam” tendrá 95% de acierto, pero será inútil para detectar spam. Por eso hay que entender bien las métricas.
Paso 10: practica con datasets reales
La mejor forma de aprender es practicar. Puedes empezar con datasets clásicos:
- Iris: clasificación de flores.
- Titanic: predicción de supervivencia.
- Boston Housing o California Housing: precios de viviendas.
- MNIST: reconocimiento de dígitos.
- Wine Dataset: clasificación de vinos.
Para principiantes, Iris y Titanic son buenos puntos de partida.
Proyecto recomendado:
- Carga el dataset Titanic.
- Explora columnas.
- Limpia datos vacíos.
- Convierte variables categóricas.
- Entrena un modelo simple.
- Evalúa resultados.
- Intenta mejorarlo.
Este tipo de proyecto enseña mucho más que leer teoría durante semanas.
Ruta de aprendizaje recomendada
Una ruta realista sería:
Semana 1-2: Python básico
Aprende variables, listas, funciones, bucles y notebooks.
Semana 3-4: pandas y datos
Carga CSV, filtra tablas, agrupa datos y limpia valores.
Semana 5: visualización
Crea gráficos simples y aprende a interpretar datos.
Semana 6: estadística básica
Media, mediana, correlación, distribución y probabilidad.
Semana 7-8: scikit-learn
Entrena modelos simples de regresión y clasificación.
Semana 9-10: proyectos pequeños
Haz 2 o 3 proyectos completos con datasets reales.
Después: profundización
Aprende validación cruzada, ingeniería de variables, pipelines, modelos avanzados y, más adelante, redes neuronales.
Proyecto práctico para empezar
Un buen primer proyecto es predecir el precio de una vivienda según metros cuadrados y habitaciones.
Pasos:
- Crear o descargar un dataset.
- Cargarlo con pandas.
- Revisar datos.
- Crear gráficos.
- Separar variables.
- Dividir entrenamiento y prueba.
- Entrenar regresión lineal.
- Medir error.
- Probar con Random Forest.
- Comparar resultados.
Lo importante no es que el modelo sea perfecto, sino entender el proceso completo.
Errores comunes al empezar
Querer aprender todo a la vez
Machine learning incluye programación, matemáticas, datos y modelos. Ve paso a paso.
Copiar código sin entenderlo
Puedes usar ejemplos, pero intenta explicar cada línea con tus palabras.
Ignorar la limpieza de datos
En proyectos reales, limpiar datos suele llevar más tiempo que entrenar el modelo.
No evaluar correctamente
Un modelo que funciona bien en entrenamiento puede fallar en datos nuevos.
Obsesionarse con redes neuronales
Las redes neuronales son útiles, pero no siempre necesarias. Muchos problemas reales se resuelven con modelos clásicos.
No hacer proyectos
La teoría es importante, pero se aprende practicando.
Herramientas recomendadas
Para empezar:
- Google Colab.
- Python.
- pandas.
- NumPy.
- Matplotlib.
- scikit-learn.
- Kaggle.
- Jupyter Notebook.
Más adelante:
- TensorFlow.
- PyTorch.
- XGBoost.
- Streamlit.
- FastAPI.
- MLflow.
No necesitas dominar todas desde el principio.
Cómo saber si estás progresando
Estás avanzando bien si puedes:
- Cargar un CSV.
- Entender columnas y filas.
- Limpiar datos básicos.
- Crear gráficos.
- Separar X e y.
- Entrenar un modelo simple.
- Evaluarlo con una métrica.
- Explicar qué hace el modelo.
- Mejorar poco a poco los resultados.
Si puedes hacer eso, ya tienes una base real.
Si quieres conocer otros artículos parecidos a Cómo empezar en machine learning con Python desde cero puedes visitar la categoría Blog.

Entradas Relacionadas