完整的感知机python代码
时间: 2023-06-17 15:08:00 浏览: 80
以下是一个基本的感知机模型的Python代码实现,包括训练和预测功能:
```python
import numpy as np
class Perceptron:
def __init__(self, learning_rate=0.01, n_iterations=1000):
self.learning_rate = learning_rate
self.n_iterations = n_iterations
def fit(self, X, y):
n_samples, n_features = X.shape
# 初始化权重
self.weights = np.zeros(n_features)
self.bias = 0
# 训练模型
for _ in range(self.n_iterations):
for idx, x_i in enumerate(X):
linear_output = np.dot(x_i, self.weights) + self.bias
y_predicted = self.predict(x_i)
# 更新权重和偏置
update = self.learning_rate * (y[idx] - y_predicted)
self.weights += update * x_i
self.bias += update
def predict(self, X):
linear_output = np.dot(X, self.weights) + self.bias
return np.where(linear_output >= 0, 1, -1)
```
其中,`learning_rate`和`n_iterations`是超参数,用于控制模型的训练过程。`fit`函数用于训练模型,输入参数`X`是一个二维数组,每行代表一个样本,每列代表一个特征。`y`是一个一维数组,表示每个样本的标签。`predict`函数用于预测新样本的标签,输入参数`X`是一个二维数组,每行代表一个样本,每列代表一个特征。函数返回一个与输入`X`形状相同的一维数组,表示每个样本的预测标签。
阅读全文