我正在尝试在Azure ML中进行一些基本的多标签分类。我有以下格式的一些基本数据:
value_x value_y label
x1 y1 label1
x2 y2 label1
x3 y3 label2
.....
我的问题是,在我的数据中,某些标签(总共五个)过多,因为大约40%的数据是label1,大约20%是标签2,其余大约是10%。
我想从中获取一些样本来训练我的模型,以便每个标签以相等的数量表示。
在标签栏的“采样”模块中尝试了分层选项,但这只是给我一个采样,其标签分布与初始数据集中的相同。
知道如何用模块做到这一点吗?
答案 0 :(得分:3)
我可以使用tutorial page,Split Data和Partition and Sample模块的组合来完成此操作。可能有一种更简单的方法,但我确认它有效。 :)我在Add Rows发布了我的作品,因此您可以直接从那里抓取它,并运行以确认它符合您的期望。
由于您说您想要对数据进行抽样,我只是将每个标签减少到10%,以使所有标签均等。由于您对数据集中的分布有很好的理解,因此将标签3,4和5全部保留在10%左右,并将标签1减少1/4,将标签2减少1/2,使其中约10%为好。
解释我在上面链接的工作区中所做的事情:
最后,我没有将这个包含在我的工作中,但您也可以查看http://gallery.azureml.net/Details/1245147fd7004e91bc7a3683cda19cc7模块。它将使用合成少数过采样来增加低发生样本的数量。