本次代写是一个数据挖掘机器学习算法相关的assignment
Question 1
The following code shows an incorrect implementation of Adaboost algorithm. Please follow its
overall structure but modify it to make a correct implementation. You do not need to write code for
weak_classifier_train and weak_classifier_prediction, but you need to add more input and output
arguments of weak_classifier_train to create a correct implementa!on. Please clearly define the
variables you added.
def Adaboost_train(train_data, train_label, T):
# train_data: N x d matrix
# train_label: N x 1 vector
# T: the number of weak classifiers in the ensemble
ensemble_models = []
for t in range(0,T):
model_param_t = weak_classifier_train(train_data, train_label) # model_param_t returns the
model parameters of the learned weak classifier
# defini!on of model
ensemble_models.append(model_param_t)
return ensemble_models
def Adaboost_test(test_data, ensemble_models):
# test_data: 1 x d
decision_ensemble = 0
for k in range(1,len(ensemble_models)):
predic!on = weak_classifier_predic!on(test_data) # predic!on returns 1 or -1 predic!on
from the weak classifier
decision_ensemble = decision_ensemble + predic!on
if decision_ensemble > 0:
predic!on = 1
else:
predic!on = -1
return prediction
Question 3
Assume that the weak learners are a finite set of decision stumps, Adaboost cannot achieve zero
training error if the training data is not linearly separable.
True
False