HiJ's notebook

让hexo支持LaTex的方法

字数统计: 929阅读时长: 3 min
2019/03/19 Share

让hexo支持LaTex公式渲染

让hexo支持LaTex

  1. 进入hexo 文件夹运行:
  • 1
    $ npm install hexo-renderer-mathjax --save


  1. 修改下面文件中的两处

    ../node_modules/marked/lib/marked.js

  • 1
    escape: /^\\([\\`*{}\[\]()#+\-.!_>])/,

    改为:

    1
    escape: /^\\([`*\[\]()# +\-.!_>])/,


  • 1
    em: /^_([^\s_](?:[^_]|__)+?[^\s_])_\b|^\*((?:\*\*|[^*])+?)\*(?!\*)/,

    改为:

    1
    em: /^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,


  1. 这个时候如果用http协议已经可以支持LaTex了,但是有一个问题是当我使用https协议的时候公式又没有渲染出来。按F12键调试发现,mathjax的有个资源是http协议的,直接被浏览器block了。所以还要在改一下:打开下面的文件

    ../node_modules/hexo-renderer-mathjax/mathjax.html

    将其中的<script>标签修改为:

  • 1
    <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_CHTML"></script>


  1. 最后运行
  • 1
    2
    3
    hexo clean
    hexo g
    hexo d

以下为LaTex公式渲染测试:

.

决策树

  • 例题:

    • 李航p62,ID3
  1. 决策树是一种树型结构,其中每个结点表示在一个属性上的测试,每个分支代表一个测试输出,每个叶结点代表一种类别。决策树学习采用自顶向下的递归方法,其基本思想是以信息熵为度量,构造一棵熵值下降最快的树,到叶子结点处的熵值为0,此时每个叶结点中的样例均属于同一个类。

  2. 特征选择->决策树生成-> 决策树剪枝

  3. 信息量: $I(x)=-\log p(x)$

  4. 熵:$H(D)=-\sum_{x \epsilon D}p(x)\log p(x)$

  5. 经验熵(系统熵): $H(D)=-\sum_{k=1} ^Kp_k\log p_k=-\sum_{k=1}^K\frac{|C_k|}{|D|}\log\frac{|C_k|}{|D|}$

  6. 经验条件熵:
    $$H(D|at)=\sum_{i=1}^np_iH(D_i)=-\sum_{i=1}^n\frac{|D_i|}{D}\sum_{k=1}^K\frac{|D_{ik}|}{D_i}\log\frac{|D_ik|}{|D_i|}$$

  7. 信息增益: $G(D,at)=H(D)-H(D|at)$

  8. 信息增益率: $G_r(D,at)=\frac{G(D,at)}{IV(at)}$

  9. 基尼指数:

    $Gini(D)=\sum_{k=1}^Kp_k(1-p_k)=1-\sum_{k=1}^K(\frac{|C_k|}{|D|})^2$

    $Gini(D,at)=\sum_{i=1}^V\frac{|D_i|}{|D|}Gini(D_i)$


  • ID3算法

    划分属性: $at^*=\arg\max_{at}{G(D,at)}$

  • C4.5算法

    划分属性: 从高于平均信息增益的属性中选择具有最高增益率的属性

  • CART算法

    划分属性: $at^*=\arg\min_{at}{Gini(D,at)}$


  • 剪枝方法

    1. 误差估计$E_{estimate}=\frac {e+1}{n+m}$,n为到达节点的样例数,e为误分类样例,整棵树的错误率:$E_T=\frac{n_2}{m}E_2+\frac{n_5}{m}E_5$
    2. 准确率,用测试集的样例比较剪枝前后的分类准确率,提高则剪枝,否则就不进行剪枝
    • 预剪枝 在生成过程中,对每个节点在划分前先进行估算。若当前节点的划分不能带来决策树泛化能力的提升,则停止划分并将当前节点标记为叶节点。

      首先基于信息增益率法则选择属性t1对训练样例划分,产生t2,t5.接着测试集对决策树进行评估,若准确率高就划分,否则不划分。

    • 后剪枝 先从训练集生成一颗完整的决策树,然后用测试集判断,最底层非叶节点子树替换为叶节点,计算剪枝后的准确率,若提高,则剪枝,反之,则不进行剪枝

    • 剪枝方案选择: $D=E_{after}-E_{before}$ 选择最小的那个D方案

K近邻模型

  1. KNN三要素

    • k值选择
    • 距离度量方式:欧式
    • 分类决策规则:多数表决
  2. kd树:划分超平面,例题

  3. 加权最近邻:每个近邻点赋予一个权重,距离近的权重大一点,距离远的权重小一点。

    $w_i=\left\{\begin{matrix}
    \frac{d_k-d_i}{d_k-d_1}\quad if d_k\neq d_1\
    1\qquad d_k=d_1
    \end{matrix}\right.$

CATALOG
  1. 1. 让hexo支持LaTex
  2. 2. 以下为LaTex公式渲染测试:
    1. 2.0.0.1. 决策树
    2. 2.0.0.2. K近邻模型