逻辑回归

1.算法总体 逻辑回归通过将线性回归的输出映射到概率空间来预测事件发生给概率: $$ P(y=1|x;\theta)=h_{\theta}(x)=\frac{1}{1+e^{-\theta^Tx}} $$ 该公式表示:在模型参数为$\theta$,输入特征值为$x$的情况下,分类标签$y=1$的概率为$h_{\theta}(x)$。 该模型一次推理的伪代码大致如下: 算法:LogisticForward 输入:特征值$x$ 参数:向量$\theta$ 输出:数据为正类别的概率值$P(y=1|x;\theta)$ 计算线性组合$z = \theta^T x$ 应用Sigmoid函数:$p=\sigma(z)=1/(1+e^{-z})$ 分类决策:若$p\leq 0.5$,则$\hat{y}=1$,否则$\hat{y}=0$ 返回$\hat{y}$ 该模型通过梯度下降的训练过程伪代码大致如下: 算法:LogisticTrainWithGD 输入:训练集$(X, y)$,其中$X\in \mathbb{R}^{m\times n}$ 超参数:学习率$\alpha$,迭代次数$T$ 输出:参数向量$\theta$ 初始化参数$\theta$ # 初始化可以全0,也可以正态分布随机初始化等方法 对于$t=1$到$T$: 1. 初始化梯度$g\leftarrow 0$ 2. 对于$i=1$到$m$: 1. $p_i \leftarrow$ LogisticForward($x_i$, $\theta$) 2. $g \leftarrow g+(p_i-y_i)\cdot x_i$ # 计算新梯度 3. 更新参数:$\theta \leftarrow \theta - \frac{\alpha}{m}\cdot g$ # 梯度下降更新,详见目标函数部分 返回$\theta$ 要使用其他方法更新,用对应的公式替代计算梯度和更新参数的两个步骤即可 实践过程中通常表现为直接修改对应物理地址的值,而非返回值 2.目标函数 2.1 目标函数公式 给定训练数据$(x_i, y_i)$,目标函数为: $$ J(\theta)=-\frac{1}{m}\sum_{i=1}^m[y_ilog(h_{\theta}(x_i))+(1-y_i)log(1-h_{\theta}(x_i))] $$ 其中$h_{\theta}$是Sigmoid函数: ...

2025年12月9日 · 4 分钟

线性回归

该笔记参考自如下内容:1) 教授Olga Vitek的课堂讲义;2)Pattern Recognition and Machine Learning - Christopher M. Bishop 1 预备知识 1.1 概率分布和样本 统计机器学习中,我们通常划分两个层面来讨论方法: 概率分布 层面 样本/数据 层面 “概率分布”是一个我们假设存在的一个抽象的分布,其描述了随机变量的行为规律。而样本/数据,则是“概率分布”的一次采样,或者“生成”结果。例如: 在鸢尾花数据集中,假设我们希望判定一个花朵是不是 $ \texttt{virginica} $ ,我们可以抽象地认为,每一朵花的特征向量 $ X $ 都是从某个潜在概率分布 $ p(X|Y=\texttt{virginica}) $ 中采样得到的,或者是从中生成的。 如果我们有具体的数据 $ \{(x_1, y_1), (x_2, y_2), \cdots\} $ ,我们可以使用这些数据来推断概率分布所描述的“规则”,得到一个对概率分布的参数估计 如果我们有概率分布本身,我们就可以利用它抽样或者生成更多同类型数据,也可以计算某个样本属于该分布的概率(这一点可以在数据为人为地、根据某种规则生成时达到) 需要注意的是,通过推断,我们只能得到参数估计,而永远无法获得概率分布本身。 1.2 模型的类别 若以概率论角度来理解监督学习,那么我们的最终目标就是得到一个良好的条件概率分布 $ p(y|x) $ ,即在已有随机变量 $ x $ 的前提下,得到 $ y $ 的概率。 我们通常可以直接建模 $ p(y|x) $ ,但通过贝叶斯定理,我们还可以通过更底层的信息来推导出我们的目标。 $$ p(y|x) = \frac{p(x|y)p(y)}{p(x)} $$接下来将详细介绍两种建模思路 ...

7 分钟