实践赛事笔记(一) | datawhale-NLP夏令营

102 阅读3分钟

缘起

由于对夏令营提供的baseline相关代码中的一些算法不太理解,又要尝试进行修改提高分数,就这样零星地记一下相关的学习笔记和一些基础思考.

逻辑回归

jupyterbook中的task1有这样一段:

# 引入模型 
model = LogisticRegression() 

# 开始训练,这里可以考虑修改默认的batch_size与epoch来取得更好的效果 
model.fit(train_vector, train['label'])

之前的代码已经准备好训练数据train_vector和相应的标签train['label']。 其中,

  • train_vector是训练集的特征向量,而
  • train['label']是训练集对应的分类标签。

通过fit方法,模型将使用这些数据进行训练,学习出逻辑回归模型的参数。

但需要指出的是, 对逻辑回归模型来说,应该并不涉及batch_sizeepoch的调整

逻辑回归是一种基本的分类算法,其训练过程不涉及批量训练和迭代次数。逻辑回归是通过解析解(闭式解)直接计算得到的,而不是通过梯度下降等迭代方法进行优化。简单地说,逻辑回归是一个线性模型,其参数可以通过数学公式直接得到,不需要设置batch_sizeepoch

工作原理

模型

逻辑回归模型的基本形式是一个线性回归模型,但是它的输出是通过一个逻辑函数(或称为sigmoid函数)进行转换的。这个函数可以将任何实数映射到0和1之间,使得它可以用来表示概率。模型的形式通常表示为:

logit(p)=ln(p1p)=b0+b1Xlogit(p) = ln(\frac{p}{1-p}) = b_0 + b_1*X

其中,pp 是我们想要预测的二元目标变量的概率,XX 是输入变量,b0b_0b1b_1 是模型参数。

估计参数

逻辑回归模型的参数通常使用最大似然估计法进行估计。这种方法的目标是找到一组参数值,使得在给定这些参数的情况下,我们观察到的数据出现的概率最大。

一旦模型的参数被估计出来,我们就可以使用这个模型来对新的数据进行预测。我们将新的数据输入到模型中,模型会输出一个介于0和1之间的值。这个值可以被解释为目标变量为1的概率。通常会设定一个阈值(如0.5),当模型输出的概率大于这个阈值时,我们就预测目标变量为1,否则我们预测目标变量为0。

为什么SGD需要设置batch_sizeepoch?

对于需要使用梯度下降等迭代方法进行优化的模型,如深度学习模型,需要设置batch_sizeepoch等参数。这是因为深度学习模型通常由大量的参数组成,通过梯度下降等优化算法来不断调整这些参数,使得模型能够更好地拟合训练数据。

在梯度下降的过程中,模型会根据设置的

  • batch_size来决定每次迭代中使用多少个样本来更新参数。
  • epoch表示训练数据将被用于训练多少次,每个epoch会遍历整个训练数据集一次。

batch_sizeepoch在深度学习中是重要的超参数,可以影响模型的训练速度和性能。但至于到底怎样设置batch_size和epoch, 只能进行实验和调整来找到最佳的参数组合.