Sm1les 7 年之前
當前提交
61fdadade9
共有 6 個文件被更改,包括 124 次插入0 次删除
  1. 4 0
      Chapter1/README.md
  2. 3 0
      Chapter2/README.md
  3. 36 0
      Chapter2/chapter2.md
  4. 二進制
      Chapter2/resources/images/lrank.png
  5. 81 0
      README.md
  6. 二進制
      plugin/chrome-extensions/MathJax-Plugin-for-Github_v0.2.4.crx

+ 4 - 0
Chapter1/README.md

@@ -0,0 +1,4 @@
+# 第1章 绪论
+## 主要贡献者:
+- 待认领
+

+ 3 - 0
Chapter2/README.md

@@ -0,0 +1,3 @@
+# 第2章 模型评估
+## 主要贡献者:
+- [Sm1les](https://github.com/Sm1les)

+ 36 - 0
Chapter2/chapter2.md

@@ -0,0 +1,36 @@
+### 2.20
+
+$$ AUC=\cfrac{1}{2}\sum\_{i=1}^{m-1}(x\_{i+1} - x\_i)\cdot(y\_i + y\_{i+1}) $$
+
+由于图2.4(b)中给出的ROC曲线为横平竖直的标准折线,所以乍一看这个式子的时候很不理解其中的$ \cfrac{1}{2} $和$ (y\_i + y\_{i+1}) $代表着什么,因为对于横平竖直的标准折线用$ AUC=\sum\_{i=1}^{m-1}(x\_{i+1} - x\_i) \cdot y\_i $就可以求出AUC了,但是图2.4(b)中的ROC曲线只是个特例罢了,因为此图是所有样例的预测值均不相同时的情形,也就是说每次分类阈值变化的时候只会划分新增**1个**样例为正例,所以下一个点的坐标为$ (x+\cfrac{1}{m^-},y) $或$ (x,y+\cfrac{1}{m^+}) $,然而当模型对某个正样例和某个反样例给出的预测值相同时,便会划分新增**两个**样例为正例,于是其中一个分类正确一个分类错误,那么下一个点的坐标为$ (x+\cfrac{1}{m^-},y+\cfrac{1}{m^+}) $(当没有预测值相同的样例时,若采取按固定梯度改变分类阈值,也会出现一下划分新增两个甚至多个正例的情形,但是此种阈值选取方案画出的ROC曲线AUC值更小,不建议使用),此时ROC曲线中便会出现斜线,而不再是只有横平竖直的折线,所以用**梯形面积公式**就能完美兼容这两种分类阈值选取方案,也即 **(上底+下底)\*高\*$ \cfrac{1}{2} $**
+
+### 2.21
+
+$$ l\_{rank}=\cfrac{1}{m^+m^-}\sum\_{x^+ \in D^+}\sum\_{x^- \in D^-}(||(f(x^+)<f(x^-))+\cfrac{1}{2}||(f(x^+)=f(x^-))) $$
+
+此公式正如书上所说,$ l\_{rank} $为ROC曲线**之上**的面积,假设某ROC曲线如下图所示:
+
+![avatar](resources/images/lrank.png)
+
+观察ROC曲线易知:
+- 每增加一条绿色线段对应着有**1个**正样例($ x^+\_i $)被模型正确判别为正例,且该线段在Y轴的投影长度恒为$ \cfrac{1}{m^+} $;
+- 每增加一条红色线段对应着有**1个**反样例($ x^-\_i $)被模型错误判别为正例,且该线段在X轴的投影长度恒为$ \cfrac{1}{m^-} $;
+- 每增加一条蓝色线段对应着有a个正样例和b个反样例**同时**被判别为正例,且该线段在X轴上的投影长度=$ b * \cfrac{1}{m^-} $,在Y轴上的投影长度=$ a * \cfrac{1}{m^+} $;
+- 任何一条线段所对应的样例的预测值一定**小于**其左边和下边的线段所对应的样例的预测值,其中蓝色线段所对应的a+b个样例的预测值相等。
+
+公式里的$ \sum\_{x^+ \in D^+} $可以看成一个遍历$ x^+\_i $的循环:
+
+for $ x^+\_i $ in $ D^+ $:
+
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$ \cfrac{1}{m^+}\cdot\cfrac{1}{m^-}\cdot\sum\_{x^- \in D^-}(||(f(x^+\_i)<f(x^-))+\cfrac{1}{2}||(f(x^+\_i)=f(x^-))) $ #记为式S
+
+由于每个$ x^+\_i $都对应着一条绿色或蓝色线段,所以遍历$ x^+\_i $可以看成是在遍历每条绿色和蓝色线段,并用式S来求出每条绿色线段与Y轴构成的面积(例如上图中的m1)或者蓝色线段与Y轴构成的面积(例如上图中的m2+m3)。
+
+**对于每条绿色线段:** 将其式S展开可得:
+$$ \cfrac{1}{m^+}\cdot\cfrac{1}{m^-}\cdot\sum\_{x^- \in D^-}||(f(x^+\_i)<f(x^-))+\cfrac{1}{m^+}\cdot\cfrac{1}{m^-}\cdot\sum\_{x^- \in D^-}\cfrac{1}{2}||(f(x^+\_i)=f(x^-)) $$其中$ x^+\_i $此时恒为该线段所对应的正样例,是一个定值。$ \sum\_{x^- \in D^-}\cfrac{1}{2}||(f(x^+\_i)=f(x^-) $是在通过遍历所有反样例来统计和$ x^+\_i $的预测值相等的反样例个数,由于没有反样例的预测值和$ x^+\_i $的预测值相等,所以$ \sum\_{x^- \in D^-}\cfrac{1}{2}||(f(x^+\_i)=f(x^-)) $此时恒为0,于是其式S可以化简为:$$ \cfrac{1}{m^+}\cdot\cfrac{1}{m^-}\cdot\sum\_{x^- \in D^-}||(f(x^+\_i)<f(x^-)) $$其中$ \cfrac{1}{m^+} $为该线段在Y轴上的投影长度,$ \sum\_{x^- \in D^-}||(f(x^+\_i)<f(x^-)) $同理是在通过遍历所有反样例来统计预测值大于$ x^+\_i $的预测值的反样例个数,也即该线段左边和下边的红色线段个数+蓝色线段对应的反样例个数,所以$ \cfrac{1}{m^-}\cdot\sum\_{x^- \in D^-}(||(f(x^+)<f(x^-))) $便是该线段左边和下边的红色线段在X轴的投影长度+蓝色线段在X轴的投影长度,也就是该绿色线段在X轴的投影长度,观察ROC图像易知绿色线段与Y轴围成的面积=该线段在Y轴的投影长度 * 该线段在X轴的投影长度。
+
+**对于每条蓝色线段:** 将其式S展开可得:
+$$ \cfrac{1}{m^+}\cdot\cfrac{1}{m^-}\cdot\sum\_{x^- \in D^-}||(f(x^+\_i)<f(x^-))+\cfrac{1}{m^+}\cdot\cfrac{1}{m^-}\cdot\sum\_{x^- \in D^-}\cfrac{1}{2}||(f(x^+\_i)=f(x^-)) $$
+其中前半部分表示的是蓝色线段和Y轴围成的图形里面矩形部分的面积,后半部分表示的便是剩下的三角形的面积,矩形部分的面积公式同绿色线段的面积公式一样很好理解,而三角形部分的面积公式里面的$ \cfrac{1}{m^+} $为底边长,$ \cfrac{1}{m^-}\cdot\sum\_{x^- \in D^-}||(f(x^+\_i)=f(x^-)) $为高。
+
+综上分析可知,式S既可以用来求绿色线段与Y轴构成的面积也能求蓝色线段与Y轴构成的面积,所以遍历完所有绿色和蓝色线段并将其与Y轴构成的面积累加起来即得$ l\_{rank} $。

二進制
Chapter2/resources/images/lrank.png


+ 81 - 0
README.md

@@ -0,0 +1,81 @@
+<center><h1>南瓜书PumpkinBook</h1></center>
+<center><img src="https://img1.doubanio.com/view/subject/l/public/s28735609.jpg" width = "476.7" height = "555.3"></center>
+
+> 原书:[周志华. 机器学习. 清华大学出版社, 2016.](https://book.douban.com/subject/26708119/)
+>
+> 贡献者: Datawhale成员
+>
+> 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远。
+
+---
+
+## 目录
+
+- 第1章 [绪论](https://github.com/Datawhale18/pumpkin-book/Chapter1/chapter1.md)
+- 第2章 [模型评估与选择](https://github.com/Datawhale18/pumpkin-book/Chapter2/chapter2.md)
+
+
+
+---
+## 在线阅读方式
+
+由于目前Github暂不支持在`Markdown`中嵌入`LaTeX`公式,所以在线阅读时需要用
+Chrome浏览器+[MathJax Plugin for Github扩展](https://chrome.google.com/webstore/detail/mathjax-plugin-for-github/ioemnmodlmafdkllaclgeombjnmnbima)的方式才能看到公式,扩展离线安装包参见`plugin/chrome-extensions/MathJax-Plugin-for-Github_v0.2.4.crx`
+
+---
+
+##  协作规范
+### 文档规范:
+文档采用`Markdown`语法编写,数学公式采用`LaTeX`语法编写,参考资料如下:
+
+|          | 格式     | 参考资料                                                     |
+| :------: | :------- | :----------------------------------------------------------- |
+| 文档 | Markdown | 1. CSDN Markdown 使用教程 http://t.cn/E4699cO<br>2. 简书 Markdown 使用教程 https://www.jianshu.com/p/q81RER<br>3. 编辑软件推荐 Typora https://typora.io/ |
+| 数学公式 | LaTeX    | 1. CSDN Latex语法编写数学公式 http://t.cn/E469pdI<br>2.Latex 在线编辑工具 http://latex.codecogs.com/eqneditor/editor.php |
+
+
+### 目录结构规范:
+
+```
+pumpkin-book
+├─Chapter1  # 第一章
+│  ├─resources  # 资源文件夹
+|  |  └─images  # 图片资源
+|  ├─chapter1.md  # 第一章公式全解
+|  └─README.md  # 章节说明
+└─chapter2
+```
+
+## 准备·基础工作
+
+1. [大纲梳理] 西瓜书输出一个目录  [@spareribs](https://github.com/spareribs) 
+
+   参考 [《统计学习方法》](https://github.com/WenDesi/lihang_book_algorithm) 和 [《Python 数据分析与挖掘实战 》](https://github.com/apachecn/python_data_analysis_and_mining_action) 制作《南瓜书》大纲
+
+2. [推导示例] 简单输出一个推导的 [demo](https://github.com/Datawhale18/pumpkin-book/blob/master/chapter2/part3/2.20-2.21.md) 提供参考  [@Sm1les](https://github.com/Sm1les) 
+
+3. [文档规范] 输出推导过程《公式命名》规范文档  #TODO
+
+4. [文档规范] 输出《推导文档》的规范  #TODO
+
+
+
+## 展望·未来计划
+
+1. 2018.12.21 输出demo【done】
+2. 2018.12.22 输出南瓜书目录
+3. 2018.12.24 ~ 2019.01.06 内部 《南瓜书推导实践》- 第0期 试行
+4. 【等待第3点结果再决定】观察效果分组 开展《南瓜书推导实践》让更多人加入进来完善计划
+
+
+备用方案:
+
+1. jupyer notebook
+2. Github Pages
+
+## 关注我们
+
+<div align=center><img src="https://img-blog.csdnimg.cn/20181219162146245.png" width = "250" height = "270"></div>
+
+
+

二進制
plugin/chrome-extensions/MathJax-Plugin-for-Github_v0.2.4.crx