你需要实现一个简单的单层感知机(Perceptron)模型,并提供对其训练方法的实现。单层感知机是一种基础的线性二分类器,它对输入向量进行权值组合,然后通过激活函数(通常是一个符号函数)来决定该输入是属于正类还是负类。
在这个问题中,感知机的训练算法需要采用以下规则进行权值更新:
-
权值更新规则: 当一个实例被错误分类时,模型需要使用以下规则对权值向量
b
进行更新:b = b + l_rate * y_train[i] * x_train[i]
其中
l_rate
是学习率(一个小的常数,例如 0.01),y_train[i]
是第i
个训练样本的类标签,x_train[i]
是第i
个训练样本的特征向量。 -
迭代训练: 训练过程需要迭代所有训练样本直到某一轮迭代中没有错误分类的实例,即能够完全正确分类训练集上的所有数据点。
-
训练方法: 模型训练方法
fit
接收两个参数:X
:一个二维数组,其中每行代表一个训练实例的特征向量。y
:一个一维数组,其中每个元素代表对应训练实例的类标签,类标签取值是1
或-1
。
您的任务是实现感知机的训练方法 fit
。此方法应该更新感知机的权值,以至于在训练数据上达到零错误分类为止,并返回一个字符串 "Perceptron Model trained!"
,以表示训练过程完成。
以下是示例训练集:
X = [[1, 2], [2, 3], [1.5, 2.5], [-1, -2], [-2, -3], [-1.5, -2.5]]
y = [1, 1, 1, -1, -1, -1]
在实现时不需要使用任何外部库,如 numpy
或 pandas
。