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 el VotingClassifier se ajustarán clones de esos estimadores originales que se almacenarán en el atributo de la clase self.estimators_. Un estimador puede establecerse en 'drop' utilizando set_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 o int) para ponderar las ocurrencias de las etiquetas de clase predichas (votación hard) o las probabilidades de clase antes de promediar (votación soft). Utiliza ponderaciones uniformes si es None.

n_jobsint, default=None

El número de trabajos a ejecutar en paralelo para fit. None significa 1 a menos que sea en un contexto joblib.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

fit

Ajusta los estimadores.

fit_transform

Devuelve las etiquetas de clase o probabilidades para cada estimador.

get_params

Obtiene los parámetros de un estimador del conjunto (ensemble).

predict

Predice etiquetas de clase para X.

score

Devuelve la precisión media en los datos de prueba y las etiquetas dados.

set_params

Obtiene los parámetros de un estimador del conjunto (ensemble).

transform

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 a y.

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 en estimators.

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 en drop.

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' y flatten_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.