gpt4 book ai didi

Pandas + Scikit 学习 : issue with stratified k-fold

转载 作者:行者123 更新时间:2023-12-01 13:51:35 26 4
gpt4 key购买 nike

当与数据框一起使用时,StratifiedKFold from scikit-learn 返回从 0 到 n 的索引列表,而不是来自 DF 索引的值列表。有没有办法改变它?

前任 :

df = pd.DataFrame()
df["test"] = (0, 1, 2, 3, 4, 5, 6)
df.index = ('a', 'b', 'c', 'd', 'e', 'f', 'g')
for i, (train, test) in enumerate(StratifiedKFold(df.index)):
print i, (train, test)

给出:
0 (array([], dtype=64), array([0,1,2,3,4,5,6])
1 (array([0,1,2,3,4,5,6]), array([], dtype=64))
2 (array([0,1,2,3,4,5,6]), array([], dtype=64))

我希望返回 df 的索引,而不是 df 的长度范围...

最佳答案

你得到的数字只是 df.index 的索引选择者 StratifiedKFold .

要将其改回 DataFrame 的索引,只需

for i, (train, test) in enumerate(StratifiedKFold(df.index)):
print i, (df.index[train], df.index[test])

这使
0 (Index([], dtype='object'), Index([u'a', u'b', u'c', u'd', u'e', u'f', u'g'], dtype='object'))
1 (Index([u'a', u'b', u'c', u'd', u'e', u'f', u'g'], dtype='object'), Index([], dtype='object'))
2 (Index([u'a', u'b', u'c', u'd', u'e', u'f', u'g'], dtype='object'), Index([], dtype='object'))

关于Pandas + Scikit 学习 : issue with stratified k-fold,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31240625/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com