实现二分类神经网络,并用酒驾检测数据集评估其分类性能。 提示:可使用 rng.random()等方法生成随机值初始化权重与偏差参数
时间: 2024-11-10 07:13:52 浏览: 4
实现一个简单的二分类神经网络,我们可以使用Python的深度学习库Keras,配合TensorFlow或PyTorch。这里我们以Keras为例,假设你有一个预处理过的酒驾检测数据集,包含特征(如车辆速度、驾驶员疲劳度等)和标签(是否酒驾,0表示未酒驾,1表示酒驾)。以下是创建模型的基本步骤:
```python
import numpy as np
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
# 首先,假设你的数据已经分为训练集X_train, y_train 和测试集X_test, y_test
# 数据预处理:归一化或标准化
X_train, X_test = ... # 归一化处理后的特征数组
y_train, y_test = ... # 标签数组
# 定义模型结构,一个隐藏层神经网络
model = Sequential()
model.add(Dense(32, input_dim=X_train.shape[1], activation='relu')) # 输入层,32个节点,ReLU激活
model.add(Dense(16, activation='relu')) # 隐藏层,16个节点
model.add(Dense(1, activation='sigmoid')) # 输出层,1个节点,用于二分类,sigmoid作为激活函数
# 初始化权重和偏置(可以使用random_normal或glorot_uniform)
rng = np.random.RandomState(42)
model.layers[0].kernel_initializer = 'uniform'
model.layers[0].bias_initializer = rng.uniform(low=-0.05, high=0.05)
model.layers[1].kernel_initializer = 'uniform'
model.layers[1].bias_initializer = rng.uniform(low=-0.05, high=0.05)
# 编译模型,设定损失函数(binary_crossentropy)、优化器(SGD或Adam)和评价指标(accuracy)
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# 训练模型
history = model.fit(X_train, y_train, epochs=50, validation_data=(X_test, y_test))
# 评估模型性能
score = model.evaluate(X_test, y_test, verbose=0)
print("Test accuracy:", score[1])
阅读全文