学习笔记||Tensorflow-逻辑回归实现

        线性回归预测连续值,逻辑回归给出“是”或“否”,使用Sigmoid做激活函数。Sigmoid是一个概率函数。

        对于分类问题使用交叉熵刻画损失函数会更有效,交叉熵会输出一个更大的“损失”。交叉熵刻画的是实际输出概率与期望输出概率的距离。交叉熵越小,两个概率分布就越接近。

        概率分布p为期望输出,概率分布q为实际输出,H(p,q)为交叉熵:

H(p,q)=-\sum_{x}^{}p(x)logq(x)

代码实现:

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

data=pd.read_csv(file_path,header=None) #没有表头时,第一行就是参数,用header=None设置默认表头

data.head()

data.iloc[:,-1].value_counts() #查看最后一列,判断是不是二元分类

x = data.iloc[:,:-1]
y = data.iloc[:,-1].replace(-1,0) #将-1替换为0,1和-1适合支持向量机的算法

#模型初始化
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'])
#metrics 可以测量很多东西,acc用于计算正确率状况

#模型训练
history = model.fit(x,y,epochs = 100)

#查看history中history字典里的key
history.history.keys()
#运行结果说明history记录了loss和acc的变化

#以迭代次数为x轴,key值为y轴,绘图查看
#损失函数的变化
plt.plot(history.epoch,history.history.get('loss')) #字典使用get方法取值
#正确率的变化
plt.plot(history.epoch,history.history.get('acc'))


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值