What is AdaBoost?
AdaBoost, short for Adaptive Boosting, is a popular ensemble learning algorithm that combines the outputs of multiple weak classifiers to produce a strong classifier. It works by iteratively training weak classifiers on the data, with each classifier focusing on the instances that were misclassified by the previous classifier. The final strong classifier is a weighted combination of the weak classifiers.
How does AdaBoost work?
The main steps of the AdaBoost algorithm are:
- Assign equal weights to each training instance.
- Train a weak classifier on the weighted data.
- Calculate the classifier’s error rate and update its weight in the ensemble.
- Update the training instance weights based on the classifier’s performance, increasing the weights of misclassified instances.
- Repeat steps 2-4 for a specified number of iterations or until a stopping criterion is met.
- Combine the weak classifiers using their weights to form the final strong classifier.
Example of AdaBoost in Python using scikit-learn
from sklearn.ensemble import AdaBoostClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# Load the iris dataset
iris = load_iris()
X, y = iris.data, iris.target
# Split the dataset into train and test sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# Create and train the AdaBoost classifier
ada_clf = AdaBoostClassifier(n_estimators=50, learning_rate=1, random_state=42)
ada_clf.fit(X_train, y_train)
# Make predictions and evaluate the classifier
y_pred = ada_clf.predict(X_test)
print("Accuracy:", accuracy_score(y_test, y_pred))