scikit-learn

时间:2019-06-14 10:56:29

标签: machine-learning scikit-learn perceptron

我需要使用感知器算法来研究某些不可线性分离的数据集的学习率和渐近误差。
为此,我需要了解构造函数的一些参数。我花了很多时间来搜索它们,但我仍然不太了解它们的用途或用法。
给我带来更多问题的是:alpha和eta0

我了解算法的每次更新都是:

formula perceptron update
其中(d-y(t))仅给出所需的+或-,以增大或减小矢量的分量,而r是使更新平滑的学习率。

来自scikit-learn文档(https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Perceptron.html
如果使用正则化,则“ alpha”是一个常数,它将与正则化项相乘。
“ eta0”是一个常数,更新乘以该常数。

感知器中的正则化项(alpha)是什么?公式的哪一部分出现?
eta0是上面公式的“ r”吗?
这两个参数都应该减慢算法速度,但会使算法更有效,我想了解如何最好地使用它们。

预先感谢您,即使回答不完整,也将不胜感激。

1 个答案:

答案 0 :(得分:1)

首先让我解决这个问题:

  

其中(d-y(t))仅给出所需的+或-,以增加或减少向量的分量

更准确地说,(d-y(t))是实际输出与所需输出之间的距离。我们的校正应与误差大小成正比(这是从数学证明中得出的),这很有意义。

  

感知器中的正则化项(alpha)是什么?公式的哪一部分出现?

从scikit学习Perceptron上的文档:

  

Perceptron是一种分类算法,与SGDClassifier共享相同的基础实现。实际上,Perceptron()等效于SGDClassifier(loss =“ perceptron”,eta0 = 1,learning_rate =“ constant”,惩罚=无)。

SGDClassifier上:

  

正则化器是对损失函数的一种惩罚,它使用平方欧几里德范数L2或绝对范数L1或两者的组合(弹性网)将模型参数向零矢量收缩。如果由于正则化而使参数更新超过0.0值,则更新将被截断为0.0以允许学习稀疏模型并实现在线特征选择。

所以就在那里。正则项使模型参数尽可能小。在神经网络中也可以做到这一点:here是一个很好的解释。

  

eta0是上面公式的'r'吗?

是的,学习率通常用eta表示。