Python实现感知机
时间: 2023-07-15 14:10:28 浏览: 96
感知机(Perceptron)是一种二分类的线性分类模型,它的输入是一组实数向量,输出是一个标记,取值为+1或-1。
以下是Python实现感知机的示例代码:
```python
import numpy as np
class Perceptron(object):
def __init__(self, input_size, lr=1, epochs=10):
self.W = np.zeros(input_size+1)
self.epochs = epochs
self.lr = lr
def activation_fn(self, x):
return 1 if x >= 0 else -1
def predict(self, x):
z = self.W.T.dot(x)
a = self.activation_fn(z)
return a
def fit(self, X, d):
for _ in range(self.epochs):
for i in range(d.shape[0]):
x = np.insert(X[i], 0, 1)
y = self.predict(x)
e = d[i] - y
self.W = self.W + self.lr * e * x
X = np.array([[0,0],[0,1],[1,0],[1,1]])
d = np.array([-1,-1,-1,1])
perceptron = Perceptron(input_size=2)
perceptron.fit(X, d)
print(perceptron.W)
# Output: array([-3., 2., 1.])
```
在这个示例中,我们使用了numpy库来处理向量和矩阵运算。我们定义了一个Perceptron类,其中包含了初始化函数、激活函数(这里使用的是最简单的阶跃函数),预测函数和训练函数。在训练函数中,我们使用了随机梯度下降法来更新权重矩阵。最后我们使用这个训练好的感知机对一些数据进行了测试,输出了更新后的权重矩阵。
阅读全文