【TensorFlow】—— 使用TensorFlow实现逻辑回归

交叉熵损失函数

交叉熵刻画的是实际输出(概率)与期望输出(概率)的距离,也就是交叉熵的值越小,两个概率分布就越接近。

假设概率分布p为期望输出,概率分布q为实际输出,H(p,q)为交叉熵,则: H ( p , q ) = − ∑ x p ( x ) l o g   q ( x ) H(p, q) = -\displaystyle\sum_{x}p(x)log\,q(x) H(p,q)=xp(x)logq(x)


keras交叉熵

在keras里,使用 binary_ crossentropy 来计算二元交叉熵。


代码:

import tensorflow as tf
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt


data = pd.read_csv("credit-a.csv", header=None)

data.iloc[:, -1].value_counts()

X = data.iloc[:, :-1]
y = data.iloc[:, -1].replace(-1, 0)

model = tf.keras.Sequential()

model.add(tf.keras.layers.Dense(4, input_shape=(15,), activation='relu')) # 隐藏层
model.add(tf.keras.layers.Dense(4, activation='relu')) # 隐藏层
model.add(tf.keras.layers.Dense(1, activation='sigmoid')) # 输出层

model.summary()

model.compile(optimizer='adam',
              loss='binary_crossentropy',
              metrics=['acc'])

history = model.fit(X, y, epochs=100)

history.history.keys()

plt.plot(history.epoch, history.history.get('loss'))
plt.plot(history.epoch, history.history.get('acc'))

Output:

损失函数图像:

【TensorFlow】—— 使用TensorFlow实现逻辑回归_第1张图片

准确率图像:

【TensorFlow】—— 使用TensorFlow实现逻辑回归_第2张图片

你可能感兴趣的:(【TensorFlow】)