Sklearn:如何在训练期间调整数据集比例,而不是测试

数据挖掘 scikit-学习 熊猫 交叉验证
2022-02-19 15:12:51

我正在使用 sklearn/pandas/numpy。

我有一个带标签的数据集,其中潜在的结果是真或假。但是,该数据集的 True 条目比例要高得多。当通过具有 k 倍 (n=5) 交叉验证的分类器运行时,这似乎使分类器偏向于只说 True。

使用权重,我能够调整我正在使用的样本数据集,使其比例接近 1:1,如下所示(使用 pandas csv):

results = csv[['result']]
weights = np.where(results.as_matrix() == True,0.25,1).ravel()
csv_sample = csv.sample(n=60000, weights=weights)

结果更有希望!但是,我想知道是否有办法让我进行交叉验证,其中 TRAINING 集以这种方式调整,但 TEST 集更接近数据的实际比例。

1个回答

尝试使用预测器选项 class_weight='balanced' 或 auto。在类似的情况下,它对我来说非常适合SGDClassifier 。