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)
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