标签估计(监督学习)

Posted

技术标签:

【中文标题】标签估计(监督学习)【英文标题】:Tag Estimation (Supervised Learning) 【发布时间】:2017-06-15 02:17:42 【问题描述】:

我有几千个样本,这些样本已经被标记为“A”或“Not A”。每个样本都分配了 [0-n] 个类别。

我想要实现的是找出哪些类别适合将新样本标记为“A”或“Not A”。

我的方法是将样本分成两组,一组包含所有标记为“A”的样本,一组包含所有“非 A”。

现在我正在创建一个包含所有不同类别的集合,并计算每个类别在“A”集合和“非 A”集合中出现的频率。

然后我根据每个类别的两组中的出现次数(“Not A”中的#occurrences /(“A”中的#occurrences +“Not A”中的#occurrences))计算错误率。然后将它们按升序排序(根据错误率)。

所以现在的挑战是找出哪些类别适合将样本标记为“A”。

----------------------------------------------------
| Category | error ratio | #occ "A" | #occ "Not A" |
--------------------------------------------------
| V        | 0           | 2        | 0            |
----------------------------------------------------
| W        | 0           | 59       | 0            |
----------------------------------------------------
| X        | 0,138       | 125      | 20           |
----------------------------------------------------
| Y        | 0,901       | 9        | 82           |
----------------------------------------------------
| Z        | 1           | 1        | 0            |
----------------------------------------------------

因此,首先我需要确定需要多少次观察才能进一步处理我的类别。在显示的表中,V 和 Z 可能不是很好选择的类别,因为出现的次数太少。但是有没有一种统计方法来决定哪些类别应该被丢弃?

之后,我需要选择我的决策边界在哪里。 我正在考虑创建所有可能的类别组合,然后测量准确度并选择准确度高于约 95% 的最大集合。

在第一步中,我只会使用 V 来决定样本是“A”还是“Not A”。然后 W, ... V, W, V, X, ... V, W, X, ... V, W, X, Y, Z。这似乎是 (2^n - 1) 的复杂度。

由于我有数千个类别,这是不可能的。 有没有可以用于此目的的优化算法?

【问题讨论】:

您可以按错误率 O(nlogn) 从小到大对类别进行排序。然后,根据前 k 个类别的 occ "A" 和 occ "Not A" 的累积计数 O(n),根据累积错误率选择前 k 个类别。此外,您可以通过在#occ "A" 和#occ "Not A" 中添加一些常量来考虑“优先”,以便可以以某种方式过滤错误率较低的类别。 【参考方案1】:

您可能不必发明自行车。

您可以以二进制方式对数据进行编码,如下所示:

A  V  W  X  Y  Z
1  1  1  0  0  1
0  0  1  1  0  0
1  0  1  1  1  0 
...

此后,您可以将数据提供给任何分类算法,例如朴素贝叶斯、逻辑回归、决策树分类器、SVM 等。

【讨论】:

以上是关于标签估计(监督学习)的主要内容,如果未能解决你的问题,请参考以下文章

cs231n spring 2017 lecture13 听课笔记

Machine Learning——Unsupervised Learning(机器学习之非监督学习)

监督学习和非监督学习

机器学习基石:03 Types of Learning

监督学习与非监督学习

监督学习与非监督学习的区别