Un clasificador de embolsado es un metaestimador de conjunto que ajusta los clasificadores base cada uno en subconjuntos aleatorios del conjunto de datos original y luego agrega sus predicciones individuales (ya sea por votación o por promedio) para formar una predicción final. Un metaestimador de este tipo se puede utilizar normalmente como una forma de reducir la varianza de un estimador de caja negra (por ejemplo, un árbol de decisión), introduciendo la aleatorización en su procedimiento de construcción y luego convirtiéndolo en un conjunto.
Cada clasificador base se entrena en paralelo con un conjunto de entrenamiento que se genera dibujando aleatoriamente, con reemplazo, N ejemplos (o datos) del conjunto de datos de entrenamiento original, donde N es el tamaño del conjunto de entrenamiento original.. El conjunto de entrenamiento para cada uno de los clasificadores base es independiente entre sí. Muchos de los datos originales pueden repetirse en el conjunto de entrenamiento resultante, mientras que otros pueden omitirse.
El embolsado reduce el sobreajuste (varianza) al promediar o votar, sin embargo, esto conduce a un aumento en el sesgo, que se compensa con la reducción de la varianza.
¿Cómo funciona el embolsado en el conjunto de datos de entrenamiento?
A continuación se muestra cómo funciona el embolsado en un conjunto de datos de entrenamiento imaginario. Dado que Bagging vuelve a muestrear el conjunto de datos de entrenamiento original con el reemplazo, algunas instancias (o datos) pueden estar presentes varias veces mientras que otras se omiten.
Conjunto de datos de entrenamiento original: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Conjunto de entrenamiento remuestreado 1: 2, 3, 3, 5, 6, 1, 8, 10, 9, 1
Conjunto de entrenamiento remuestreado 2: 1, 1, 5, 6, 3, 8, 9, 10, 2, 7
Entrenamiento remuestreado conjunto 3: 1, 5, 8, 9, 2, 10, 9, 7, 5, 4
Algoritmo para el clasificador Bagging:
Classifier generation: Let N be the size of the training set. for each of t iterations: sample N instances with replacement from the original training set. apply the learning algorithm to the sample. store the resulting classifier. Classification: for each of the t classifiers: predict class of instance using classifier. return class that was predicted most often.
Below is the Python implementation of the above algorithm:
from sklearn import model_selection from sklearn.ensemble import BaggingClassifier from sklearn.tree import DecisionTreeClassifier import pandas as pd # load the data url = "/home/debomit/Downloads/wine_data.xlsx" dataframe = pd.read_excel(url) arr = dataframe.values X = arr[:, 1:14] Y = arr[:, 0] seed = 8 kfold = model_selection.KFold(n_splits = 3, random_state = seed) # initialize the base classifier base_cls = DecisionTreeClassifier() # no. of base classifier num_trees = 500 # bagging classifier model = BaggingClassifier(base_estimator = base_cls, n_estimators = num_trees, random_state = seed) results = model_selection.cross_val_score(model, X, Y, cv = kfold) print("accuracy :") print(results.mean())
Producción:
accuracy : 0.8372093023255814
Publicación traducida automáticamente
Artículo escrito por Debomit Dey y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA