如何使用sigmoid进行二分类代码示例
时间: 2023-12-28 13:04:38 浏览: 38
以下是一个使用sigmoid进行二分类的Python代码示例:
```python
import numpy as np
def sigmoid(x):
return 1 / (1 + np.exp(-x))
# 训练数据
X_train = np.array([[0, 0], [0, 1], [1, 0], [1, 1]])
y_train = np.array([0, 1, 1, 0])
# 初始化权重和偏置
w = np.random.rand(2)
b = np.random.rand()
# 学习率
lr = 0.1
# 迭代训练
for i in range(1000):
# 前向传播
z = np.dot(X_train, w) + b
y_pred = sigmoid(z)
# 计算损失
loss = np.mean(-y_train * np.log(y_pred) - (1 - y_train) * np.log(1 - y_pred))
# 反向传播
dw = np.dot(X_train.T, (y_pred - y_train)) / len(X_train)
db = np.mean(y_pred - y_train)
# 更新权重和偏置
w -= lr * dw
b -= lr * db
# 打印损失
if i % 100 == 0:
print("Epoch %d, Loss: %.4f" % (i, loss))
# 预测
y_pred = sigmoid(np.dot(X_train, w) + b)
y_pred = np.round(y_pred)
print("Predictions:", y_pred)
```
在这个例子中,我们使用sigmoid函数作为激活函数来实现二分类。我们使用4个训练样本(XOR问题),并使用随机初始化的权重和偏置进行训练。经过1000次迭代后,我们得到了比较好的分类结果。
阅读全文