Kears构建简单的二分类网络

目标:二分类

网络:DNN

损失:二元交叉熵

代码:

import numpy as np
import tensorflow as tf
from sklearn.datasets import make_blobs
from matplotlib import pyplot as plt
from sklearn.preprocessing import MinMaxScaler


X, y = make_blobs(n_samples=100, centers=2, n_features=2, random_state=1)
Xa = []
Xb = []
for i in range(0, len(X)):
    Xa.append(X[i][0])
    Xb.append(X[i][1])
plt.scatter(Xa, Xb, marker='o', c='', edgecolors='g')

scalar = MinMaxScaler()
scalar.fit(X)
X = scalar.transform(X)
input1 = tf.keras.layers.Input(shape=(2,))
dense1 = tf.keras.layers.Dense(units=10, activation='relu')(input1)
output = tf.keras.layers.Dense(units=1, activation='sigmoid')(dense1)
model = tf.keras.models.Model(inputs=input1, outputs=output)
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(X, y, epochs=500, verbose=0, batch_size=10)

Xnew = np.array([[0.89337759, 0.65864154]])
ynew = model.predict(Xnew)
print(ynew)

注:对于二分类,在模型预测时,直接给出的是label为1的prob值

时刻记着自己要成为什么样的人!
原文地址:https://www.cnblogs.com/demo-deng/p/14598142.html