python - 如何确保我的数据集在类之间均匀分布,即它是分层的,大小和类分布应该是平衡的?
问题描述
我做了一个简单的 K 折交叉验证代码,现在我想做一些修改,使其在大小和类分布上平衡?
PS:我需要从头开始使用python代码,sklearn是不允许的。
from random import seed
from random import randrange
def cross_validation_split(dataset, folds=3):
dataset_split = []
dataset_copy = list(dataset)
fold_size = int(len(dataset) / folds)
for i in range(folds):
fold = []
while len(fold) < fold_size:
index = randrange(len(dataset_copy))
fold.append(dataset_copy.pop(index))
dataset_split.append(fold)
return dataset_split
seed()
dataset = [1,1,1,2,2,2,3,3,4,4,4]
folds = cross_validation_split(dataset, 2)
print(folds)
结果我得到了这个:[[4, 4, 3, 3, 4], [1, 1, 2, 2, 1]]
。
我希望是例如,[[1,3,2,4,4],[1,2,2,4,3]]
解决方案
推荐阅读
- python - 如何根据条件为数据框中的值着色并将其导出到 csv 文件?
- javascript - nlp.js - TypeError:无法读取未定义的属性“addLanguage”
- excel - 只读单元格...... .. ......
- css - 使用 `css` 属性样式化 React 组件
- c - 我如何将字符串(作为用户的输入)传递给c中的函数?
- ios - 如何使我的小部件更新更频繁或在应用内发生操作时更新
- swift - SwiftUI:在 ScrollView 中显示 HTML 文本
- dns - 子域重定向到谷歌浏览器上的主域
- pyspark - PySpark:如何计算两列中不同值的数量?
- c# - 生成成员时,如何防止在 VS Code for C# 中添加“private”访问修饰符?