逻辑回归于交叉熵
什么是逻辑回归:
线性回归预测的是一个连续值,逻辑回归给出的“是”和“否”的回答。
使用sigmoid()函数来实现逻辑回归的预测,sigmoid()函数是一个概率分布函数,给定某个输入,它将输出为一个概率值。
逻辑回归损失函数:
平方差所惩罚的是与损失为同一数量级的情形,对于分类问题,我们最好的使用交叉熵损失函数会更有效果。交叉熵会输出一个更大的“损失”
交叉熵损失函数
交叉熵刻画的是实际输出(概率)与期望输出(概率)的距离,也就是交叉熵的值越小,两个概率分布就越接近。假设概率分布p为期望输出,概率分布q为实际输出,H(p,q)为交叉熵,则:
keras交叉熵
在tf.keras里,使用binary_crossentropy计算二元交叉熵。
代码实现
import tensorflow as tf
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
data = pd.read_csv("C:/Users/HP/Desktop/tf/credit-a.csv")#读取数据
data.head()#查看数据前5行
0 | 30.83 | 0.1 | 0.2 | 0.3 | 9 | 0.4 | 1.25 | 0.5 | 0.6 | 1 | 1.1 | 0.7 | 202 | 0.8 | -1 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 58.67 | 4.460 | 0 | 0 | 8 | 1 | 3.04 | 0 | 0 | 6 | 1 | 0 | 43 | 560.0 | -1 |
1 | 1 | 24.50 | 0.500 | 0 | 0 | 8 | 1 | 1.50 | 0 | 1 | 0 | 1 | 0 | 280 | 824.0 | -1 |
2 | 0 | 27.83 | 1.540 | 0 | 0 | 9 | 0 | 3.75 | 0 | 0 | 5 | 0 | 0 | 100 | 3.0 | -1 |
3 | 0 | 20.17 | 5.625 | 0 | 0 | 9 | 0 | 1.71 | 0 | 1 | 0 | 1 | 2 | 120 | 0.0 | -1 |
4 | 0 | 32.08 | 4.000 | 0 | 0 | 6 | 0 | 2.50 | 0 | 1 | 0 | 0 | 0 | 360 | 0.0 | -1 |
发现数据没有表头,加入函数header=None,默认添加表头。
data = pd.read_csv("C:/Users/HP/Desktop/tf/credit-a.csv",header=None)
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
---|