Python逻辑回归
时间: 2023-11-05 22:59:46 浏览: 42
逻辑回归是一种用于分类问题的机器学习算法。在Python中,我们可以使用原生的Python代码来实现逻辑回归算法,这有助于初学者更好地理解算法的内部流程。下面是逻辑回归算法的一个简单实现示例:
```
# 定义逻辑回归算法
class LogisticRegression:
def __init__(self, learning_rate=0.003, iterations=100):
self.learning_rate = learning_rate # 学习率
self.iterations = iterations # 迭代次数
def fit(self, X, y):
# 初始化参数
self.weights = np.random.randn(X.shape[1])
self.bias = 0
# 梯度下降
for i in range(self.iterations):
# 计算sigmoid函数的预测值
y_hat = sigmoid(np.dot(X, self.weights) + self.bias)
# 计算损失函数
loss = (-1 / len(X)) * np.sum(y * np.log(y_hat) + (1 - y) * np.log(1 - y_hat))
# 计算梯度
dw = (1 / len(X)) * np.dot(X.T, (y_hat - y))
db = (1 / len(X)) * np.sum(y_hat - y)
# 更新参数
self.weights -= self.learning_rate * dw
self.bias -= self.learning_rate * db
# 打印损失函数值
if i % 10 == 0:
print(f"Loss after iteration {i}: {loss}")
def predict(self, X):
y_hat = sigmoid(np.dot(X, self.weights) + self.bias)
y_hat[y_hat >= 0.5] = 1
y_hat[y_hat < 0.5] = 0
return y_hat
def score(self, y_pred, y):
accuracy = (y_pred == y).sum() / len(y)
return accuracy
```
使用这个逻辑回归类,我们可以通过以下步骤进行模型训练和预测:
1. 创建一个逻辑回归对象,并指定学习率和迭代次数。
2. 使用训练数据调用fit()方法,传入特征矩阵X和目标向量y,以训练模型。
3. 使用测试数据调用predict()方法,传入特征矩阵X_test,以获取预测结果。
4. 可选地,使用score()方法,传入预测结果和真实标签,以获取模型的准确性得分。