用python写一个简单的单层感知机
时间: 2023-06-06 11:05:06 浏览: 114
好的,我会尽力回答您的问题。
以下是一个使用Python编写的简单单层感知机的示例代码:
```python
import numpy as np
class Perceptron:
def __init__(self, input_size, lr=1, epochs=100):
self.W = np.zeros(input_size+1)
self.epochs = epochs
self.lr = lr
def activation_fn(self, x):
return 1 if x >= 0 else 0
def predict(self, x):
z = self.W.T.dot(x)
a = self.activation_fn(z)
return a
def fit(self, X, d):
for epoch 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([0, 0, 0, 1])
perceptron = Perceptron(input_size=2)
perceptron.fit(X, d)
test_input = np.array([0, 1])
print(perceptron.predict(np.insert(test_input, 0, 1)))
```
这个程序实现了一个单层感知机,它可以用来解决二元分类问题。您可以根据需要调整输入值、期望输出和学习速率等参数,以获得更好的结果。
阅读全文