python - 如何将大数据集划分为n个子集并保持类别比例

标签 python machine-learning scikit-learn classification svm

我正在研究二元分类问题,并且使用了一个大数据集(样本数量很大,功能不多)。数据不平衡,但我正在使用权重数组来解决这个问题(某种程度上)。

我一直在这个集合的小版本中尝试使用 sklearn 的一些分类器,显然 SVM 可以很好地满足我的需求。然而,一旦我尝试将 SVM 放入整个数据集中,就会花费很长时间(而且我也耗尽了内存)。

我想知道的是,Sklearn 中是否有任何快速方法来划分这个集合,比如说分成 10 个子集,保持类的比例,那么我可以将每个子集划分为训练/测试并拟合每个子集独立的 SVM(所以我也可以使用不同的处理器)?

最佳答案

您可以添加一个新列,它将是一个随机数,使用np.random.random_sample从0到1,然后您可以对class进行分组,并将pd.cut应用于生成的随机数,就像创建一个新列数据集一样:

df = pd.DataFrame({'class': np.random.choice(['A', 'B'], 100), 
               'value': np.random.random_sample(100)})
df['dataset'] = pd.DataFrame(df.groupby('class').apply(lambda x: 
pd.cut(x['value'], 10, labels=range(0, 10)))).reset_index(0, drop=True)

关于python - 如何将大数据集划分为n个子集并保持类别比例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55770280/

相关文章:

machine-learning - 为什么 DQN 会为所有观察的 Action 空间 (2) 中的所有 Action 提供相似的值

python - 随机森林的 TreeExplainer 的 expected_value 字段是什么?

python - cross_val_score 和估计器分数之间的区别?

python - 如何在正则表达式中不匹配特定的电子邮件地址

Python字典递归搜索

python - 找到 N 个组中 N 个项目的所有组合,而没有重复的项目组合(python)?

python - Keras 中的 S 形层

python - 如何解释 Tensorflow DNNRegressor Estimator 模型中的损失函数?

python - scikit-learn 中每个数据拆分的交叉验证指标

python - 如何修复设置 Django 1.9 应用程序时无法序列化错误