能否提供一个用于BP神经网络分类任务的Python代码示例?
时间: 2024-10-24 21:14:53 浏览: 9
BP神经网络预测(python)
当然可以,以下是一个简单的BP(Backpropagation,反向传播)神经网络在Python(通过Keras库)用于二分类任务的基本例子:
```python
# 导入所需库
from keras.models import Sequential
from keras.layers import Dense
import numpy as np
# 假设我们有特征数据X_train和对应的标签y_train
# X_train.shape应为(样本数, 特征维度),y_train.shape应为(样本数,)
# 将类别标签转换为one-hot编码
y_train = to_categorical(y_train, num_classes=2) # 如果类别是0和1,则num_classes为2
# 创建模型
model = Sequential()
model.add(Dense(16, input_dim=X_train.shape[1], activation='relu')) # 输入层,16个隐藏单元,ReLU激活函数
model.add(Dense(8, activation='relu')) # 隐藏层,8个隐藏单元
model.add(Dense(2, activation='softmax')) # 输出层,二分类,用softmax激活函数
# 编译模型
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
# 训练模型
model.fit(X_train, y_train, epochs=50, batch_size=32)
# 使用训练好的模型对新的数据进行预测
predictions = model.predict_classes(X_test)
```
这个例子中,我们首先创建了一个简单的三层神经网络,然后使用了交叉熵作为损失函数(适合分类任务),Adam优化器进行梯度更新。在训练完成后,我们可以用模型对测试集进行预测。
阅读全文