En Scikit-learn, puedes abordar los tres tipos principales de problemas en machine learning: clasificación, regresión y clustering. Aquí te explico cada uno con ejemplos de algoritmos y cómo usarlos con scikit-learn:
🔵 1. Clasificación (Supervisado)
Objetivo: Predecir etiquetas categóricas (por ejemplo, "spam" o "no spam", "aprobado" o "rechazado").
Algoritmos comunes en Scikit-learn:
LogisticRegression
KNeighborsClassifier
DecisionTreeClassifier
RandomForestClassifier
SVC (Support Vector Classifier)
Ejemplo:
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
X, y = load_iris(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
clf = RandomForestClassifier()
clf.fit(X_train, y_train)
print(clf.score(X_test, y_test)) # precisión
🟢 2. Regresión (Supervisado)
Objetivo: Predecir valores continuos (por ejemplo, precio de una casa, temperatura).
Algoritmos comunes:
LinearRegression
Ridge, Lasso
DecisionTreeRegressor
RandomForestRegressor
SVR (Support Vector Regressor)
Ejemplo:
from sklearn.datasets import fetch_california_housing
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
X, y = fetch_california_housing(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
model = LinearRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
print(mean_squared_error(y_test, y_pred)) # error cuadrático medio
🟣 3. Clustering (No Supervisado)
Objetivo: Agrupar datos similares sin etiquetas previas.
Algoritmos comunes:
KMeans
DBSCAN
AgglomerativeClustering
MeanShift
Ejemplo:
from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
X, _ = make_blobs(n_samples=300, centers=3, random_state=42)
kmeans = KMeans(n_clusters=3)
kmeans.fit(X)
plt.scatter(X[:, 0], X[:, 1], c=kmeans.labels_)
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], color='red')
plt.show()
Resumen:
TipoSupervisadoEtiquetas de entrenamientoEjemplo de usoClasificación✅SíDiagnóstico de enfermedadesRegresión✅SíPrecio de casasClustering❌NoAgrupación de clientes