Introducción al machine learning con Python
Python es uno de los lenguajes de programación más utilizados en el machine learning, debido a su facilidad de aprendizaje, su potente soporte de bibliotecas y su ecosistema comunitario.
A continuación, explicaré paso a paso cómo iniciarse en el machine learning con Python y presentaré algunas de las bibliotecas comunes necesarias.
Instalación de Python y las bibliotecas necesarias
Método 1: Instalador oficial
Primero, asegúrate de tener Python instalado; puedes visitar el sitio web oficial de Pythonhttps://www.python.org/Descarga e instala la última versión.
Sistema Windows:
# 1. 下载安装程序后运行 # 2. 勾选 "Add Python to PATH" # 3. 选择 "Install for all users" # 4. 点击 "Install" 开始安装
Sistema macOS:
# 方法1:使用官网安装包 # 下载 .pkg 文件并双击安装 # 方法2:使用 Homebrew brew install python3
Sistema Linux:
# Ubuntu/Debian sudo apt update sudo apt install python3 python3-pip # CentOS/RHEL sudo yum install python3 python3-pip
Método 2: Distribución Anaconda
Anaconda es una distribución de Python diseñada específicamente para la ciencia de datos, como una "caja de herramientas de machine learning" con todas las herramientas preinstaladas.
Ventajas de Anaconda
- Bibliotecas comunes preinstaladas: NumPy, Pandas, Scikit-learn, etc.
- Gestión de entornos: el comando conda gestiona entornos virtuales
- Interfaz gráfica: Anaconda Navigator ofrece operaciones visuales
- Multiplataforma: compatible con todos los sistemas operativos principales
Instalación de Anaconda
- Visitahttps://www.anaconda.com/products/distribution
- Descarga el paquete de instalación correspondiente a tu sistema
- Ejecuta el instalador y sigue las indicaciones para completar la instalación
Verificar la instalación:
conda --version python --version
Si aún no estás familiarizado con Python, puedes consultar nuestroTutorial de Python。
Si aún no estás familiarizado con Conda, puedes consultar nuestroTutorial de Anaconda。
Se recomienda instalar Anaconda para crear entornos virtuales.
¿Por qué necesitas un entorno virtual?
Un entorno virtual es como una cocina independiente preparada para cada proyecto, evita que los "condimentos" (versiones de bibliotecas) de distintos proyectos interfieran entre sí.
Beneficios de los entornos virtuales
- Aislamiento de dependencias: diferentes proyectos usan distintas versiones de bibliotecas
- Reproducción de entornos: facilita reconstruir el mismo entorno en otras máquinas
- Gestión de permisos: evita contaminar el entorno de Python del sistema
- Limpieza de proyectos: al eliminar un proyecto, se elimina también su entorno asociado
Uso de conda para gestionar entornos
# 创建环境 conda create -n ml_env python=3.8 # 激活环境 conda activate ml_env # 安装包 conda install numpy pandas scikit-learn # 列出环境 conda env list # 删除环境 conda env remove -n ml_env
Configuración de herramientas de desarrollo
Jupyter Notebook
Jupyter Notebook es el laboratorio digital de los científicos de datos, admite programación interactiva y visualización.
Instalación y puesta en marcha de Jupyter
# 安装 Jupyter pip install jupyter # 启动 Jupyter Notebook jupyter notebook # 启动 Jupyter Lab(更现代的界面) jupyter lab
Uso básico de Jupyter
Ejemplo
# Ejecuta el siguiente código en Jupyter
# 1. Importación y exploración de datos
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# Crear datos de ejemplo
data = {
'Nombre': ['Zhang San', 'Li Si', 'Wang Wu', 'Zhao Liu'],
'Edad': [25, 30, 35, 28],
'Ciudad': ['Beijing', 'Shanghái', 'Guangzhou', 'Shenzhen'],
'Salario': [15000, 20000, 18000, 22000]
}
df = pd.DataFrame(data)
print("Vista previa de los datos:")
print(df.head())
# 2. Visualización de datos
plt.figure(figsize=(10, 4))
plt.subplot(1, 2, 1)
plt.bar(df['Nombre'], df['Edad'])
plt.title('Distribución de edad')
plt.xlabel('Nombre')
plt.ylabel('Edad')
plt.subplot(1, 2, 2)
plt.bar(df['Nombre'], df['Salario'])
plt.title('Distribución salarial')
plt.xlabel('Nombre')
plt.ylabel('Salario')
plt.tight_layout()
plt.show()
# 3. Análisis estadístico simple
print("\n"Información estadística básica:")
print(df.describe())
print("\n"Distribución de ciudades:")
print(df['Ciudad'].value_counts())
Configuración de VS Code
VS Code es un editor de código ligero pero potente, y mediante complementos puede convertirse en un entorno profesional de desarrollo de machine learning.
Complementos recomendados
- Python: Complemento oficial de Python de Microsoft
- Jupyter: compatible con Jupyter Notebook
- Python Docstring Generator: genera automáticamente cadenas de documentación
- Bracket Pair Colorizer: coloreado de pares de corchetes
- GitLens: funciones mejoradas de Git
Ejemplo de configuración de VS Code
// .vscode/settings.json
{
"python.defaultInterpreterPath": "./envs/ml_env/bin/python",
"python.linting.enabled": true,
"python.linting.pylintEnabled": true,
"python.formatting.provider": "black",
"python.testing.pytestEnabled": true,
"jupyter.askForKernelRestart": false,
"editor.fontSize": 14,
"editor.tabSize": 4,
"editor.insertSpaces": true
}
Instalación de bibliotecas de machine learning
Bibliotecas comunes de machine learning:
pip install numpy pandas matplotlib seaborn scikit-learn
Si planeas usar un marco de trabajo de aprendizaje profundo, instala lo siguiente:
pip install torch # 或者 pip install tensorflow
Cursos relacionados:
- Tutorial de Python
- Tutorial de Numpy
- Tutorial de Pandas
- Tutorial de Matplotlib
- Tutorial de scikit-learn
- Tutorial de PyTorch
- Tutorial de OpenCV

Al usar Python para machine learning, el proceso general suele seguir estos pasos:
Importar las bibliotecas necesarias- Por ejemplo, NumPy, Pandas y Scikit-learn.
Cargar y preparar los datos- Los datos son el núcleo del machine learning. Necesitas cargar los datos y realizar el preprocesamiento necesario (por ejemplo, limpieza de datos, imputación de valores faltantes, etc.).
Seleccionar el modelo y el algoritmo- Elige el algoritmo de machine learning adecuado según la tarea (por ejemplo, regresión lineal, árboles de decisión, etc.).
Entrenar el modelo- Usa los datos del conjunto de entrenamiento para entrenar el modelo.
Evaluar el modelo- Usa el conjunto de prueba para evaluar la precisión del modelo y optimízalo según los resultados de la evaluación.
Ajustar el modelo y los hiperparámetros- Ajusta los hiperparámetros del modelo según los resultados de la evaluación para optimizar aún más su rendimiento.
Un ejemplo simple de machine learning: clasificación con Scikit-learn
Scikit-learn (abreviado Sklearn) es una biblioteca de machine learning de código abierto, construida sobre bibliotecas de cálculo científico como NumPy, SciPy y matplotlib, y ofrece herramientas simples y eficientes para la minería y el análisis de datos.
Scikit-learn incluye muchos algoritmos comunes de machine learning, entre ellos:
- Regresión lineal, regresión ridge, regresión Lasso
- Máquinas de vectores de soporte (SVM)
- Árboles de decisión, bosques aleatorios, árboles de potenciación de gradiente
- Algoritmos de agrupamiento (como K-Means, agrupamiento jerárquico, DBSCAN)
- Técnicas de reducción de dimensionalidad (como PCA, t-SNE)
- Redes neuronales
A continuación, mediante una tarea de clasificación simple con el conjunto de datos Iris, demostraremos el flujo de trabajo del machine learning. El conjunto de datos Iris es un conjunto clásico que contiene 150 muestras que describen la longitud y el ancho de los pétalos y sépalos de tres tipos diferentes de flores de iris.
Paso 1: Importar bibliotecas
Importa las bibliotecas de Python necesarias:
import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from sklearn.neighbors import KNeighborsClassifier from sklearn.metrics import accuracy_score
Paso 2: Cargar datos
Carga el conjunto de datos Iris:
Ejemplo
iris = load_iris()
# Convertir los datos a un DataFrame de pandas
X = pd.DataFrame(iris.data, columns=iris.feature_names) # Datos de características
y = pd.Series(iris.target) # Datos de etiquetas
# Mostrar las primeras cinco filas de datos
print(X.head())
La salida impresa de los datos es la siguiente:
sepal length (cm) sepal width (cm) petal length (cm) petal width (cm) 0 5.1 3.5 1.4 0.2 1 4.9 3.0 1.4 0.2 2 4.7 3.2 1.3 0.2 3 4.6 3.1 1.5 0.2 4 5.0 3.6 1.4 0.2
Paso 3: División del conjunto de datos
Dividir el conjunto de datos en conjunto de entrenamiento y prueba, normalmente usando una proporción de 70% para entrenamiento y 30% para prueba:
Ejemplo
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
Paso 4: Escalado de características (estandarización)
Muchos algoritmos de aprendizaje automático dependen de la escala de las características, especialmente algoritmos como K-Nearest Neighbors. Para asegurar que cada característica tenga una media de 0 y una desviación estándar de 1, utilizamos la estandarización para procesar los datos:
Ejemplo
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
Paso 5: Seleccionar el modelo y entrenarlo
En este ejemplo, elegimos el algoritmo K-Nearest Neighbors (KNN) para la clasificación:
Ejemplo
knn = KNeighborsClassifier(n_neighbors=3)
# Entrenar el modelo
knn.fit(X_train, y_train)
Paso 6: Evaluar el modelo
Después de completar el entrenamiento, usamos el conjunto de prueba para evaluar la precisión del modelo:
Ejemplo
y_pred = knn.predict(X_test)
# Calcular la precisión
accuracy = accuracy_score(y_test, y_pred)
print(f'Precisión del modelo: {accuracy:.2f}')
Al completar el código anterior, el resultado es:
模型准确率: 1.00
Paso 7: Visualizar resultados (opcional)
Puedes comprender mejor el rendimiento del modelo mediante la visualización, especialmente en el caso de conjuntos de datos multidimensionales. Por ejemplo, puedes usar un gráfico bidimensional para mostrar los resultados de la clasificación KNN (aunque aquí es necesario reducir la dimensionalidad de los datos para simplificarlos a dos dimensiones).
Ejemplo
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score
# Cargar el conjunto de datos Iris
iris = load_iris()
# Convertir los datos en un DataFrame de pandas
X = pd.DataFrame(iris.data, columns=iris.feature_names) # Datos de características
y = pd.Series(iris.target) # Datos de etiquetas
# Dividir en conjunto de entrenamiento y prueba (80% entrenamiento, 20% prueba)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Estandarizar características
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
# Crear el clasificador KNN
knn = KNeighborsClassifier(n_neighbors=3)
# Entrenar el modelo
knn.fit(X_train, y_train)
# Predecir el conjunto de prueba
y_pred = knn.predict(X_test)
# Calcular la precisión
accuracy = accuracy_score(y_test, y_pred)
# Visualización: aquí solo hay un ejemplo simple, puedes elegir el método de gráfico según la situación real
plt.scatter(X_test[:, 0], X_test[:, 1], c=y_pred, cmap='viridis', marker='o')
plt.title("KNN Classification Results")
plt.xlabel("Feature 1")
plt.ylabel("Feature 2")
plt.show()
La imagen de salida es la siguiente:
