Perceptron 算法
时间: 2023-12-22 19:29:03 浏览: 99
感知机算法是一种二分类的线性分类模型,它的目标是找到一个超平面,将不同类别的样本正确地分开。感知机算法的基本思想是通过迭代的方式不断调整超平面的参数,使得分类误差最小化。
以下是一个使用感知机算法进行分类的示例代码:
```python
import numpy as np
class Perceptron:
def __init__(self):
self.w = None
self.b = 0
def train(self, X, y, learning_rate=1, max_epochs=100):
self.w = np.zeros(X.shape[1])
for _ in range(max_epochs):
for i in range(X.shape[0]):
if y[i] * (np.dot(self.w, X[i]) + self.b) <= 0:
self.w += learning_rate * y[i] * X[i]
self.b += learning_rate * y[i]
def predict(self, X):
return np.sign(np.dot(X, self.w) + self.b)
# 创建数据集
def createDataSet():
group = np.array([[3,3], [4,3], [1,1]])
labels = [1, 1, -1]
return group, labels
# 使用感知机进行分类
group, labels = createDataSet()
perceptron = Perceptron()
perceptron.train(group, labels)
predictions = perceptron.predict(group)
print(predictions)
```
这段代码中,我们首先定义了一个`Perceptron`类,其中包含了训练和预测方法。在训练方法中,我们使用随机梯度下降的方式更新超平面的参数,直到达到最大迭代次数或者分类误差为0。在预测方法中,我们根据超平面的参数对新样本进行分类。
通过运行以上代码,我们可以得到样本的预测结果。
阅读全文