感知机Python数组代码
时间: 2024-04-20 15:21:27 浏览: 95
感知机是一种二分类的线性分类模型,其基本思想是通过学习一组权重参数,将输入的特征向量映射到输出的类别标签上。下面是一个简单的感知机的Python数组代码示例:
```python
import numpy as np
class Perceptron:
def __init__(self, num_features, learning_rate=0.1, num_epochs=100):
self.weights = np.zeros(num_features)
self.bias = 0
self.learning_rate = learning_rate
self.num_epochs = num_epochs
def train(self, X, y):
for _ in range(self.num_epochs):
for i in range(len(X)):
prediction = self.predict(X[i])
if prediction != y[i]:
update = self.learning_rate * (y[i] - prediction)
self.weights += update * X[i]
self.bias += update
def predict(self, x):
activation = np.dot(self.weights, x) + self.bias
return 1 if activation >= 0 else -1
# 示例数据
X = np.array([[2, 3], [4, 1], [3, 6], [7, 8]])
y = np.array([1, -1, -1, 1])
# 创建感知机对象并进行训练
perceptron = Perceptron(num_features=2)
perceptron.train(X, y)
# 进行预测
test_data = np.array([[5, 4], [1, 2]])
for data in test_data:
prediction = perceptron.predict(data)
print(f"Input: {data}, Prediction: {prediction}")
```
这段代码实现了一个简单的感知机模型,其中`Perceptron`类包含了初始化权重、训练和预测的方法。在训练过程中,通过迭代调整权重和偏置来逐渐优化模型的分类能力。最后,使用训练好的模型对新的数据进行预测。
阅读全文