zoukankan      html  css  js  c++  java
  • tf.keras实现线性回归和多层感知器

    线性回归实现

    相关库引用

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

    加载数据

    data = pd.read_csv("E:/datasets/dataset/Income1.csv") # 获取数据
    x = data.Education
    y = data.Income
    data
    

    输出散点图,看看数据的分布情况

    plt.scatter(data.Education, data.Income) # 打印散点图
    

    定义模型

    model = tf.keras.Sequential() # 建立一个层叠模型
    model.add(tf.keras.layers.Dense(1, input_shape = (1, ))) # 添加一个层,1个单元,输入大小用元组
    model.summary() # 查看模型的参数信息
    


    这里总共有2个参数,即 (y = ax + b)(a)(b)
    tf.keras.layers.Dense()参数列表中还有激活函数,这个后面介绍

    模型编译

    model.compile(
        optimizer = 'adam', # adam优化器
        loss = 'mse'        # 均方根误差
    )
    

    训练模型

    history = model.fit(x, y, epochs = 10000) # 训练10000次
    

    预测

    model.predict(pd.Series([20]))
    

    多层感知器实现

    加载数据

    data = pd.read_csv("E:/datasets/dataset/Advertising.csv") # 获取数据
    x = data.iloc[:, 1:-1]
    y = data.iloc[:, -1]
    data
    

    输出散点图,看看数据的分布情况

    plt.scatter(data.TV, data.sales) # 打印散点图
    

    定义模型

    model = tf.keras.Sequential() # 建立一个层叠模型
    model.add(tf.keras.layers.Dense(10, input_shape = (3, ), activation = 'relu')) # 添加一个层,10个节点
    model.add(tf.keras.layers.Dense(1))
    model.summary()
    


    这里总共有51个参数,即:
    第一层:(y = a_1*x_1 + a_2*x_2 + a_3*x_3 + b)(a_1,a_2,a_3)(b),总共10个节点,因此有40个参数
    第二层:(y = sum_{i = 1}^{10}w_i*x_i + b)(w_i)(b),总共有11个参数

    模型编译

    model.compile(
        optimizer = 'adam', # adam优化器
        loss = 'mse'        # 均方根误差
    )
    

    训练模型

    history = model.fit(x, y, epochs = 1000) # 训练1000次
    

    预测

    test = data.iloc[:10, 1:-1]
    model.predict(test)
    

  • 相关阅读:
    Python爬虫常用之HtmlParser
    Python异常基础
    python开头——文件声明 详解
    if __name__ == '__main__' 详解
    python基础提高演练(名片管理系统的开发)
    python函数基础
    python中的运算符归类
    python中的if判断语句
    python中变量命名的基本规则,标识符和关键字
    python中变量的基本使用
  • 原文地址:https://www.cnblogs.com/miraclepbc/p/14287756.html
Copyright © 2011-2022 走看看