帮我写一个简单的感知机
时间: 2023-08-02 11:09:10 浏览: 94
当然可以!感知机是一种最简单的神经网络模型,它的输入是一个向量,输出是一个二元值(0 或 1),可以用来解决二分类问题。
以下是一个简单的感知机实现,它可以输入两个二元特征,输出一个二元结果:
```python
class Perceptron:
def __init__(self, learning_rate=0.1, num_epochs=100):
self.learning_rate = learning_rate
self.num_epochs = num_epochs
self.weights = [0, 0]
self.bias = 0
def predict(self, x):
linear_output = self.weights[0] * x[0] + self.weights[1] * x[1] + self.bias
if linear_output > 0:
return 1
else:
return 0
def train(self, X, y):
for epoch in range(self.num_epochs):
for i in range(len(X)):
x = X[i]
y_pred = self.predict(x)
error = y[i] - y_pred
self.weights[0] += self.learning_rate * error * x[0]
self.weights[1] += self.learning_rate * error * x[1]
self.bias += self.learning_rate * error
```
你可以使用 `train` 方法来训练感知机,传入训练数据 `X` 和标签 `y`,然后使用 `predict` 方法来预测新的数据。
阅读全文