2017-11-03 71 views
-1

我是机器学习的新手请原谅我,如果我愚蠢。 我有一个包含22个属性和30000个数据点的traindata.csv文件。在机器学习(二元分类)中处理我的数据的最佳技巧?

我必须训练我的模型(不是特定的算法),并预测testdata.csv文件中的20000个数据点,我必须使用我的训练模型进行预测。

在traindata.csv中,'0'和'1'类标签的比例为5:1。 如果我用这整列火车数据训练我的模型,我的模型显示了一些偏向于预测0的比例。

我以某种方式知道我的测试数据中的实际值是0和1的比例是1:1。

你能否给我建议一些方法(某种噪声消除)来预处理我的列车数据,使得在预测我的测试数据时(因为它具有相等的0和1),不会有偏向0的偏差?

回答

1

这是一个被称为“不平衡分类”

我会建议一个平衡装袋分类经典问题。如果你喜欢python,我会推荐this。我并不在乎你的包包,而是树木开始的好地方。这个包中有很多文档和其他方法。

如果你想变得更漂亮一点,你可以在任何类型的树方法中使用Hellinger distance。标准树选择对类大小比例敏感的分割点(即偏斜)。海灵格距离不是。我不知道python中的开源实现。

+0

谢谢,但你可以建议一些类似于'BalancedBaggingRegressor'的东西,就像你提供的链接[link](http://contrib.scikit-learn.org/imbalanced-learn/stable/generated/imblearn.ensemble.BalancedBaggingClassifier .html)作为即时通讯使用回归模型? – RAM

+0

你谈到了班级标签,所以你正在做分类。如果你有足够的课程,并且它们是有序的,那么它与回归相同。如果是这种情况,那我就没有什么可以提供给你的。我不知道有关目标维度的训练事件密度的研究。我高度建议你重新回答你的问题。让它更正式,并尝试使用技术术语。现有的代码也会有帮助。你使用什么模型? – Keith

+0

我正在使用“XGBRegressor”我只有两个类标签'0'和'1'。我的训练数据如上面描述的那样糟糕。所以我想给出类似class_weight =“balance”的东西,所以我要求'BalancedBaggingRegressor' – RAM