﻿ A Bagging classifier is an ensemble meta-estimator that fits base classifiers each on random subsets of the original dataset and then aggregate their individual predictions (either by voting or by averaging) to form a final prediction. Such a meta-estimator can typically be used as a way to reduce the variance of a black-box estimator (e.g., a decision tree), by introducing randomization into its construction procedure and then making an ensemble out of it.

Each base classifier is trained in parallel with a training set which is generated by randomly drawing, with replacement, N examples(or data) from the original training dataset – where N is the size of the original training set. Training set for each of the base classifiers is independent of each other. Many of the original data may be repeated in the resulting training set while others may be left out.

Bagging reduces overfitting (variance) by averaging or voting, however, this leads to an increase in bias, which is compensated by the reduction in variance though.

How Bagging works on training dataset ?
How bagging works on an imaginary training dataset is shown below. Since Bagging resamples the original training dataset with replacement, some instance(or data) may be present multiple times while others are left out.

Original training dataset: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

Resampled training set 1: 2, 3, 3, 5, 6, 1, 8, 10, 9, 1
Resampled training set 2: 1, 1, 5, 6, 3, 8, 9, 10, 2, 7
Resampled training set 3: 1, 5, 8, 9, 2, 10, 9, 7, 5, 4

Algorithm for the Bagging classifier:

```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())` ## Related Posts #### What is machine learning in simple words?

Learning means the acquisition of knowledge or skills through study or experience. Based on this, we can define machine learning (ML) as follows: It may be defined as the field of computer science, more specifically an application of artificial intelligence, which provides computer systems the ability to learn with data and improve from experience without being explicitly programmed. Basically, the main focus of machine learning is to allow the computers learn automatically without human intervention. Machine learning is a subfield of artificial intelligence, which is broadly defined as the capability of a machine to imitate intelligent human behavior. Artificial intelligence systems are used to perform complex tasks in a way that is similar to how humans solve problems.
27-jan-2021 /10 /133 #### What is sequence data in machine learning?

Sequence Modeling is the task of predicting what word/letter comes next. Unlike the FNN and CNN, in sequence modeling, the current output is dependent on the previous input and the length of the input is not fixed. In this section, we will discuss some of the practical applications of sequence modeling.
3-jan-2022 /10 /133 #### What is descriptive statistics in machine learning?

DESCRIPTIVE STATISTICS : Descriptive Statistics is a statistics or a measure that describes the data. INFERENTIAL STATISTICS : Using a random sample of data taken from a population to describe and make inferences about the population is called Inferential Statistics.
3-jan-2022 /10 /133
﻿
﻿