线性分类器的python代码实例
时间: 2023-11-16 21:00:55 浏览: 148
以下是一个简单的线性分类器的Python代码实例:
```python
import numpy as np
class Perceptron:
def __init__(self, learning_rate=0.1, 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 i in range(n_samples):
linear_output = np.dot(X[i], self.weights) + self.bias
y_predicted = np.sign(linear_output)
# 更新权重和偏置
update = self.learning_rate * (y[i] - y_predicted)
self.weights += update * X[i]
self.bias += update
def predict(self, X):
linear_output = np.dot(X, self.weights) + self.bias
y_predicted = np.sign(linear_output)
return y_predicted
```
这个代码实现了一个简单的感知器模型,使用梯度下降算法来最小化误分类的损失函数。在`fit`方法中,我们首先初始化权重和偏置为0,然后对于每个样本,计算线性输出并使用`np.sign`函数将其转换为+1或-1的类别标签。如果预测结果与真实标签不同,则更新权重和偏置以减少误差。在`predict`方法中,我们使用训练好的权重和偏置来预测新的样本的类别。
阅读全文