使用numpy实现logistic回归
时间: 2024-10-09 17:01:07 浏览: 32
在Python中,NumPy是一个强大的数学库,而实现Logistic Regression通常会结合NumPy、Pandas等数据处理库以及Scikit-learn这样的机器学习库。以下是使用NumPy基本步骤的一个简化版本,实际应用中会更倾向于使用Scikit-learn,因为它有完整的模型训练和评估功能:
1. 导入必要的库:
```python
import numpy as np
from sklearn.linear_model import LogisticRegression
```
2. 定义sigmoid函数(对数似然函数),用于计算概率:
```python
def sigmoid(z):
return 1 / (1 + np.exp(-z))
```
3. 创建模拟数据(这里仅作示例,真实场景下需要从CSV或其他源加载数据):
```python
X = np.random.rand(100, 2)
y = np.array([0] * 50 + [1] * 50) # 二分类数据,0和1各占一半
```
4. 初始化权重向量和偏置项(NumPy数组):
```python
w = np.zeros(X.shape[1])
b = 0
```
5. 迭代优化(梯度下降法):
```python
learning_rate = 0.01
for _ in range(iterations): # 设置迭代次数
z = np.dot(X, w) + b
y_pred = sigmoid(z)
dw = X.T @ (y_pred - y) / len(y)
db = np.sum(y_pred - y) / len(y)
w -= learning_rate * dw
b -= learning_rate * db
```
6. 预测:
```python
predictions = np.round(sigmoid(np.dot(X, w) + b))
```
阅读全文