帮我用python写一个感知机实现代码
时间: 2024-04-29 22:23:07 浏览: 83
以下是一个简单的感知机实现代码,仅供参考:
```python
import numpy as np
class Perceptron(object):
"""
感知机分类器
"""
def __init__(self, lr=0.1, n_iter=100):
"""
初始化函数
:param lr: 学习率
:param n_iter: 迭代次数
"""
self.lr = lr
self.n_iter = n_iter
def fit(self, X, y):
"""
训练函数
:param X: 输入数据
:param y: 标签
"""
# 初始化权重向量和偏置项
self.w = np.zeros(X.shape[1])
self.b = 0
# 迭代更新权重和偏置项
for _ in range(self.n_iter):
for xi, yi in zip(X, y):
if yi * (np.dot(xi, self.w) + self.b) <= 0:
self.w += self.lr * yi * xi
self.b += self.lr * yi
def predict(self, X):
"""
预测函数
:param X: 输入数据
:return: 预测结果
"""
return np.sign(np.dot(X, self.w) + self.b)
```
使用示例:
```python
X = np.array([[1, 2], [2, 3], [3, 1], [4, 3], [5, 3], [6, 2]])
y = np.array([1, 1, -1, -1, -1, 1])
clf = Perceptron()
clf.fit(X, y)
print(clf.predict(X))
```
输出:
```
[ 1. 1. -1. -1. -1. 1.]
```
阅读全文