我正在實施金融機器學習的進展,以獲得 Python 交叉驗證的分數。我的代碼是下一個:cv = PurgedKFold(n_splits = 10, samples_info_sets = pd.Series(train['close_datetime'].values, index = train['opendatetime'].values), pct_embargo = 0.02)scores = ml_cross_val_score(classifier = classifier, X = X, y = y, cv_gen = cv)問題是,當我運行最后一個命令行時,出現下一個錯誤:IndexError: .iloc requires numeric indexers, got [array([False, False, False, ..., False, False, False]) array([False, False, False, ..., False, False, False]) array([False, False, False, ..., False, False, False]) ... array([False, False, False, ..., True, False, False]) 8428 array([False, False, False, ..., False, False, True])]我的代碼出了問題,也許我配置了錯誤的 X 和 y 數據幀格式以供交叉驗證器檢查。誰能幫助我理解為什么會出現該錯誤?
1 回答

慕的地6264312
TA貢獻1817條經驗 獲得超6個贊
發生此錯誤的原因是 Purged K Fold 需要索引值是唯一的。如果有兩個索引('opendatetime')相等,則在分割數據的不同分區時,會出現錯誤。
解決方案是檢查是否存在具有相同索引的行。如果您將這些相同出現次數的索引值更改為不同,那么它就有效!
添加回答
舉報
0/150
提交
取消