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 esNone.ensemble_method(str, por defecto"modal_scout"):"modal_scout"para usar el ensamble interno de subespacios o"shushu"para delegar enShuShu.top_k(int, por defecto8): número máximo de subespacios conservados.min_score(floatoNone): puntuación mínima requerida para que un subespacio sea usado.max_order(intoNone): orden máximo de subespacios evaluados.metric(stroNone, por defecto"mi_synergy"): criterio usado para ordenar subespacios.jaccard_threshold(float, por defecto0.55): similitud de Jaccard mínima para considerar dos subespacios redundantes.alpha(float, por defecto0.5): exponente para la puntuación del scout en el peso final.beta(float, por defecto0.5): exponente para el desempeño de validación cruzada.gamma(float, por defecto0.5): exponente para la importancia global de características.cv(intoNone, por defecto3): número de folds de CV;0oNoneusa una división holdout.cv_metric_cls(Callable, por defectobalanced_accuracy_score): métrica para CV de clasificación.cv_metric_reg(Callable, por defector2_score): métrica para CV de regresión.cv_floor(floatoNone): descarta subespacios con CV por debajo de este valor.n_jobs(int, por defecto1): número de trabajos paralelos para CV.random_state(intoNone, por defecto0): semilla RNG.base_2d_rays(int, por defecto8): número base de rayos para ajustes MBC en cada subespacio.ray_cap(int, por defecto48): rayos máximos permitidos por subespacio.time_budget_s(floatoNone): presupuesto de tiempo global opcional para el ajuste.use_importances(bool, por defectoTrue): incluir importancias de características globales en el peso.importance_sample_size(intoNone, por defecto4096): tamaño de muestra para calcular importancias globales.scout_kwargs(dictoNone): parámetros enviados aSubspaceScout.shushu_kwargs(dictoNone): parámetros enviados aShuShucuandoensemble_method="shushu".mbc_kwargs(dictoNone): argumentos adicionales pasados a cada instancia deModalBoundaryClustering.verbose(int, por defecto0): nivel de registro.prediction_within_region(bool, por defectoFalse): evalúa el estimador base solo dentro de cada región durante la predicción.
Métodos
fit(X, y)– entrena el ensamble enXey.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 enModalBoundaryClustering.plot_pairspara un submodelo seleccionado, incluyendo histogramas marginales opcionales.plot_pair_3d(X, pair, **kwargs)– superficie 3D para un par de características de un submodelo.