“indices 参数已被弃用,将在 0.17 版本中移除(默认视为 True)”是什么意思?

我刚开始学习 Python,如果这个问题/错误很基础,请原谅我。

我正在做 Kaggle 的生物反应教程。我遇到了这个错误

C:\Anaconda\lib\site-packages\sklearn\cross_validation.py:65: DeprecationWarning: The indices parameter is deprecated and will be removed (assumed True) in 0.17 stacklevel=1) 结果: 0.458614231133

有人知道这是什么意思吗?我已经在谷歌上搜索了很多次,但找不到答案。

我运行的脚本是:

from sklearn.ensemble import RandomForestClassifierfrom sklearn import cross_validationimport loglossimport numpy as npdef main():    #读取数据,并解析为训练和目标集    dataset = np.genfromtxt(open('train.csv','r'), delimiter=',', dtype='f8')[1:]    target = np.array([x[0] for x in dataset])    train = np.array([x[1:] for x in dataset])    #在这种情况下我们将使用随机森林,但这可以是任何分类器    cfr = RandomForestClassifier(n_estimators=100)    #简单的 K-Fold 交叉验证。5 折。    #(注意:在旧版本的 scikit-learn 中,"n_folds" 参数被命名为 "k"。)    cv = cross_validation.KFold(len(train), n_folds=5, indices=False)    #遍历训练和测试的交叉验证段,并    #在每个段上运行分类器,将结果聚合到一个列表中    results = []    for traincv, testcv in cv:        probas = cfr.fit(train[traincv], target[traincv]).predict_proba(train[testcv])        results.append( logloss.llfun(target[testcv], [x[1] for x in probas]) )    #打印出交叉验证结果的平均值    print "结果: " + str( np.array(results).mean() )if __name__=="__main__":    main()

我认为它调用的是这个:

__author__ = 'nickd'import scipy as spdef llfun(act, pred):    epsilon = 1e-15    pred = sp.maximum(epsilon, pred)    pred = sp.minimum(1-epsilon, pred)    ll = sum(act*sp.log(pred) + sp.subtract(1,act)*sp.log(sp.subtract(1,pred)))    ll = ll * -1.0/len(act)    return ll

再次,如果这是基础的东西,真的很抱歉。我确实以前从未做过这个。


回答:

这意味着当你使用 indices 关键字参数调用 cross_validation.KFold 时,未来版本将不再支持它:

cv = cross_validation.KFold(len(train), n_folds=5, indices=False)

根据错误消息,在 0.17 版本中,你将得到 indices=True 的效果。消息指出他们将移除这个关键字参数,很可能他们不会忽略未使用的关键字参数,因此,如果你继续尝试传入 indices,在 0.17 版本中可能会得到 TypeError 异常。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注