tf.keras实现线性回归和多层感知器
线性回归实现
转自:https://www.cnblogs.com/miraclepbc/p/14287756.html
相关库引用
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=a1∗x1+a2∗x2+a3∗x3+b𝑦=𝑎1∗𝑥1+𝑎2∗𝑥2+𝑎3∗𝑥3+𝑏的a1,a2,a3𝑎1,𝑎2,𝑎3和b𝑏,总共10个节点,因此有40个参数
第二层:y=∑10i=1wi∗xi+b𝑦=∑𝑖=110𝑤𝑖∗𝑥𝑖+𝑏的wi𝑤𝑖和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)
分类:
AI / Tensorflow2.0
, AI
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)