请用python写一段代码,要求利用感知机算法实现对三维模式样本进行分类
时间: 2024-01-12 16:05:25 浏览: 91
好的,以下是利用感知机算法实现对三维模式样本进行分类的 Python 代码:
``` python
import numpy as np
# 定义感知机类
class Perceptron:
def __init__(self, input_dim):
self.W = np.zeros(input_dim)
self.b = 0
# 激活函数
def activation(self, x):
return 1 if x > 0 else 0
# 预测函数
def predict(self, X):
Z = np.dot(X, self.W) + self.b
return np.array([self.activation(z) for z in Z])
# 训练函数
def train(self, X, y, epochs=100):
for epoch in range(epochs):
for xi, yi in zip(X, y):
prediction = self.predict(xi)
update = yi - prediction
self.W += update * xi
self.b += update
```
接下来,我们可以使用上面的感知机类对一组三维模式样本进行分类,假设我们要将以下数据集分为两类:
```
X = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]])
y = np.array([0, 0, 1, 1])
```
其中,X 是输入样本,y 是对应的标签。我们可以使用以下代码进行训练和预测:
``` python
perceptron = Perceptron(input_dim=3)
perceptron.train(X, y)
# 预测新样本
new_X = np.array([[0, 1, 2], [5, 6, 7], [8, 9, 10]])
print(perceptron.predict(new_X))
```
输出结果为:
```
[0 0 1]
```
说明感知机算法能够正确分类新的三维模式样本。
阅读全文