- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
使用 sklearn 的 StratifiedKFold 函数,有人可以帮助我理解这里的错误吗?
我的猜测是它与我输入的标签数组有关,我注意到当我打印它们时(本例中的前 16 个)索引从 0 到 15,但是在我上面打印了一个额外的 0没想到。也许我只是一个 python 菜鸟,但这看起来很奇怪。
有人看到这里的错误吗?
文档:http://scikit-learn.org...StratifiedKFold.html
代码:
import nltk
import sklearn
print('The nltk version is {}.'.format(nltk.__version__))
print('The scikit-learn version is {}.'.format(sklearn.__version__))
print type(skew_gendata_targets.values), skew_gendata_targets.values.shape
print skew_gendata_targets.head(16)
skew_sfold10 = cross_validation.StratifiedKFold(skew_gendata_targets.values, n_folds=10, shuffle=True, random_state=20160121)
结果
The nltk version is 3.1.
The scikit-learn version is 0.17.
<type 'numpy.ndarray'> (500L, 1L)
0
0 0
1 0
2 0
3 0
4 0
5 0
6 0
7 0
8 0
9 0
10 0
11 0
12 0
13 0
14 1
15 0
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-373-653b6010b806> in <module>()
8 print skew_gendata_targets.head(16)
9
---> 10 skew_sfold10 = cross_validation.StratifiedKFold(skew_gendata_targets.values, n_folds=10, shuffle=True, random_state=20160121)
11
12 #print '\nSkewed Generated Dataset (', len(skew_gendata_data), ')'
d:\Program Files\Anaconda2\lib\site-packages\sklearn\cross_validation.pyc in __init__(self, y, n_folds, shuffle, random_state)
531 for test_fold_idx, per_label_splits in enumerate(zip(*per_label_cvs)):
532 for label, (_, test_split) in zip(unique_labels, per_label_splits):
--> 533 label_test_folds = test_folds[y == label]
534 # the test split can be too big because we used
535 # KFold(max(c, self.n_folds), self.n_folds) instead of
IndexError: too many indices for array
最佳答案
检查 skew_gendata_targets.values
的形状。您会看到它不是 StratifiedKFold 期望的一维数组(形状 (500,) ),而是 (500,1) 数组。 SKlearn 将它们分开处理,而不是强制它们相同。让我知道是否有帮助
关于python - 分层KFold : IndexError: too many indices for array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35022463/
我将 X 和 y 中的特征分开,然后在使用 k 折交叉验证拆分后预处理我的火车测试数据。之后,我将训练数据拟合到我的随机森林回归模型并计算置信度分数。为什么要在拆分后进行预处理?因为人们告诉我这样做更
我想用 Kfold 检查我的模型的准确性。我希望在每次迭代之间重置模型权重,因此我不会继续计算之前的迭代权重。下面的代码够了吗?或者模型是否存在于 keras 后端循环之外? from keras.m
我今天刚刚构建了我的第一个随机森林分类器,我正在努力提高它的性能。我正在阅读有关交叉验证对于避免数据过度拟合并因此获得更好结果的重要性。我使用 sklearn 实现了 StratifiedKFold,
源起: 1.我要做交叉验证,需要每个训练集和测试集都保持相同的样本分布比例,直接用sklearn提供的KFold并不能满足这个需求。 2.将生成的交叉验证数据集保存成CSV文件,而不是直接用sk
我试图理解 sklearn 的 GridSearchCV 。我对 GridsearchCV 中交叉验证的使用有一些基本问题,然后我该如何进一步使用 GridsearchCV 的建议 假设我声明了一个
嗯,我试图了解如何以及在算法中的哪个点应用 Kfold CV 和 GridSearchCV。另外,如果我理解正确的话,GridSearchCV 用于超参数调整,即参数的哪些值将给出最佳结果,而 Kfo
我正在关注 Kaggle 上的一个内核,主要是我在关注A kernel for Credit Card Fraud Detection . 我到达了需要执行 KFold 以便找到逻辑回归的最佳参数的步
我正在看这个教程:https://www.dataquest.io/mission/74/getting-started-with-kaggle 我到了第 9 部分,进行预测。在名为泰坦尼克号的数据框
在使用 cross_validation.KFold(n, n_folds=folds) 之后,我想访问用于训练和测试单折的索引,而不是遍历所有折。 让我们来看示例代码: from sklearn i
我正在尝试使用卷积神经网络(CNN)进行图像分类。我想使用 KFold 交叉验证进行数据训练和测试。我是新手,我不太明白该怎么做。 我已经在单独的代码中尝试了 KFold 交叉验证和 CNN。而且我不
我想我已经将训练数据分成 5 个 kold,有没有办法让我标记/识别这 5 个分割中的每一个,以便我可以将每个分割发送到我的算法中以计算它们自己的准确性? from sklearn.model_sel
使用 sklearn,当您创建一个新的 KFold 对象并且 shuffle 为真时,它将产生一个不同的、新的随机折叠索引。但是,给定 KFold 对象的每个生成器都会为每个折叠提供相同的索引,即使
我正在尝试对我的数据集运行交叉验证。数据看起来很干净,但是当我尝试运行它时,我的一些数据被 NaN 替换了。我不确定为什么。有人以前见过这个吗? y, X = np.ravel(df_test['la
我有一个只有 1 列的特征框,名为 X,其中包含浮点值和一个带有二进制类(1 或 0)的标签向量 y。 当我执行 X.isnull().sum() 时,它输出 0 并且标签向量也是如此。但是当我尝试像
我正在关注 Jeff Heaton 深度学习类(class) Course link 并继续进行练习。在第一个编程作业的问题 5 中,在最后一个任务中,他要求将 KFold(5) 交叉验证的输入数据的
我在具有非连续行索引的 df(数据框)上使用 python 中 sklearn 包中的 kfold 函数。 这是代码: kFold = KFold(n_splits=10, shuffle=True,
似乎 KFold 每次迭代对象时都会生成相同的值,而 Shuffle Split 每次都会生成不同的索引。这个对吗?如果是这样,一个比另一个有什么用途? cv = cross_validation.K
这个问题在这里已经有了答案: difference between StratifiedKFold and StratifiedShuffleSplit in sklearn (3 个回答) 10 个
我一直在使用泰坦尼克号数据集训练随机森林模型。许多文章指出我们不需要对 RF 分类器进行交叉验证,但很少有人说可以使用交叉验证。我尝试了这两种方法,但我不知道如何得出分数,并且我怀疑如果在没有交叉验证
我有一组数据,我想用它们来训练神经网络,尽管我相信我的问题涉及任何类型的机器学习。 我的数据分为两类,但是第一类的示例比第二类的示例多得多。在我继续根据我的数据训练神经网络之前,我打算将数据分成 3
我是一名优秀的程序员,十分优秀!