ModalScoutEnsemble


import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sheshe import ModalScoutEnsemble

X, y = load_iris(return_X_y=True)
mse = ModalScoutEnsemble().fit(X, y)
mse.plot_classes(X, y)
plt.show()

Ensamble que aplica ModalBoundaryClustering en los subespacios más prometedores descubiertos por SubspaceScout. Cada submodelo se pondera por puntuación del scout, validación cruzada e importancia de características, y el ensamble puede delegar la optimización a ShuShu cuando ensemble_method="shushu".

Ejemplo


from sheshe import ModalScoutEnsemble
from sklearn.linear_model import LogisticRegression
mse = ModalScoutEnsemble(base_estimator=LogisticRegression())
mse.fit(X, y)
labels = mse.predict(X)

Ejemplos de uso


from sheshe import ModalScoutEnsemble
from sklearn.linear_model import LogisticRegression

mse = ModalScoutEnsemble(base_estimator=LogisticRegression(), random_state=0)
mse.fit(X, y)                      # fit

from sheshe import ModalScoutEnsemble
from sklearn.linear_model import LogisticRegression

mse = ModalScoutEnsemble(base_estimator=LogisticRegression(), random_state=0)
mse.fit_predict(X, y)              # fit_predict

from sheshe import ModalScoutEnsemble
from sklearn.linear_model import LogisticRegression

mse = ModalScoutEnsemble(base_estimator=LogisticRegression(), random_state=0)
mse.fit_transform(X, y)            # fit_transform

from sheshe import ModalScoutEnsemble
from sklearn.linear_model import LogisticRegression

mse = ModalScoutEnsemble(base_estimator=LogisticRegression(), random_state=0).fit(X, y)
mse.transform(X)                   # transform

from sheshe import ModalScoutEnsemble
from sklearn.linear_model import LogisticRegression

mse = ModalScoutEnsemble(base_estimator=LogisticRegression(), random_state=0).fit(X, y)
mse.predict(X)                     # predict

from sheshe import ModalScoutEnsemble
from sklearn.linear_model import LogisticRegression

mse = ModalScoutEnsemble(base_estimator=LogisticRegression(), random_state=0).fit(X, y)
mse.predict_proba(X)               # predict_proba

from sheshe import ModalScoutEnsemble
from sklearn.linear_model import LogisticRegression

mse = ModalScoutEnsemble(base_estimator=LogisticRegression(), random_state=0).fit(X, y)
mse.decision_function(X)           # decision_function

from sheshe import ModalScoutEnsemble
from sklearn.linear_model import LogisticRegression

mse = ModalScoutEnsemble(base_estimator=LogisticRegression(), random_state=0).fit(X, y)
mse.predict_regions(X)             # predict_regions

from sheshe import ModalScoutEnsemble
from sklearn.linear_model import LogisticRegression

mse = ModalScoutEnsemble(base_estimator=LogisticRegression(), random_state=0).fit(X, y)
mse.score(X, y)                    # score

from sheshe import ModalScoutEnsemble
from sklearn.linear_model import LogisticRegression

mse = ModalScoutEnsemble(base_estimator=LogisticRegression(), random_state=0).fit(X, y)
mse.save("mse.joblib")             # save

from sheshe import ModalScoutEnsemble
from sklearn.linear_model import LogisticRegression

mse = ModalScoutEnsemble.load("mse.joblib")

Ejemplos adicionales


from sheshe import ModalScoutEnsemble
from sklearn.datasets import load_iris
from sklearn.linear_model import LogisticRegression

iris = load_iris()
X, y = iris.data, iris.target

mse = ModalScoutEnsemble(
    base_estimator=LogisticRegression(max_iter=200),
    task="classification",
    random_state=0,
    scout_kwargs={"max_order": 2, "top_m": 4, "sample_size": None},
    cv=2,
    # ensemble_method="shushu" usaría el optimizador ShuShu
)
mse.fit(X, y)
print(mse.predict(X[:5]))
print(mse.predict_proba(X[:5]))

Parámetros

  • base_estimator (BaseEstimator): modelo usado para calcular probabilidades o predicciones en cada subespacio.
  • task (str, opcional): "classification" o "regression". Se infiere del estimador base si es None.
  • ensemble_method (str, por defecto "modal_scout"): "modal_scout" para usar el ensamble interno de subespacios o "shushu" para delegar en ShuShu.
  • top_k (int, por defecto 8): número máximo de subespacios conservados.
  • min_score (float o None): puntuación mínima requerida para que un subespacio sea usado.
  • max_order (int o None): orden máximo de subespacios evaluados.
  • metric (str o None, por defecto "mi_synergy"): criterio usado para ordenar subespacios.
  • jaccard_threshold (float, por defecto 0.55): similitud de Jaccard mínima para considerar dos subespacios redundantes.
  • alpha (float, por defecto 0.5): exponente para la puntuación del scout en el peso final.
  • beta (float, por defecto 0.5): exponente para el desempeño de validación cruzada.
  • gamma (float, por defecto 0.5): exponente para la importancia global de características.
  • cv (int o None, por defecto 3): número de folds de CV; 0 o None usa una división holdout.
  • cv_metric_cls (Callable, por defecto balanced_accuracy_score): métrica para CV de clasificación.
  • cv_metric_reg (Callable, por defecto r2_score): métrica para CV de regresión.
  • cv_floor (float o None): descarta subespacios con CV por debajo de este valor.
  • n_jobs (int, por defecto 1): número de trabajos paralelos para CV.
  • random_state (int o None, por defecto 0): semilla RNG.
  • base_2d_rays (int, por defecto 8): número base de rayos para ajustes MBC en cada subespacio.
  • ray_cap (int, por defecto 48): rayos máximos permitidos por subespacio.
  • time_budget_s (float o None): presupuesto de tiempo global opcional para el ajuste.
  • use_importances (bool, por defecto True): incluir importancias de características globales en el peso.
  • importance_sample_size (int o None, por defecto 4096): tamaño de muestra para calcular importancias globales.
  • scout_kwargs (dict o None): parámetros enviados a SubspaceScout.
  • shushu_kwargs (dict o None): parámetros enviados a ShuShu cuando ensemble_method="shushu".
  • mbc_kwargs (dict o None): argumentos adicionales pasados a cada instancia de ModalBoundaryClustering.
  • verbose (int, por defecto 0): nivel de registro.
  • prediction_within_region (bool, por defecto False): evalúa el estimador base solo dentro de cada región durante la predicción.

Métodos

  • fit(X, y) – entrena el ensamble en X e y.
  • predict(X) – predice etiquetas o ids de cluster.
  • predict_proba(X) – probabilidades de clase agregadas a través de subespacios.
  • decision_function(X) – puntuaciones de decisión promediadas entre submodelos.
  • predict_regions(X) – DataFrame con asignaciones de región.
  • plot_pairs(X, y=None, show_histograms=False, **kwargs) – delega en ModalBoundaryClustering.plot_pairs para un submodelo seleccionado, incluyendo histogramas marginales opcionales.
  • plot_pair_3d(X, pair, **kwargs) – superficie 3D para un par de características de un submodelo.