logistic回归 python
时间: 2023-10-13 17:05:56 浏览: 95
逻辑回归是一种常用的机器学习算法,用于解决二分类问题。在Python中,我们可以使用原生的Python代码来实现逻辑回归算法。下面是一个基于原生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. 逻辑回归算法与线性回归算法有何区别?
3. 如何选择逻辑回归模型的学习率和迭代次数?
4. 逻辑回归算法在哪些实际应用中被广泛使用?
5. 如何处理逻辑回归模型中的特征缺失和异常值?
阅读全文