缘起
由于对夏令营提供的baseline相关代码中的一些算法不太理解,又要尝试进行修改提高分数,就这样零星地记一下相关的学习笔记和一些基础思考.
逻辑回归
jupyterbook中的task1有这样一段:
# 引入模型
model = LogisticRegression()
# 开始训练,这里可以考虑修改默认的batch_size与epoch来取得更好的效果
model.fit(train_vector, train['label'])
之前的代码已经准备好训练数据train_vector和相应的标签train['label']。
其中,
train_vector是训练集的特征向量,而train['label']是训练集对应的分类标签。
通过fit方法,模型将使用这些数据进行训练,学习出逻辑回归模型的参数。
但需要指出的是, 对逻辑回归模型来说,应该并不涉及batch_size和epoch的调整
逻辑回归是一种基本的分类算法,其训练过程不涉及批量训练和迭代次数。逻辑回归是通过解析解(闭式解)直接计算得到的,而不是通过梯度下降等迭代方法进行优化。简单地说,逻辑回归是一个线性模型,其参数可以通过数学公式直接得到,不需要设置batch_size和epoch
工作原理
模型
逻辑回归模型的基本形式是一个线性回归模型,但是它的输出是通过一个逻辑函数(或称为sigmoid函数)进行转换的。这个函数可以将任何实数映射到0和1之间,使得它可以用来表示概率。模型的形式通常表示为:
其中, 是我们想要预测的二元目标变量的概率, 是输入变量, 和 是模型参数。
估计参数
逻辑回归模型的参数通常使用最大似然估计法进行估计。这种方法的目标是找到一组参数值,使得在给定这些参数的情况下,我们观察到的数据出现的概率最大。
一旦模型的参数被估计出来,我们就可以使用这个模型来对新的数据进行预测。我们将新的数据输入到模型中,模型会输出一个介于0和1之间的值。这个值可以被解释为目标变量为1的概率。通常会设定一个阈值(如0.5),当模型输出的概率大于这个阈值时,我们就预测目标变量为1,否则我们预测目标变量为0。
为什么SGD需要设置batch_size 和epoch?
对于需要使用梯度下降等迭代方法进行优化的模型,如深度学习模型,需要设置batch_size和epoch等参数。这是因为深度学习模型通常由大量的参数组成,通过梯度下降等优化算法来不断调整这些参数,使得模型能够更好地拟合训练数据。
在梯度下降的过程中,模型会根据设置的
batch_size来决定每次迭代中使用多少个样本来更新参数。epoch表示训练数据将被用于训练多少次,每个epoch会遍历整个训练数据集一次。
batch_size和epoch在深度学习中是重要的超参数,可以影响模型的训练速度和性能。但至于到底怎样设置batch_size和epoch, 只能进行实验和调整来找到最佳的参数组合.