【发布时间】:2022-11-08 07:39:12
【问题描述】:
我正在尝试进行交叉验证,但我想删除训练集中的异常值(例如仅低于 0.95 年),同时保持测试集完整。我在用:
cv_scores = cross_validate(reg, X=X, y=y_tr, cv=GroupKFold(n_splits=3), groups=groups, scoring=scoring, return_train_score=True, verbose=0)
对于交叉验证(来自 sklearn.model_selection 的函数),但是我不知道如何进行必要的更改。
样本:
date id x1 x2 y
1 a 10 15 100
2 a 20 30 150
3 a 12 10 130
2 b 15 13 1000
3 b 16 19 90
1 c 18 12 700
2 c 20 15 60
例如:其中一个培训文件夹将包含 id a 和 b。在这种情况下,我想删除异常值(日期 2 id b),同时将异常值保留在测试文件夹中(日期 1 id c)。同样,在 a 和 c 培训文件夹中,我应该删除 (date 1 id c),同时保留 (date 2 id b)。
【问题讨论】:
-
请提供其他信息,例如 - 示例数据集以及要过滤离群值的列。
标签: python pandas cross-validation sklearn-pandas