小编kev*_*inH的帖子

GridSearchCV是否执行交叉验证?

我目前正在研究一个问题,该问题比较了同一数据集上三种不同的机器学习算法性能.我将数据集划分为70/30个训练/测试集,然后使用GridSearchCV和网格搜索每个算法的最佳参数X_train, y_train.

第一个问题,我想在训练集上进行网格搜索还是假设在整个数据集上?

第二个问题,我知道GridSearchCV在其实现中使用了K-fold,这是否意味着如果我X_train, y_train在GridSearchCV中比较的所有三种算法都使用了相同的交叉验证?

任何答案都将不胜感激,谢谢.

python machine-learning scikit-learn cross-validation grid-search

16
推荐指数
2
解决办法
3783
查看次数

TypeError:'KFold'对象不可迭代

我正在关注Kaggle的一个内核,主要是,我正在关注信用卡欺诈检测的内核.

我到达了需要执行KFold的步骤,以便找到Logistic回归的最佳参数.

以下代码显示在内核本身,但由于某种原因(可能是旧版本的scikit-learn,给我一些错误).

def printing_Kfold_scores(x_train_data,y_train_data):
    fold = KFold(len(y_train_data),5,shuffle=False) 

    # Different C parameters
    c_param_range = [0.01,0.1,1,10,100]

    results_table = pd.DataFrame(index = range(len(c_param_range),2), columns = ['C_parameter','Mean recall score'])
    results_table['C_parameter'] = c_param_range

    # the k-fold will give 2 lists: train_indices = indices[0], test_indices = indices[1]
    j = 0
    for c_param in c_param_range:
        print('-------------------------------------------')
        print('C parameter: ', c_param)
        print('-------------------------------------------')
        print('')

        recall_accs = []
        for iteration, indices in enumerate(fold,start=1):

            # Call the logistic regression model with a certain C parameter
            lr = …
Run Code Online (Sandbox Code Playgroud)

python machine-learning scikit-learn cross-validation

8
推荐指数
2
解决办法
6988
查看次数