【python】机器学习,如何尽量合理创建学习数据?

2019-06-20 16:51发布

我现在有一组数据,但是数据的量太少了,想尽量合理地增加一些数据。

数据内容                    结果
NUM1 A B C A A B D E F    label1

上面的数据中有重复的内容(比如3个A),我想是否可以把其中一个A删除后变成一个新的数据。

数据内容                   结果
NUM2 B C A A B D E F    label1

大家在建造数据的时候有什么好的经验吗?

2条回答
欢心
2楼-- · 2019-06-20 17:14

你是说搞些测试用的数据?一般可以这样吧,如果你要训练一个函数(已经提前知道了),就随机产生n个样本,然后用这个函数计算出n个结果,再把这个n个结果分别加上一个偏差,最好确保这个n个偏差符合正态分布,python库里有现成的函数可以生成符合正态分布的一组数。 然后你就开始用这些样本训练模型,训练完了和提前设定好的函数做比较就好了。

当然,如果有真实数据更好了

查看更多
霸刀☆藐视天下
3楼-- · 2019-06-20 17:31

对于数据量不够的情况,是有些处理的方式的。第一种,重采样,也就是直接造重复的数据;第二种,除了重采样之外的过采样,也就是造新的数据,造新的数据也不是乱造的,具体有 SMOTE 算法、data augmentation。

但其实我不太理解你的问题,你的 NUM1 和 NUM2 分别指的是一条数据吗?如果是一条数据,你改变了 feature,能否保证 label 不变?如果 NUM1 和 NUM2 是分别是一组数据,那么“把其中一个A删除后变成一个新的数据”也没有必要,因为你重采样也是得到同样的数据。

对于造数据,对训练数据是可以的,但是不要对测试数据进行,测试集要求是真实的数据,这点是需要保证的。

我之前也写了一篇关于处理不平衡数据集的博客 https://www.cnblogs.com/wuliytTaotao/p/9308944.html ,也许有帮助吧。

查看更多
登录 后发表回答