python - 如何使用 scikit-learn 对约束进行交叉验证

标签 python scikit-learn

输入:

  • 我有一个图像数组X,其中每一行都是代表一个人的示例。
  • 另一个数组 y 用于它们的标签,其中标签是 1 到 7 之间的整数。
  • 最后一个 ids 数组,其中 ids[i] 代表 X[i] 中第 i 个人的 ID。 (同一个人有相同的ID,同一个人可能有不同的图像。)

是否可以划分Xy 以便同一个人不会同时进入测试和训练集?

我认为我需要使用 sklearn.cross_validation.train_test_split .有人可以解释“分层”的作用吗?这是做我想做的事情的正确方法吗?

最佳答案

Stratified sampling意味着 sklearn 将尝试将您的训练和测试拆分中的类别比率与总体数据的比率相匹配。

您的 y 标签中包含哪些信息? 听起来你需要类似 LabelKFold 的东西或 LabelShuffleSplit其中 label 将是您的情况下的 ids

关于python - 如何使用 scikit-learn 对约束进行交叉验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34020257/

相关文章:

python - 解释来自 RandomForestClassifier 的特征重要性值

python - Python 中的外部异常可以在代码块的持续时间内延迟吗?

python - 使用arrow python将人性化时间转换为UTC时间

python - 通过 Flask 框架将 Dash 条形图插入 HTML 页面

python - 如何使用 scikit-learn 拟合多维输出?

python - 从骨灰盒中绘制的 Numpy

python - 如何清除python解释器屏幕

python - 如何让pandas显示每个数据行

python - 如何获取Scikit-learn的svm中的训练误差?

python - 仅使用系数和截距模拟 sklearn 逻辑回归 Predict_proba