Monday, July 25, 2022

AdaBoost algorithm and learn AdaBoost model building in Python

 Ada-boost или Adaptive Boosting — это один из классификаторов повышения ансамбля, предложенный в 1996 году. Он объединяет несколько классификаторов для повышения точности классификаторов. AdaBoost — это итеративный ансамблевый метод. Классификатор AdaBoost создает сильный классификатор, объединяя несколько плохо работающих классификаторов, так что вы получите сильный классификатор с высокой точностью. Основная концепция Adaboost заключается в установке весов классификаторов и обучении выборки данных на каждой итерации, чтобы обеспечить точные прогнозы необычных наблюдений. Любой алгоритм машинного обучения может использоваться в качестве базового классификатора, если он принимает веса в обучающем наборе. Adaboost должен соответствовать двум условиям:

Классификатор должен обучаться в интерактивном режиме на различных взвешенных обучающих примерах.

На каждой итерации он пытается обеспечить идеальное соответствие этим примерам, сводя к минимуму ошибку обучения.

============================================

Как работает алгоритм AdaBoost?

Первоначально Adaboost случайным образом выбирает обучающую подгруппу.

Он итеративно обучает модель машинного обучения AdaBoost, выбирая обучающий набор на основе точного прогноза последнего обучения.

Он присваивает более высокий вес неправильно классифицированным наблюдениям, чтобы в следующей итерации эти наблюдения получили высокую вероятность классификации.

Кроме того, он присваивает вес обученному классификатору на каждой итерации в соответствии с точностью классификатора. Более точный классификатор получит больший вес.

Этот процесс повторяется до тех пор, пока полные обучающие данные не будут соответствовать без какой-либо ошибки или пока не будет достигнуто указанное максимальное количество оценок.

Чтобы классифицировать, проведите «голосование» по всем созданным вами алгоритмам обучения.












(.env) boris@boris-All-Series:~/ADABOOST$ cat  AdaBoost1.py

from sklearn.ensemble import AdaBoostClassifier

from sklearn import datasets

from sklearn.model_selection import train_test_split

from sklearn import metrics


# Load data

iris = datasets.load_iris()

X = iris.data

y = iris.target

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)

abc = AdaBoostClassifier(n_estimators=50, learning_rate=1)


# Train Adaboost Classifer

model = abc.fit(X_train, y_train)

#Predict the response for test dataset

y_pred = model.predict(X_test)

print("Accuracy:",metrics.accuracy_score(y_test, y_pred)) 


# Import Support Vector Classifier

from sklearn.svm import SVC

from sklearn import metrics

svc=SVC(probability=True, kernel='linear')

abc =AdaBoostClassifier(n_estimators=50, base_estimator=svc,learning_rate=1)

model = abc.fit(X_train, y_train)


#Predict the response for test dataset

y_pred = model.predict(X_test)

# Model Accuracy, how often is the classifier correct?

print("Accuracy with base_est = SVC:",metrics.accuracy_score(y_test, y_pred))


(.env) boris@boris-All-Series:~/ADABOOST$ python3 AdaBoost1.py

Accuracy: 0.9333333333333333

Accuracy with base_est = SVC: 0.9555555555555556

(.env) boris@boris-All-Series:~/ADABOOST$ python3 AdaBoost1.py

Accuracy: 0.9333333333333333

Accuracy with base_est = SVC: 0.9555555555555556

(.env) boris@boris-All-Series:~/ADABOOST$ python3 AdaBoost1.py

Accuracy: 0.9111111111111111

Accuracy with base_est = SVC: 0.9777777777777777



























No comments:

Post a Comment