我是这个领域的新手,想读一些代码来做作业 https://github.com/auduno/Kaggle-Acquire-Valued-Shoppers-Challenge/blob/master/generate_submission.py
在这种情况下,程序员将整个列车数据分成两部分,只使用一部分对另一部分进行训练和预测。我对这个和测试部分都感到困惑。你知道吗
test_data = pd.io.parsers.read_csv("./features/test/all_features.csv", sep=" ")
train_data = pd.io.parsers.read_csv("./features/train/all_features.csv", sep=" ")
split = ShuffleSplit(train_data.shape[0], n_iter = 1, test_size=0.10)
for tr, te in split:
train1, train2 = tr, te
另外,在混合部分,我无法理解它将所有预测数据放在一起的过程。pred_train
和pred_test
都是预测的数据,但他用它来再次训练?你能解释一下吗?谢谢。你知道吗
############### BLEND
dtrain2 = xgb.DMatrix( pred_train, label=train2_label.values)
dtest = xgb.DMatrix( pred_test )
print "training blend : xgb trees booster logistic regression, max depth 2"
param = {'bst:max_depth':2, 'bst:eta':0.1, 'silent':1, 'objective':'binary:logistic', 'nthread' : 8, 'eval_metric':'auc' }
num_round = 50
bst = xgb.train( param, dtrain2, num_round)
pred_label_test = bst.predict( dtest )
print "training blend : xgb linear booster logistic regression"
param = {'booster_type':1, 'bst:lambda':0, 'bst:alpha':0, 'bst:lambda_bias':0, 'silent':1, 'objective':'binary:logistic', 'nthread' : 8, 'eval_metric':'auc' }
num_round = 25
bst = xgb.train( param, dtrain2, num_round)
pred_label = bst.predict( dtest )
mean_pred = (pred_label + pred_label_test)/2.
predictions[r] = mean_pred
在机器学习中,一个常见的问题是过度拟合。如果您使用用于训练的同一集合检查分类质量,则算法倾向于针对该特定集合进行训练。他们学习只针对该集合的特定功能。所以通常的做法是将数据分成一组用于训练的数据和一组用于检查分类是否正确的数据。你知道吗
代码的
BLEND
部分使用两种不同的机器学习算法,然后通过取平均值来混合它们的结果。通过这种方法,作者试图最小化回归误差,希望不同的算法会犯不同的错误。你知道吗相关问题 更多 >
编程相关推荐