Я работаю над проблемой классификации и имею несколько подходящих классификаторов sklearn, например
svm = SVC().fit(X_train, y_train)
dt = tree.DecisionTreeClassifier(criterion='entropy',max_depth=4000).fit(X_train, y_train)
...
for i in range(num_of_models):
m2 = create_model_for_ensemble(dummy_y_train.shape[1])
m2.fit(X_train_array[i], dummy_y_train, epochs=150, batch_size=100, verbose=0)
models.append(m2)
# m2 is a customized Neural Network Classifier, that has a custom predict function (m2.predict_classes)
# The above code is just an example, the point is - m2 is also a classifier.
... etc.
Изначально все они получают одни и те же входные данные и все имеют одинаковый тип выходных данных, все они могут предсказать метку для строки моих данных:
label attribute_1 attribute_2 ... attribute_79 1 ? 0.199574 0.203156 ... 0.046898 2 ? 0.201461 0.203837 ... 0.075002 3 ? 0.209044 0.214268 ... 0.143278 ... ... ... ... ... ...
Где label — целое число от 0 до 29.
Моя цель — создать классификатор AdaBoost, включающий все вышеперечисленное (svm, dt, m2), но мне не удалось найти пример в Google; каждый пример просто говорит о нескольких разных деревьях решений или нескольких разных (но одного и того же типа) классификаторах.
Я знаю, что это можно сделать, для каждой строки (или точки данных) моего фрейма данных необходимо скорректировать веса каждого классификатора, и это не требует, чтобы все они были классификаторами одного типа - им всем просто нужно иметь метод .predict.
Итак, как мне это сделать? Может ли кто-нибудь привести мне пример?