• tensorflow学习008——逻辑回归实现


    2.7 逻辑回归实现

    本节代码需要的文件链接:https://pan.baidu.com/s/1jhHHi9bxrV5ogH7mKTc8Bw
    提取码:1zhs

    先认识下数据

    点击查看代码
    import pandas as pd
    data = pd.read_csv("./dataset/credit-a.csv",header=None) #因为这个文件没有表头
    print(data.head())
    

    image
    图2-15
    其中0-14列是输入特征值,第15列是目标值,第15列只有-1和1这两种值。

    点击查看代码
    import tensorflow as tf
    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    
    data = pd.read_csv("./dataset/credit-a.csv",header=None) #因为这个文件没有表头
    # print(data.head())
    x = data.iloc[:,:-1]
    y = data.iloc[:,-1].replace(-1,0) #将最后一列的-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')) #最后一层需要使用sigmoid激活
    #损失函数使用二元交叉熵概率 metric每轮都显示正确率
    model.compile(optimizer='adam',loss='binary_crossentropy',metrics=['acc'])
    
    history = model.fit(x,y,epochs=1000)
    
    print(history.history) #是一个字典,记录了acc和loss的变化
    #绘制loss,acc随ecpoch变化的图像
    plt.plot(history.epoch,history.history.get("loss"),color='red')
    plt.plot(history.epoch,history.history.get("acc"),color='green')
    plt.show()
    

    image
    图2-16
    如图2-16,我们可以看出,当超过200轮的时候,训练的结果冰花不是很大的,这说明,对于我们设计的这个网络而言,单纯的增大轮数没有意义,需要对网络结构进行调整。


    作者:孙建钊
    出处:http://www.cnblogs.com/sunjianzhao/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    liunx下手动安装git及配置
    Liunx系统下删除自带的JDK及安装需要的JDK版本
    Pipeline简单实现的代码
    HttpClient-post请求,含图片
    Java
    函数及BOM
    JS--EcmaScript
    定位
    浮动
    盒子模型
  • 原文地址:https://www.cnblogs.com/sunjianzhao/p/15552277.html
Copyright © 2020-2023  润新知