Objetivo: Aplicar técnicas avanzadas para evaluar el rendimiento del modelo y entender sus limitaciones.
Identificación y análisis de errores en las predicciones del modelo.
from sklearn.metrics import confusion_matrix
cm = confusion_matrix(y_test, predictions)
print(cm)
Uso de curvas de aprendizaje para evaluar el rendimiento del modelo a lo largo del tiempo.
from sklearn.model_selection import learning_curve
import matplotlib.pyplot as plt
train_sizes, train_scores, test_scores = learning_curve(model, X, y, cv=5)
plt.plot(train_sizes, train_scores.mean(axis=1), label='Train score')
plt.plot(train_sizes, test_scores.mean(axis=1), label='Test score')
plt.xlabel('Training examples')
plt.ylabel('Score')
plt.legend()
plt.show()
Análisis de la sensibilidad del modelo a diferentes características y parámetros.
import numpy as np
def evaluate_sensitivity(model, X, y):
sensitivities = []
for feature in range(X.shape[1]):
X_temp = np.copy(X)
X_temp[:, feature] = np.random.permutation(X_temp[:, feature])
score = cross_val_score(model, X_temp, y, cv=5).mean()
sensitivities.append(score)
return sensitivities
sensitivities = evaluate_sensitivity(model, X, y)
print(sensitivities)
Objetivo: Implementar técnicas avanzadas para optimizar el rendimiento del modelo de machine learning.
Técnicas de ajuste fino para mejorar la precisión y eficiencia del modelo.
from sklearn.model_selection import RandomizedSearchCV
param_dist = {'C': [0.1, 1, 10], 'gamma': [1, 0.1, 0.01]}
random_search = RandomizedSearchCV(SVC(), param_dist, cv=5, n_iter=10)
random_search.fit(X_train, y_train)
print(f'Best Parameters: {random_search.best_params_}')
best_model = random_search.best_estimator_
best_predictions = best_model.predict(X_test)
Aplicación de técnicas de ensemble learning para mejorar el rendimiento del modelo.
from sklearn.ensemble import RandomForestClassifier, GradientBoostingClassifier
rf_model = RandomForestClassifier()
gb_model = GradientBoostingClassifier()
rf_model.fit(X_train, y_train)
gb_model.fit(X_train, y_train)
rf_predictions = rf_model.predict(X_test)
gb_predictions = gb_model.predict(X_test)
print(f'Random Forest Accuracy: {accuracy_score(y_test, rf_predictions)}')
print(f'Gradient Boosting Accuracy: {accuracy_score(y_test, gb_predictions)}')
Uso de técnicas de regularización para prevenir el sobreajuste y mejorar la generalización del modelo.
from sklearn.linear_model import Ridge, Lasso
ridge_model = Ridge(alpha=1.0)
lasso_model = Lasso(alpha=0.1)
ridge_model.fit(X_train, y_train)
lasso_model.fit(X_train, y_train)
ridge_predictions = ridge_model.predict(X_test)
lasso_predictions = lasso_model.predict(X_test)
print(f'Ridge Regression Accuracy: {ridge_model.score(X_test, y_test)}')
print(f'Lasso Regression Accuracy: {lasso_model.score(X_test, y_test)}')
Objetivos:
Objetivo: Asegurar que todos los participantes tengan el entorno de desarrollo correctamente configurado.
Instalación de Python (si no está ya instalado) y las bibliotecas necesarias.
pip install scikit-learn pandas numpy matplotlib seaborn
Objetivo: Verificar que todas las instalaciones y configuraciones estén funcionando correctamente.
Importar y utilizar scikit-learn en un pequeño script de prueba.
import sklearn
print(sklearn.__version__)
Crear y ejecutar un notebook de Jupyter para probar la configuración.
import pandas as pd
import numpy as np
# Crear un pequeño DataFrame de prueba
df = pd.DataFrame({
'feature1': np.random.rand(10),
'feature2': np.random.rand(10),
'target': np.random.randint(0, 2, size=10)
})
print(df.head())