DNN二分类模型的python代码,加混淆矩阵图
时间: 2024-01-28 13:43:32 浏览: 181
以下是一个简单的DNN二分类模型的Python代码,以及混淆矩阵图的生成:
```python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import confusion_matrix
from keras.models import Sequential
from keras.layers import Dense
# 读取数据集
dataset = pd.read_csv('dataset.csv')
# 提取特征与标签
X = dataset.iloc[:, :-1].values
y = dataset.iloc[:, -1].values
# 数据集划分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# 特征缩放
sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)
# 创建模型
model = Sequential()
model.add(Dense(units=6, kernel_initializer='uniform', activation='relu', input_dim=X.shape[1]))
model.add(Dense(units=6, kernel_initializer='uniform', activation='relu'))
model.add(Dense(units=1, kernel_initializer='uniform', activation='sigmoid'))
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
# 训练模型
model.fit(X_train, y_train, batch_size=32, epochs=100)
# 预测测试集结果
y_pred = model.predict(X_test)
y_pred = (y_pred > 0.5)
# 生成混淆矩阵图
cm = confusion_matrix(y_test, y_pred)
plt.imshow(cm, cmap=plt.cm.Blues)
plt.xticks([0, 1])
plt.yticks([0, 1])
plt.xlabel('Predicted Label')
plt.ylabel('True Label')
for i in range(2):
for j in range(2):
plt.text(j, i, format(cm[i, j]), horizontalalignment='center', verticalalignment='center')
plt.show()
```
在这个代码中,我们使用了Keras库来创建一个简单的DNN二分类模型,使用了一个包含两个隐藏层的模型结构。通过训练模型并预测测试集结果,我们可以生成一个混淆矩阵图来展示模型的分类效果。在这个混淆矩阵图中,横轴表示预测结果,纵轴表示真实结果,图中的数字表示每个类别的样本数。
阅读全文