标签估计(监督学习)
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 听课笔记