Я работаю над проблемой классификации, и у меня есть несколько встроенных классификаторов 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
... ... ... ... ... ...
Где метка представляет собой целое число в диапазоне от 0 до 29.
Моя цель - создать классификатор AdaBoost, который включает в себя все вышеперечисленное (svm, dt, m2), но я не смог найти пример в Google; в каждом примере просто говорится о нескольких разных деревьях решений или о нескольких разных (но одного и того же типа) классификаторах.
Я знаю, что это может быть сделано, для каждой строки (или точки данных) моего информационного кадра, веса каждого классификатора должны быть скорректированы, и это не требует, чтобы все они были одного и того же типа классификатора - они все просто должны иметь метод .predict.
Итак, как мне это сделать? Кто-нибудь может привести пример?