码迷,mamicode.com
首页 > 其他好文 > 详细

tf.keras实现线性回归和多层感知器

时间:2021-01-18 11:03:49      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:nump   pil   单元   激活   输出   分布   code   tor   numpy   

线性回归实现

相关库引用

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)

技术图片

tf.keras实现线性回归和多层感知器

标签:nump   pil   单元   激活   输出   分布   code   tor   numpy   

原文地址:https://www.cnblogs.com/miraclepbc/p/14287756.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!