本篇为”理论和代码-逻辑回归-理论”的实现,和理论不完全一致,代码会有考虑L2正则化等,其中data位于lr_train.txt
tensorflow 版本, lr_tf.py
理论和代码-逻辑回归-理论
统一后续书写表示,下标表示样本特征向量的维度,上标表示样本的序号,例如$x_{i}$表示x的第i维,$x^{j}$表示第j个样本,$x_{i}^{j}$表示第j个样本的第i维
理论和代码-概率分类模型
步骤1:模型假设,如何选择模型;这里选概率模型,以二分类为例,$p(c_{1}|x)=\frac{p(x|c_{1}).p(c_{1})}{p(x|c_{1}).p(c_{1}) + p(x|c_{2}).p(c_{2})},$
$如果p(c_{1}|x) > 0.5, x\in c_{1} 否则x \in c_{2}$
机器学习中的数学-协方差矩阵
在之前的期望方差一文中提到过协方差,因为协方差矩阵在机器学习领域内出镜率很高,所以再展开阐述下。
协方差用于衡量两个变量的总体误差。以离散随机变量为例,
方差:$\sigma^{2}=\frac{\Sigma_{i=1}^{n}(x_{i}-\bar{x})^2}{n-1}$
协方差:$Cov(x, y)=\frac{\Sigma_{i=1}^{n}(x_{i}-\bar{x})(y_{i}-\bar{y})}{n-1}$
理论和代码-梯度下降的三种类型
可以有,训练数据n组,$(x^1, y^1), (x^2, y^2), …(x^n, y^n)$,其中,$x^n=[x_{1}^n, x_{2}^n, …, x_{k}^n]$,对应待求解参数$\theta=[\theta_{1}, \theta_{2},…, \theta_{k}]$,损失函数可以有$L=L(x,y;\theta)$,最优化问题转化为$\theta^{\star}=\arg {min(L(x,y;\theta))_\theta}$
为表示方便,另$g=\frac{\partial L(x,y;\theta)}{\partial{\theta}},\theta^t$表示第t轮迭代(一般讲,每轮迭代都是训练所有数据),其他情况类似
机器学习中的数学-softmax函数
假设一个数组Y,$y_{i}$是Y的第i个元素的值,该元素的softmax值为:$softmax(y_{i})=\frac{e^{y_{i}}}{\Sigma_{j=1}^{n}e^{y_{j}}}$