我正在尝试实现Perceptron算法,但我无法弄清楚以下几点。
答案 0 :(得分:2)
Perceptron不是一种特定的算法,它是一组算法的名称。这些算法之间存在两个主要差异。
<强> 1。整合和解雇规则
让输入向量为x
,权重向量为w
,阈值为t
,输出值为P(x)
。计算P(x)有各种函数:
P(x)
= 1(如果w
* x
&gt; = t
)或0(否则)P(x)
= w
* x
(如果w
* x
&gt; = t
)或0(否则)P(x)
= t
(如果w
* x
&gt; = t
)或w
* {{1} }(如果0&lt; x
* w
&lt; x
)或0(否则)t
= 1/1 + e ^(P(x)
* w
)和其他许多人。 因此很难说阈值在最终结果中有什么不同,因为它取决于您使用的集成和消防功能。
<强> 2。学习规则
Perceptron的学习规则也各不相同。最简单和最常见的是
x
- &gt; w
+ w
* a
*(x
- D(x)
)
其中P(x)
是学习步骤的大小,a
是D(x)
的预期输出。 因此,很难说什么应该是理想的迭代值,因为它取决于x
的值以及您拥有的训练样本数量。
因此,thresold会随着迭代而改变吗? 它也取决于。上面简单而常见的学习规则不会在训练时修改阈值,但还有一些其他学习规则会对其进行修改。
不过,你还问过这个algorothm是否适合大量数据? 衡量某个数据集分类器适用性的主要指标是数据集的线性可分性,而不是其规模。请记住单层Perceptron对于非线性可分离的数据集具有非常差的性能。 数据集的规模无关紧要。