全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 python论坛
1201 1
2018-05-03
在做模型融合的时候提示feature_names mismatch 实在是找不出哪里出错了请大神帮忙看看

from sklearn.base import clone
def stacking(base_learners, meta_learner, X, y, generator):
  print("Fitting final base learners...", end="")
  train_base_learners(base_learners, X, y, verbose=False)
  print("done")
  print("Generating cross-validated predictions...")
  cv_preds, cv_y = [], []
  for i, (train_idx, test_idx) in enumerate(generator.split(X)):
  fold_xtrain, fold_ytrain = X[train_idx, :], y[train_idx]
  fold_xtest, fold_ytest = X[test_idx, :], y[test_idx]
  fold_base_learners = {name: clone(model)
          for name, model in base_learners.items()}
  train_base_learners(
    fold_base_learners, fold_xtrain, fold_ytrain, verbose=False)
  fold_P_base = predict_base_learners(
    fold_base_learners, fold_xtest, verbose=False)
  cv_preds.append(fold_P_base)
  cv_y.append(fold_ytest)
  print("Fold %i done" % (i + 1))
  print("CV-predictions done")
  cv_preds = np.vstack(cv_preds)
  cv_y = np.hstack(cv_y)
  print("Fitting meta learner...", end="")
  meta_learner.fit(cv_preds, cv_y)
  print("done")
  return base_learners, meta_learner
from sklearn.model_selection import KFold
cv_base_learners, cv_meta_learner = stacking(
  get_models(), clone(meta_learner), xtrain.values, ytrain.values, KFold(2))
P_pred, p = ensemble_predict(cv_base_learners, cv_meta_learner, xtest, verbose=False)
print("\nEnsemble ROC-AUC score: %.3f" % roc_auc_score(ytest, p))
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2018-6-8 13:45:21
做stacking融合真的会有提升吗
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群