Entrenamiento del modelo

Machine Learning de extremo a extremo

Joshua Stapleton

Machine Learning Engineer

Navaja de Ockham

  • La explicación suficiente más simple es la mejor
  • Prefiere modelos simples al elegir

Imagen de ejemplo del principio de la navaja de Ockham

Machine Learning de extremo a extremo

Opciones de modelado

Regresión logística

  • Encuentra el límite de decisión entre clases
  • sklearn.linear_model.LogisticRegression

Máquinas de vectores de soporte (SVC)

  • Encuentra un plano que separe las clases
  • sklearn.svm.SVC

Árbol de decisión

  • Genera “reglas” simples para clasificar
  • sklearn.tree.DecisionTreeClassifier

Bosque aleatorio

  • Combina múltiples árboles de decisión
  • sklearn.ensemble.RandomForestClassifier
Machine Learning de extremo a extremo

Otros modelos

Modelos de deep learning

  • Redes neuronales
  • Redes neuronales convolucionales
  • Generative Pretrained Transformer (GPT)

K-Nearest Neighbors (KNN)

  • Algoritmo supervisado

XGBoost

Machine Learning de extremo a extremo

Principios de entrenamiento

Modelo:

  • Usa datos limpiados y con features tratadas
  • Aprende patrones en los datos de entrenamiento
  • Busca predecir el objetivo: diagnóstico de cardiopatía

Principios:

  • Debe generalizar a datos no vistos (fuera del entrenamiento)
  • Reserva un conjunto para probar tras entrenar (“hold-out”)
  • División típica train/test: 70/30 o 80/20
  • Puedes usar sklearn.model_selection.train_test_split
Machine Learning de extremo a extremo

Entrenar un modelo

# Importing necessary libraries
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression

# Split the data into training and testing sets (80:20) X_train, X_test, y_train, y_test = train_test_split(features, heart_disease_y, test_size=0.2, random_state=42)
# Define the models logistic_model = LogisticRegression(max_iter=200)
# Train the model logistic_model.fit(X_train, y_train)
Machine Learning de extremo a extremo

Obtener predicciones del modelo

# Jane Doe's health data, for example: [age, cholesterol level, blood pressure, etc.]
jane_doe_data = [45, 230, 120, ...]

# Reshape the data to 2D, because scikit-learn expects a 2D array-like input jane_doe_data = jane_doe_data.reshape(1, -1)
# Use the model to predict Jane's heart disease diagnosis probabilities jane_doe_probabilities = logistic_model.predict_proba(jane_doe_data) jane_doe_prediction = logistic_model.predict(jane_doe_data)
Machine Learning de extremo a extremo

Obtener predicciones (cont.)

# Print the probabilities
print(f"Jane Doe's predicted probabilities: {jane_doe_probabilities[0]}")
print(f"Jane Doe's predicted health condition: {jane_doe_prediction[0]}")
Probabilidades previstas para Jane Doe: [0.2 0.8]

Condición de salud prevista para Jane Doe: 1
Machine Learning de extremo a extremo

¡Vamos a practicar!

Machine Learning de extremo a extremo

Preparing Video For Download...