感知机模型一般用来做二分类,找分类超平面的。概念请参看前篇。本篇是python的具体实现。
示例输入:
X_train=np.array([[3,3],[4,3],[1,1]])
y_train=np.array([1,1,-1])//标签
求超平面
示例输出:
左边是b=0,右是b=1,当然,参数不同,结果不同。
1.算法步骤
2.编码步骤
3.调三个参数 正序检查、负序检查
1.算法步骤
1.1选出初始值
1.2在训练数据集中选数据(x1,y1)
1.3.如果yi(wx+b)<0;
w=w+nyx
b=b+ny
1.4.转至2 直到训练集中没有误分类点
2.编码步骤
2.1.构造训练数据集
X_train=np.array([[3,3],[4,3],[1,1]])
y_train=np.array([1,1,-1])#样本标签
2.2构建感知机对象,对数据集继续训练
perceptron=MyPerceptron()
perceptron.fit(X_train,y_train)
2.3结果图像绘制
3.参数说明
此模型依赖于参数初始值,调参时的实例输入顺序,不同初始值,不同顺序出入会出不同结果。
参数:self.w=None #一般为实例的向量维度
self.b=0 #常数,自定义。上图左边为b=0 和右边为b=1。
self.l_rate=1 #学习步长