我正在努力理解 version space learning和候选消除算法。 以这些具有以下属性的训练示例为例:
Sky, Temp, Humid, Wind, Water, Forecast, EnjoySport
以及对应的值:
<Sunny, Warm, Normal, Strong, Warm, Same, Yes>
<Sunny, Warm, High, Strong, Warm, Same, Yes>
<Rainy, Cold, High, Strong, Warm, Change, No>
<Sunny, Warm, High, Strong, Cool, Change, Yes>
如果我执行候选消除,我发现 S
(最具体的假设)和 G
(最一般的假设)是:
S: {<Sunny, Warm, ?, Strong, ?, ?>}
G: {<Sunny, ?, ? ,? ,?, ?>, <?, Warm, ?, ?, ?, ?>}
但是,新数据的分类呢?我的意思是,如果我有一个像这样的新数据点会怎样?
<Sunny, Warm, Normal, Strong, Cool, Change>
算法会做什么?它会将新记录分类为正面还是负面?
我搜索了很多,但没有找到任何有用的东西。
最佳答案
来自Wikipedia page :
After learning, classification can be performed on unseen examples by testing the hypothesis learned by the algorithm. If the example is consistent with multiple hypotheses, a majority vote rule can be applied.
<disclaimer>
在没有太多经验的情况下进行这种学习</disclaimer>
,目的是学习可以用“一般”和“特定”边界描述的可能性空间区域,或许具有在它们之间进行插值的能力。
例如,您可能会考虑 <Sunny, ?, ? ,Strong ,?, ?>
到一个包含的假设,因为它在“之间”<Sunny, Warm, ?, Strong, ?, ?>
和 <Sunny, ?, ? ,? ,?, ?>
.
由边界确定的假设空间代表您的模型已学习的知识。其中的每个假设(例如 <Sunny, ?, ? ,Strong ,?, ?>
)将匹配或不匹配新数据点。然后由您决定如何解释由此产生的“意见”。显然,对它进行“投票”很常见。
总结:
- 列举最具体和最一般边界之间的所有假设。
- 记录每个假设对新数据点的 react :它是说是还是不是?
- 新数据点的“赞成”票多还是“反对”票多?这就是您将新点标记为的内容。
请注意,虽然上述算法有利于传达意图,但可能对性能不利。特别是,一次可以考虑多组包含的假设。这样做会减少所需的迭代次数。
关于algorithm - 候选淘汰——新数据的分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39496706/