【问题标题】: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" 中添加一些常量来考虑“优先”,以便可以以某种方式过滤错误率较低的类别。

标签: statistics estimation supervised-learning


【解决方案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 等。

【讨论】:

    猜你喜欢
    • 2014-04-20
    • 2013-03-24
    • 2016-07-28
    • 2021-10-17
    • 2019-02-20
    • 1970-01-01
    • 2018-10-01
    • 2018-04-06
    • 2019-06-04
    相关资源
    最近更新 更多