【问题标题】:GridsearchCV to implement K fold on decision tree not workingGridsearchCV 在决策树上实现 K 折叠不起作用
【发布时间】:2021-06-24 13:25:45
【问题描述】:

所以我有我使用 sklearn train_test_split 获得的训练集,我现在想使用 GridSearcCV 创建 10 个拆分,并找到从 2 到 10 的每个 d 值的 auc 分数。然后我想找到给出的 d 值最佳auc分数

这是我的尝试,但对于预测功能,我有比所需更多的功能

min_samples_list = list(range(2, 10))
tree_para = [{'min_samples_leaf': min_samples_list}]
cv = KFold(n_splits=10)

decisionTreeClassifier = DecisionTreeClassifier(min_samples_leaf=k,random_state=0)
clf = GridSearchCV(decisionTreeClassifier, tree_para, cv=10)


fold_accuracy = []
for train_index, valid_index in cv.split(X_train):
    train_x,test_x = X_train[train_index],X_train[valid_index]
    train_y,test_y= y_train[train_index], y_train[valid_index]

    model = clf.fit(train_x,train_y)
    predicted_probs = model.predict([train_y])
    fold_accuracy.append(sklearn.metrics.accuracy_score(predicted_probs, test_y)) 
    best_parameters = clf.best_params_
    print(best_parameters)

print("Accuracy per fold: ", fold_accuracy, "\n")
print("Average accuracy: ", sum(fold_accuracy)/len(fold_accuracy))

【问题讨论】:

    标签: python scikit-learn grid-search


    【解决方案1】:

    在 scikit-learn 中,所有模型的 predict() 方法使用输入值 X 而不是目标值 y (https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html#sklearn.model_selection.GridSearchCV.predict)。这就是为什么预测中的特征数量有问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-19
      • 2018-11-17
      • 2018-08-07
      • 2022-07-19
      • 2015-09-12
      • 2012-10-05
      • 2011-03-25
      相关资源
      最近更新 更多