Azure 机器学习均匀采样
Azure machine learning even sampling
我正在尝试在 Azure ML 中进行一些基本的多标签分类。我有以下格式的一些基本数据:
value_x value_y label
x1 y1 label1
x2 y2 label1
x3 y3 label2
.....
我的问题是,在我的数据中,某些标签(总共五个标签中)的比例过高,因为大约 40% 的数据是标签 1,大约 20% 是标签 2,其余大约 10%。
我想从这些标签中抽取样本来训练我的模型,以便每个标签都以相同的数量表示。
在标签列的采样模块中尝试了分层选项,但这只是给我一个与初始数据集中的标签分布相同的采样。
知道如何使用模块来做到这一点吗?
我能够使用 Split Data, Partition and Sample, and Add Rows modules. There may be an easier way to do it, but I did confirm it works. :) I published my work at http://gallery.azureml.net/Details/1245147fd7004e91bc7a3683cda19cc7 的组合来完成此操作,因此您可以直接从那里获取它,然后 运行 确认它是否符合您的预期。
既然你说你想要对数据进行抽样,我只是将每个标签减少到 10%,以使所有标签均等。由于您对数据集中的分布有很好的了解,因此将标签 3、4 和 5 全部保留在 10% 左右,并将标签 1 减少 1/4,将标签 2 减少 1/2,以获得大约 10%,因为出色地。
解释我在上面链接的工作区中做了什么:
- 我使用了一些 "Split Data" 模块来过滤掉 label1 和 label2 数据。在Split Data模块中,将Splitting mode改为"Regular Expression",正则表达式设置为\"Label" ^label1(以获取label1数据为例) .
- 然后我使用了一些"Partition and Sample"模块来适当减少label1和label2数据的大小。
- 最后,我使用了一些 "Add Rows" 模块将所有数据重新组合在一起。
最后,我的工作中没有包含这个,但是你也可以看看SMOTE模块。它将使用合成少数过采样来增加低频样本的数量。
我正在尝试在 Azure ML 中进行一些基本的多标签分类。我有以下格式的一些基本数据:
value_x value_y label
x1 y1 label1
x2 y2 label1
x3 y3 label2
.....
我的问题是,在我的数据中,某些标签(总共五个标签中)的比例过高,因为大约 40% 的数据是标签 1,大约 20% 是标签 2,其余大约 10%。
我想从这些标签中抽取样本来训练我的模型,以便每个标签都以相同的数量表示。
在标签列的采样模块中尝试了分层选项,但这只是给我一个与初始数据集中的标签分布相同的采样。
知道如何使用模块来做到这一点吗?
我能够使用 Split Data, Partition and Sample, and Add Rows modules. There may be an easier way to do it, but I did confirm it works. :) I published my work at http://gallery.azureml.net/Details/1245147fd7004e91bc7a3683cda19cc7 的组合来完成此操作,因此您可以直接从那里获取它,然后 运行 确认它是否符合您的预期。
既然你说你想要对数据进行抽样,我只是将每个标签减少到 10%,以使所有标签均等。由于您对数据集中的分布有很好的了解,因此将标签 3、4 和 5 全部保留在 10% 左右,并将标签 1 减少 1/4,将标签 2 减少 1/2,以获得大约 10%,因为出色地。
解释我在上面链接的工作区中做了什么:
- 我使用了一些 "Split Data" 模块来过滤掉 label1 和 label2 数据。在Split Data模块中,将Splitting mode改为"Regular Expression",正则表达式设置为\"Label" ^label1(以获取label1数据为例) .
- 然后我使用了一些"Partition and Sample"模块来适当减少label1和label2数据的大小。
- 最后,我使用了一些 "Add Rows" 模块将所有数据重新组合在一起。
最后,我的工作中没有包含这个,但是你也可以看看SMOTE模块。它将使用合成少数过采样来增加低频样本的数量。