Sklearn解析之LogisticRegression
parameter
- penalty: str, ‘l1’ or ‘l2’, default: ‘l2’
凡事预则立,不预则废
在Jupyter中同时配置Python 2和Python 3环境
检查对应的虚拟环境(Python2和Python3)是否都已经安装成功,如没有的话请安装相应版本号,下面是管理包时常用的一些命令
检查版本号
1 | conda env list # check all python versions |
创建虚拟环境
1 | conda create -n Python3 Python=3.6 # Python3可以是自己自定义的名字 |
激活虚拟环境
1 | source activate Python3 # Windows中不需要`source` |
停止虚拟环境
1 | deactivate Python3 |
从硬盘删除虚拟环境
1 | conda remove -n Python3 --all |
还需要配置Python2
检查Python2对应的pip版本大于等于9.0
1 | python2 -m pip --version |
python2
指的是我们想设置的版本,如果电脑上对应多个版本的Python2,请选择对应的那个,后面的pip会根据Python2版本自动被确定下来,比如可使用/home/jiahong/anaconda2/envs/Python3.6/python
绝对路径来指定确定的Python版本python2 -m
是用于指定pip
版本的修饰,用于指明pip
的版本,所以上一步中的路径指定也可以直接直接pip的绝对路径安装方法1
1 | python2 -m pip install ipykernel |
安装方法2
1 | conda create -n ipykernel_py2 python=2 ipykernel |
1 | python3 -m pip install ipykernel |
Hexo 使用总结
在 _config.yml 中设置属性
1 | permalink: :title.html |
引用方式
1 | # 引用文档,以引用本文为例 |
1 | {% asset_img picture.png descreption %} |
1 | <script src="//cdn.bootcss.com/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script> |
1 | <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=default"></script> |
* 说明:
* 第一个头部可用,在各种浏览器均能正确加载
* 第二个涉及到https的安全性问题,在部署到GitHub时,某些浏览器上不能正确加载
1 | 公式如下:\\(\Large x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}\\)所示 |
公式如下:\(\Large x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}\)所示
1 | 公式如下:$$\Large x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}$$所示 |
公式如下:$$\Large x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}$$所示
公式等号对齐
公式如下:
1 | $$ |
$$
\begin{align}
Q(\theta, \theta^{i}) &= E_{Z}[logP(Y,Z|\theta)|Y,\theta^{i}] \\
&= E_{Z\sim P(Z|Y,\theta^{i})}[logP(Y,Z|\theta)] \\
&= \sum_{Z} P(Z|Y,\theta^{i})logP(Y,Z|\theta) \\
&= \sum_{Z} logP(Y,Z|\theta)P(Z|Y,\theta^{i})
\end{align}
$$
1 | # <img src="http://chart.googleapis.com/chart?cht=tx&chl=Latex公式" style="border:none;"> |
1 | <img src="http://www.forkosh.com/mathtex.cgi? Latex公式"> |
LaTex使用笔记
LaTex公式等号对齐
1 | $$ |
\\
表示换行&
表示每一行的对齐点\\\\
才对应\\
,因为\
在Markdown文档中是转义字符$$
\begin{align}
L(x)&=U(x) \\
&=N(x) \\
&=M(x)
\end{align}
$$
LaTex | 符号 |
---|---|
\partial | \(\partial\) |
\nabla | \(\nabla\) |
\infty | \(\infty\) |
\int | \(\int\) |
\iint | \(\iint\) |
\iiint | \(\iiint\) |
\oint | \(\oint\) |
\triangle | \(\triangle\) |
\bigtriangledown | \(\bigtriangledown\) |
\triangleleft | \(\triangleleft\) |
\triangleright | \(\triangleright\) |
\circ | \(\circ\) |
\odot | \(\odot\) |
\otimes | \(\otimes\) |
公式空格
LaTex | 空格效果 |
---|---|
a\qquad b | \(a\qquad b\) |
a\quad b | \(a\quad b\) |
a\ b | \(a\ b\) |
a; b | \(a; b\) |
a, b | \(a, b\) |
ab | \(ab\) |
a!b | \(a!b\) |
公式后面你加上序号
1 | $$y(x) = x^{2} \tag{1}$$ |
$$y(x) = x^{2} \tag{1}$$
1 | $$f(x)= |
$$f(x)=
\begin{cases}
0& \text{x=0}\\
1& \text{x!=0}
\end{cases}$$
1 | $$j^{\star}=\mathop{\arg \max}_{j}f(j)$$ |
$$j^{\star}=\mathop{\arg \max}_{j}f(j)$$
1 | $$j^{\star}=\underset{j}{\arg \max}f(j)$$ |
$$j^{\star}=\underset{j}{\arg \max}f(j)$$
文本适用于anaconda,miniforge等包含conda的所有软件
./envs
目录下,按照虚拟环境名称命名pip
lib/python3.10/site-package
pip show [package_name]
判断which python
的结果一致,如果有问题可以修改到指定目录(特别是手动迁移conda管理的虚拟环境时)envs
文件下下的指定环境目录即可,迁移后记得修改pip/pip3
文件对应的第一行路径Anaconda安装和使用
检查conda版本
1 | conda --version |
升级版本
1 | conda update conda |
创建环境
1 | conda create --name your_env_name python=3.6 |
激活环境
1 | source activate your_env_name # On Windows, remove the word 'source' |
列出所有环境
1 | conda info --envs |
退出当前环境
1 | source deactivate # On Windows, remove the word 'source' |
复制一个环境
1 | conda create -n new_env_name --clone old_env_name |
删除环境
1 | conda remove -n your_env_name |
查看已经安装的包
1 | conda list |
向指定环境中安装包
1 | conda install --name your_env_name package |
--name
参数,package默认安装到当前环境中--name
参数安装conda和pip对包的管理有什么区别?
管理工具 | conda | pip |
---|---|---|
使用环境 | conda环境 | 任意平台 |
包语言 | 任意语言 | Python语言 |
conda
安装包
1 | # 从虚拟环境 your_env_name 中安装 packge_name包 |
删除包
1 | # 在虚拟环境 your_env_name 中删除 package_name包 |
pip
安装包
1 | # 安装包到默认路径 |
卸载包
1 | # 删除包 |
查看已经安装的包
1 | # 列出所有包 |
升级包
1 | pip install --upgrade package_name |
关于conda 命令更多详情参考Anaconda——安装和常用命令
np.inner(w,x)
即可求解能够正确划分训练数据集并且几何间隔最大的分类超平面(分离超平面)
定义约束优化问题:
$$
\begin{align}
&\max_{w,b} \quad \gamma \\
&s.t. \quad y_{i} (\frac{w}{||w||}\cdot x_{i} + \frac{b}{||w||}) \geq \gamma, i = 1,2,\dots,N
\end{align}
$$
将\(\gamma = \frac{\hat{\gamma}}{||w||}\)带入并在条件中消去分母上的\(||w||\),得
$$
\begin{align}
&\max_{w,b} \quad\frac{\hat{\gamma}}{||w||} \\
&s.t.\quad y_{i} (w\cdot x_{i} + b) \geq \hat{\gamma}, i = 1,2,\dots,N
\end{align}
$$
上面的式子中,函数间隔\(\hat{\gamma}\)的值不影响最优化问题的解,于是我们设置\(\hat{\gamma}=1\)
进一步分析,由于最大化\(\frac{1}{||w||}\)与最小化\(\frac{1}{2}||w||^{2}\)等价(这里\(w\)为行向量时,\(||w||^{2} = ww^{T}\)), 最优化问题可等价表示为:
$$
\begin{align}
&\min_{w,b}\quad \frac{1}{2}||w||^{2} \\
&s.t.\quad y_{i} (w\cdot x_{i} + b) \geq 1, i = 1,2,\dots,N
\end{align}
$$
$$
\begin{align}
\min_{w,b}L(w,b,\alpha) &= \frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_{i}\alpha_{j}y_{i}y_{j}(x_{i}\cdot x_{j}) + \sum_{i=1}^{N}\alpha_{i}(1-y_{i}(\left [\sum_{j=1}^{N}\alpha_{j}y_{j}x_{j}\right]\cdot x_{i} + b)) \\
&= \frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_{i}\alpha_{j}y_{i}y_{j}(x_{i}\cdot x_{j}) - \sum_{i=1}^{N}\alpha_{i}y_{i}\left [\sum_{j=1}^{N}\alpha_{j}y_{j}x_{j}\right]\cdot x_{i} + \sum_{i=1}^{N}\alpha_{i}y_{i}b + \sum_{i=1}^{N}\alpha_{i}\\
&= \frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_{i}\alpha_{j}y_{i}y_{j}(x_{i}\cdot x_{j}) - \sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_{i}y_{i}\alpha_{j}y_{j}(x_{j}\cdot x_{i}) + \sum_{i=1}^{N}\alpha_{i}y_{i}b + \sum_{i=1}^{N}\alpha_{i}\\
&= -\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_{i}\alpha_{j}y_{i}y_{j}(x_{i}\cdot x_{j}) + 0 + \sum_{i=1}^{N}\alpha_{i}\\
&= -\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_{i}\alpha_{j}y_{i}y_{j}(x_{i}\cdot x_{j}) + \sum_{i=1}^{N}\alpha_{i}
\end{align}
$$
上面的\(\min_{w,b}L(w,b,\alpha)\)对\(\alpha\)求极大值有:
$$
\begin{align}
\max_{\alpha} \quad &-\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_{i}\alpha_{j}y_{i}y_{j}(x_{i}\cdot x_{j}) + \sum_{i=1}^{N}\alpha_{i} \\
s.t. \quad &\sum_{i=1}^{N}\alpha_{i}y_{i} = 0 \\
\quad &\alpha_{i} \geq 0, i = 1,2,\dots,N
\end{align}
$$
转换为一般优化问题
$$
\begin{align}
\min_{\alpha} \quad &\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_{i}\alpha_{j}y_{i}y_{j}(x_{i}\cdot x_{j}) - \sum_{i=1}^{N}\alpha_{i} \\
s.t. \quad &\sum_{i=1}^{N}\alpha_{i}y_{i} = 0 \\
\quad &-\alpha_{i} \leq 0, i = 1,2,\dots,N
\end{align}
$$
假设上面的式子能够求得\(\alpha\)的解为:
$$
\begin{align}
\alpha^{\star} = (\alpha_{1}^{\star}, \alpha_{2}^{\star},\dots, \alpha_{N}^{\star})
\end{align}
$$
根据拉格朗日对偶问题与原始问题的解对应的条件,Math——凸优化问题和拉格朗日对偶性,如果上面的式子中存在下标\(j\),满足\(-\alpha_{j}^{\star} < 0\),即满足:
$$\exists j \quad \alpha_{j}^{\star} > 0$$
那么最终可求得:
$$
\begin{align}
&w^{\star} = \sum_{i=1}^{N}\alpha_{i}^{\star}y_{i}x_{i} \\
\end{align}
$$
\(b^{\star}\)的表达式由\(\alpha_{j}^{\star} > 0\),和KKT条件\(\alpha_{j}^{\star}(y_{j}(w^{\star}\cdot x_{j} + b^{\star})-1) = 0\)可解得:
$$
\begin{align}
y_{j}(w^{\star}\cdot x_{j} + b^{\star})-1 = 0 \\
\end{align}
$$
注意到\(y_{j}\in \{-1, 1\}\), 所以\(y_{j}^{2}=1\)
$$
\begin{align}
y_{j}^{2}(w^{\star}\cdot x_{j} + b^{\star})-y_{j} = 0 \\
w^{\star}\cdot x_{j} + b^{\star} = y_{j} \\
\end{align}
$$
所以有
$$
\begin{align}
b^{\star} &= y_{j} - w^{\star}\cdot x_{j} \\
&= y_{j} - \sum_{i=1}^{N}\alpha_{i}^{\star}y_{i}(x_{i}\cdot x_{j})
\end{align}
$$
综合\(w^{\star}\)和\(b^{\star}\)的表达式,我们有分类超平面为:
$$
\begin{align}
w^{\star}x + b^{\star} &= 0 \\
\sum_{i=1}^{N}\alpha_{i}^{\star}y_{i}(x_{i}\cdot x) + b^{\star} &= 0
\end{align}
$$
分类决策函数为:
$$
\begin{align}
f(x) &= sign(w^{\star}x + b^{\star}) \\
f(x) &= sign\left (\sum_{i=1}^{N}\alpha_{i}^{\star}y_{i}(x_{i}\cdot x) + b^{\star}\right )
\end{align}
$$
是必要的