python不使用库构建逻辑回归模型代码进行预测
时间: 2024-05-09 17:21:56 浏览: 143
回答:可以使用numpy库和数学公式手动构建逻辑回归模型代码进行预测。首先需要定义sigmoid函数,然后使用梯度下降算法对模型进行优化,最后使用模型进行预测。实现代码如下:
```python
import numpy as np
def sigmoid(x):
return 1 / (1 + np.exp(-x))
# 训练模型
def train(X, y, learning_rate=0.01, n_iterations=1000):
m, n = X.shape
# 添加偏置项
X_b = np.c_[np.ones((m,1)), X]
# 初始化theta
theta = np.random.randn(n+1, 1)
# 更新theta
for iteration in range(n_iterations):
gradients = 1/m * X_b.T.dot(sigmoid(X_b.dot(theta)) - y)
theta = theta - learning_rate * gradients
return theta
# 预测
def predict(X, theta):
m, n = X.shape
# 添加偏置项
X_b = np.c_[np.ones((m,1)), X]
# 预测概率
y_proba = sigmoid(X_b.dot(theta))
# 使用0.5作为阈值,对概率进行分类
y_predict = (y_proba >= 0.5)
return y_predict
```
使用方法:
```python
# 构造训练集和测试集
X_train = np.array([[1, 2], [2, 4], [3, 6], [4, 8]])
y_train = np.array([[0], [0], [1], [1]])
X_test = np.array([[5, 10]])
# 训练模型
theta = train(X_train, y_train)
# 预测
y_predict = predict(X_test, theta)
print(y_predict)
```
输出结果为:`[[ True]]`
阅读全文