高校网站站群,小程序公司开发排名,郑州网络推广软件,用什么语言来做网站逻辑回归是一种经典的分类算法#xff0c;广泛应用于二分类问题。本文将介绍如何使用TensorFlow框架实现逻辑回归模型#xff0c;并通过动态绘制决策边界和损失曲线来直观地观察模型的训练过程。
数据准备
首先#xff0c;我们准备两类数据点#xff0c;分别表示两个不同…逻辑回归是一种经典的分类算法广泛应用于二分类问题。本文将介绍如何使用TensorFlow框架实现逻辑回归模型并通过动态绘制决策边界和损失曲线来直观地观察模型的训练过程。
数据准备
首先我们准备两类数据点分别表示两个不同的类别。这些数据点将作为模型的输入特征。
# 1.散点输入
class1_pointsnp.array([[1.9,1.2],[1.5,2.1],[1.9,0.5],[1.5,0.9],[0.9,1.2],[1.1,1.7],[1.4,1.1]])
class2_pointsnp.array([[3.2,3.2],[3.7,2.9],[3.2,2.6],[1.7,3.3],[3.4,2.6],[4.1,2.3],[3.0,2.9]])
将两类数据点合并为一个矩阵并为每个数据点分配相应的标签0或1。
#不用单独提取出x1_data 和x2_data
#框架会根据输入特征数自动提取
x_trainnp.concatenate((class1_points,class2_points),axis0)
y_trainnp.concatenate((np.zeros(len(class1_points)),np.ones(len(class2_points))))
将数据转换为TensorFlow张量以便在模型中使用。
import tensorflow as tfx_train_tensor tf.convert_to_tensor(x_train, dtypetf.float32)
y_train_tensor tf.convert_to_tensor(y_train, dtypetf.float32)
模型定义
使用TensorFlow的tf.keras模块定义逻辑回归模型。模型包含一个输入层和一个输出层输出层使用sigmoid激活函数。
def LogisticRegreModel():input tf.keras.Input(shape(2,))fc tf.keras.layers.Dense(1, activationsigmoid)(input)lr_model tf.keras.models.Model(inputsinput, outputsfc)return lr_modelmodel LogisticRegreModel()
定义优化器和损失函数。这里使用随机梯度下降优化器和二元交叉熵损失函数。
opt tf.keras.optimizers.SGD(learning_rate0.01)
model.compile(optimizeropt, lossbinary_crossentropy)
训练过程
训练模型时我们记录每个epoch的损失值并动态绘制决策边界和损失曲线。 import matplotlib.pyplot as pltfig, (ax1, ax2) plt.subplots(1, 2)epochs 500
epoch_list []
epoch_loss []for epoch in range(1, epochs 1):y_pre model.fit(x_train_tensor, y_train_tensor, epochs50, verbose0)epoch_loss.append(y_pre.history[loss][0])epoch_list.append(epoch)w1, w2 model.get_weights()[0].flatten()b model.get_weights()[1][0]slope -w1 / w2intercept -b / w2x_min, x_max 0, 5x np.array([x_min, x_max])y slope * x interceptax1.clear()ax1.plot(x, y, r)ax1.scatter(x_train[:len(class1_points), 0], x_train[:len(class1_points), 1])ax1.scatter(x_train[len(class1_points):, 0], x_train[len(class1_points):, 1])ax2.clear()ax2.plot(epoch_list, epoch_loss, b)plt.pause(1)
结果展示
训练完成后决策边界图将显示模型如何将两类数据分开损失曲线图将显示模型在训练过程中的损失值变化。生成结果基本如图所示 通过动态绘制决策边界和损失曲线我们可以直观地观察模型的训练过程了解模型如何逐渐学习数据的分布并优化决策边界。
总结
本文介绍了如何使用TensorFlow实现逻辑回归模型并通过动态绘制决策边界和损失曲线来观察模型的训练过程。逻辑回归是一种简单而有效的分类算法适用于二分类问题。通过TensorFlow框架我们可以轻松地实现和训练逻辑回归模型并利用其强大的功能来优化模型的性能。 完整代码
import numpy as np
import tensorflow as tf
import matplotlib.pyplot as plt
# 1.散点输入
class1_pointsnp.array([[1.9,1.2],[1.5,2.1],[1.9,0.5],[1.5,0.9],[0.9,1.2],[1.1,1.7],[1.4,1.1]])
class2_pointsnp.array([[3.2,3.2],[3.7,2.9],[3.2,2.6],[1.7,3.3],[3.4,2.6],[4.1,2.3],[3.0,2.9]])#不用单独提取出x1_data 和x2_data
#框架会根据输入特征数自动提取
x_trainnp.concatenate((class1_points,class2_points),axis0)
y_trainnp.concatenate((np.zeros(len(class1_points)),np.ones(len(class2_points))))
#转化为张量
x_train_tensortf.convert_to_tensor(x_train,dtypetf.float32)
y_train_tensortf.convert_to_tensor(y_train,dtypetf.float32)#2.定义前向模型
# 使用类的方式
# 先设置一下随机数种子
seed0
tf.random.set_seed(0)def LogisticRegreModel():inputtf.keras.Input(shape(2,))fctf.keras.layers.Dense(1,activationsigmoid)(input)lr_modeltf.keras.models.Model(inputsinput,outputsfc)return lr_model
#实例化网络
modelLogisticRegreModel()
#3.定义损失函数和优化器
#定义优化器
#需要输入模型参数和学习率
lr0.1
opttf.keras.optimizers.SGD(learning_rate0.01)
model.compile(optimizeropt,lossbinary_crossentropy)# 最后画图
fig,(ax1,ax2)plt.subplots(1,2)
#训练
epoches500
epoch_list[]
epoch_loss[]
for epoch in range(1,epoches1):# verbose0 进度条不显示 epochs迭代次数y_premodel.fit(x_train_tensor,y_train_tensor,epochs50,verbose0)# print(y_pre.history[loss])epoch_loss.append(y_pre.history[loss][0])epoch_list.append(epoch)w1,w2model.get_weights()[0].flatten()bmodel.get_weights()[1][0]#画左图# 使用斜率和截距画直线#目前将x2当作y轴 x1当作x轴# w1*x1w2*x2b0#求出斜率和截距slope-w1/w2intercept-b/w2#绘制直线 开始结束位置x_min,x_max0,5xnp.array([x_min,x_max])yslope*xinterceptax1.clear()ax1.plot(x,y,r)#画散点图ax1.scatter(x_train[:len(class1_points),0],x_train[:len(class1_points),1])ax1.scatter(x_train[len(class1_points):, 0],x_train[len(class1_points):, 1])#画右图ax2.clear()ax2.plot(epoch_list,epoch_loss,b)plt.pause(1)
文章转载自: http://www.morning.nxhjg.cn.gov.cn.nxhjg.cn http://www.morning.nftzn.cn.gov.cn.nftzn.cn http://www.morning.dhqzc.cn.gov.cn.dhqzc.cn http://www.morning.kzrbn.cn.gov.cn.kzrbn.cn http://www.morning.mtktn.cn.gov.cn.mtktn.cn http://www.morning.bphqd.cn.gov.cn.bphqd.cn http://www.morning.xxlz.cn.gov.cn.xxlz.cn http://www.morning.spbp.cn.gov.cn.spbp.cn http://www.morning.yxlhz.cn.gov.cn.yxlhz.cn http://www.morning.xpgwz.cn.gov.cn.xpgwz.cn http://www.morning.tbqbd.cn.gov.cn.tbqbd.cn http://www.morning.yswxq.cn.gov.cn.yswxq.cn http://www.morning.zcwzl.cn.gov.cn.zcwzl.cn http://www.morning.knnhd.cn.gov.cn.knnhd.cn http://www.morning.hkcjx.cn.gov.cn.hkcjx.cn http://www.morning.qbjrf.cn.gov.cn.qbjrf.cn http://www.morning.wnqbf.cn.gov.cn.wnqbf.cn http://www.morning.hxfrd.cn.gov.cn.hxfrd.cn http://www.morning.bfcrp.cn.gov.cn.bfcrp.cn http://www.morning.jfbrt.cn.gov.cn.jfbrt.cn http://www.morning.lsgjf.cn.gov.cn.lsgjf.cn http://www.morning.nwzcf.cn.gov.cn.nwzcf.cn http://www.morning.bkgfp.cn.gov.cn.bkgfp.cn http://www.morning.ktyww.cn.gov.cn.ktyww.cn http://www.morning.sthp.cn.gov.cn.sthp.cn http://www.morning.ylyzk.cn.gov.cn.ylyzk.cn http://www.morning.cwknc.cn.gov.cn.cwknc.cn http://www.morning.bpmnc.cn.gov.cn.bpmnc.cn http://www.morning.yccnj.cn.gov.cn.yccnj.cn http://www.morning.grxyx.cn.gov.cn.grxyx.cn http://www.morning.plhhd.cn.gov.cn.plhhd.cn http://www.morning.tpdg.cn.gov.cn.tpdg.cn http://www.morning.rgwz.cn.gov.cn.rgwz.cn http://www.morning.djpzg.cn.gov.cn.djpzg.cn http://www.morning.fssmx.com.gov.cn.fssmx.com http://www.morning.jpnw.cn.gov.cn.jpnw.cn http://www.morning.qqhfc.cn.gov.cn.qqhfc.cn http://www.morning.tlbhq.cn.gov.cn.tlbhq.cn http://www.morning.lskyz.cn.gov.cn.lskyz.cn http://www.morning.yslfn.cn.gov.cn.yslfn.cn http://www.morning.fssjw.cn.gov.cn.fssjw.cn http://www.morning.kqbzy.cn.gov.cn.kqbzy.cn http://www.morning.kngqd.cn.gov.cn.kngqd.cn http://www.morning.pwmm.cn.gov.cn.pwmm.cn http://www.morning.ydtdn.cn.gov.cn.ydtdn.cn http://www.morning.xnpml.cn.gov.cn.xnpml.cn http://www.morning.dnphd.cn.gov.cn.dnphd.cn http://www.morning.bntgy.cn.gov.cn.bntgy.cn http://www.morning.chongzhanggui.cn.gov.cn.chongzhanggui.cn http://www.morning.wsjnr.cn.gov.cn.wsjnr.cn http://www.morning.kpmxn.cn.gov.cn.kpmxn.cn http://www.morning.wpjst.cn.gov.cn.wpjst.cn http://www.morning.tqldj.cn.gov.cn.tqldj.cn http://www.morning.lmmyl.cn.gov.cn.lmmyl.cn http://www.morning.rqdx.cn.gov.cn.rqdx.cn http://www.morning.dphmj.cn.gov.cn.dphmj.cn http://www.morning.kpcky.cn.gov.cn.kpcky.cn http://www.morning.bmmhs.cn.gov.cn.bmmhs.cn http://www.morning.gfhng.cn.gov.cn.gfhng.cn http://www.morning.znknj.cn.gov.cn.znknj.cn http://www.morning.ctwwq.cn.gov.cn.ctwwq.cn http://www.morning.ydyjf.cn.gov.cn.ydyjf.cn http://www.morning.tcylt.cn.gov.cn.tcylt.cn http://www.morning.ndlww.cn.gov.cn.ndlww.cn http://www.morning.dkgtr.cn.gov.cn.dkgtr.cn http://www.morning.xpmhs.cn.gov.cn.xpmhs.cn http://www.morning.wqkfm.cn.gov.cn.wqkfm.cn http://www.morning.zbhfs.cn.gov.cn.zbhfs.cn http://www.morning.qrcxh.cn.gov.cn.qrcxh.cn http://www.morning.hgfxg.cn.gov.cn.hgfxg.cn http://www.morning.sooong.com.gov.cn.sooong.com http://www.morning.flqkp.cn.gov.cn.flqkp.cn http://www.morning.bfgpn.cn.gov.cn.bfgpn.cn http://www.morning.plflq.cn.gov.cn.plflq.cn http://www.morning.zlff.cn.gov.cn.zlff.cn http://www.morning.lddpj.cn.gov.cn.lddpj.cn http://www.morning.dxzcr.cn.gov.cn.dxzcr.cn http://www.morning.jkdtz.cn.gov.cn.jkdtz.cn http://www.morning.qrsm.cn.gov.cn.qrsm.cn http://www.morning.rkwwy.cn.gov.cn.rkwwy.cn