sklearn.ensemble
.VotingClassifier¶
- class sklearn.ensemble.VotingClassifier¶
Clasificador de voto suave/regla de la mayoría para estimadores no ajustados.
Más información en el Manual de usuario.
Nuevo en la versión 0.17.
- Parámetros
- estimatorslista de tuplas (str, estimator)
Al invocar el método
fit
en elVotingClassifier
se ajustarán clones de esos estimadores originales que se almacenarán en el atributo de la claseself.estimators_
. Un estimador puede establecerse en'drop'
utilizandoset_params
.Distinto en la versión 0.21:
'drop'
es aceptado. El uso de None quedó obsoleto en la versión 0.22 y se eliminó el soporte en la 0.24.- voting{“hard”, “soft”}, default=”hard”
Si es “hard”, utiliza las etiquetas de clase predichas para la votación por regla de la mayoría. Si es “soft”, predice la etiqueta de clase basándose en el argmax de las sumas de las probabilidades predichas, lo que se recomienda para un conjunto (ensemble) de clasificadores bien calibrados.
- weightsarray-like de forma (n_classifiers,), default=None
Secuencia de ponderaciones (
float
oint
) para ponderar las ocurrencias de las etiquetas de clase predichas (votaciónhard
) o las probabilidades de clase antes de promediar (votaciónsoft
). Utiliza ponderaciones uniformes si esNone
.- n_jobsint, default=None
El número de trabajos a ejecutar en paralelo para
fit
.None
significa 1 a menos que sea en un contextojoblib.parallel_backend
.-1
significa usar todos los procesadores. Ver Glosario para más detalles.Nuevo en la versión 0.18.
- flatten_transformbool, default=True
Afecta a la forma de la salida de la transformación sólo cuando voting=”soft”. Si voting=”soft” y flatten_transform=True, el método de transformación devuelve una matriz con forma (n_samples, n_classifiers * n_classes). Si flatten_transform=False, devuelve (n_classifiers, n_samples, n_classes).
- verbosebool, default=False
Si es True, el tiempo transcurrido durante el ajuste se imprimirá a medida que se complete.
Nuevo en la versión 0.23.
- Atributos
- estimators_lista de clasificadores
La colección de subestimadores ajustados tal y como se definen en
estimators
que no son “drop”.- named_estimators_
Bunch
Atributo para acceder a cualquier subestimador ajustado por su nombre.
Nuevo en la versión 0.20.
- classes_array-like de forma (n_predictions,)
Las etiquetas de las clases.
Ver también
VotingRegressor
Regresor de predicción de voto.
Ejemplos
>>> import numpy as np >>> from sklearn.linear_model import LogisticRegression >>> from sklearn.naive_bayes import GaussianNB >>> from sklearn.ensemble import RandomForestClassifier, VotingClassifier >>> clf1 = LogisticRegression(multi_class='multinomial', random_state=1) >>> clf2 = RandomForestClassifier(n_estimators=50, random_state=1) >>> clf3 = GaussianNB() >>> X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]]) >>> y = np.array([1, 1, 1, 2, 2, 2]) >>> eclf1 = VotingClassifier(estimators=[ ... ('lr', clf1), ('rf', clf2), ('gnb', clf3)], voting='hard') >>> eclf1 = eclf1.fit(X, y) >>> print(eclf1.predict(X)) [1 1 1 2 2 2] >>> np.array_equal(eclf1.named_estimators_.lr.predict(X), ... eclf1.named_estimators_['lr'].predict(X)) True >>> eclf2 = VotingClassifier(estimators=[ ... ('lr', clf1), ('rf', clf2), ('gnb', clf3)], ... voting='soft') >>> eclf2 = eclf2.fit(X, y) >>> print(eclf2.predict(X)) [1 1 1 2 2 2] >>> eclf3 = VotingClassifier(estimators=[ ... ('lr', clf1), ('rf', clf2), ('gnb', clf3)], ... voting='soft', weights=[2,1,1], ... flatten_transform=True) >>> eclf3 = eclf3.fit(X, y) >>> print(eclf3.predict(X)) [1 1 1 2 2 2] >>> print(eclf3.transform(X).shape) (6, 6)
Métodos
Ajusta los estimadores.
Devuelve las etiquetas de clase o probabilidades para cada estimador.
Obtiene los parámetros de un estimador del conjunto (ensemble).
Predice etiquetas de clase para X.
Devuelve la precisión media en los datos de prueba y las etiquetas dados.
Obtiene los parámetros de un estimador del conjunto (ensemble).
Devuelve las etiquetas de clase o las probabilidades de X para cada estimador.
- fit()¶
Ajusta los estimadores.
- Parámetros
- X{array-like, sparse matrix} de forma (n_samples, n_features)
Vectores de entrenamiento, donde n_samples es el número de muestras y n_features es el número de características.
- yarray-like de forma (n_samples,)
Valores objetivo.
- sample_weightarray-like de forma (n_samples,), default=None
Ponderaciones de la muestra. Si es None, entonces las muestras están igualmente ponderadas. Ten en cuenta que esto sólo es soportado si todos los estimadores subyacentes soportan ponderaciones de muestra.
Nuevo en la versión 0.18.
- Devuelve
- selfobject
- fit_transform()¶
Devuelve las etiquetas de clase o probabilidades para cada estimador.
Devuelve las predicciones de X para cada estimador.
- Parámetros
- X{array-like, sparse matrix, dataframe} de forma (n_samples, n_features)
Muestras de entrada
- yndarray de forma (n_classes,), default=None
Valores objetivo (None para transformaciones no supervisadas).
- **fit_paramsdict
Parámetros de ajuste adicionales.
- Devuelve
- X_newarreglo ndarray de forma (n_samples, n_features_new)
Arreglo transformado.
- get_params()¶
Obtiene los parámetros de un estimador del conjunto (ensemble).
Devuelve los parámetros dados en el constructor así como los estimadores contenidos en el parámetro
estimators
.- Parámetros
- deepbool, default=True
Al establecerlo como True se obtienen los distintos estimadores y los parámetros de los mismos.
- predict()¶
Predice etiquetas de clase para X.
- Parámetros
- X{array-like, sparse matrix} de forma (n_samples, n_features)
Las muestras de entrada.
- Devuelve
- majarray-like de forma (n_samples,)
Etiquetas de clase predichas.
- property predict_proba¶
Calcula las probabilidades de los posibles resultados de las muestras en X.
- Parámetros
- X{array-like, sparse matrix} de forma (n_samples, n_features)
Las muestras de entrada.
- Devuelve
- avgarray-like de forma (n_samples, n_classes)
Probabilidad media ponderada de cada clase por muestra.
- score()¶
Devuelve la precisión media en los datos de prueba y las etiquetas dados.
En la clasificación multietiqueta, se trata de la precisión del subconjunto, que es una métrica rigurosa, ya que se requiere para cada muestra que cada conjunto de etiquetas sea predicho correctamente.
- Parámetros
- Xarray-like de forma (n_samples, n_features)
Muestras de prueba.
- yarray-like de forma (n_samples,) o (n_samples, n_outputs)
Etiquetas True para
X
.- sample_weightarray-like de forma (n_samples,), default=None
Ponderaciones de la muestra.
- Devuelve
- scorefloat
Precisión media de
self.predict(X)
con respecto ay
.
- set_params()¶
Obtiene los parámetros de un estimador del conjunto (ensemble).
Las claves de los parámetros válidos se pueden listar con
get_params()
. Ten en cuenta que puede establecer directamente los parámetros de los estimadores contenidos enestimators
.- Parámetros
- **paramsargumentos de palabras clave
Parámetros específicos utilizando, por ejemplo,
set_params(parameter_name=new_value)
. Además de establecer los parámetros del estimador, también se puede establecer el estimador individual de los estimadores, o se puede eliminar estableciéndolos endrop
.
- transform()¶
Devuelve las etiquetas de clase o las probabilidades de X para cada estimador.
- Parámetros
- X{array-like, sparse matrix} de forma (n_samples, n_features)
Vectores de entrenamiento, donde n_samples es el número de muestras y n_features es el número de características.
- Devuelve
- probabilidades_o_etiquetas
- Si
voting='soft'
yflatten_transform=True
: devuelve ndarray de forma (n_classifiers, n_samples * n_classes), siendo las probabilidades de clase calculadas por cada clasificador.
- Si
voting='soft' y `flatten_transform=False
: ndarray de forma (n_classifiers, n_samples, n_classes)
- Si
voting='hard'
: ndarray de forma (n_samples, n_classifiers), siendo las etiquetas de clase predichas por cada clasificador.
- Si