From 6c2d2ac329fd71e29da8178b3d50bee10784cd7c Mon Sep 17 00:00:00 2001 From: jiangzhonglian Date: Wed, 15 Mar 2017 20:04:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=AE=8CAdaBoost=E7=9A=84?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E4=BB=A3=E7=A0=81=E5=92=8C=E6=A1=88=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/3.决策树.md | 2 +- docs/7.ROC曲线.png | Bin 0 -> 326384 bytes docs/7.代价函数.png | Bin 0 -> 133535 bytes docs/7.利用AdaBoost元算法提高分类.md | 17 ++ docs/7.过拟合.png | Bin 0 -> 157103 bytes src/python/07.AdaBoost/adaboost.py | 135 +++++++----- testData/AB_horseColicTest2.txt | 67 ++++++ testData/AB_horseColicTraining2.txt | 299 +++++++++++++++++++++++++++ 8 files changed, 466 insertions(+), 54 deletions(-) create mode 100644 docs/7.ROC曲线.png create mode 100644 docs/7.代价函数.png create mode 100644 docs/7.过拟合.png create mode 100755 testData/AB_horseColicTest2.txt create mode 100755 testData/AB_horseColicTraining2.txt diff --git a/docs/3.决策树.md b/docs/3.决策树.md index 65494b33..3d6e6ed7 100644 --- a/docs/3.决策树.md +++ b/docs/3.决策树.md @@ -24,4 +24,4 @@ * 基尼不纯度(Gini impurity) [本书不做过多的介绍] * 简单来说:就是从一个数据集中随机选取子项,度量其被错误分类到其他分组里的概率。 * 流程介绍图 -* ![决策树流程介绍图](./3.决策树流程介绍图.jpg) \ No newline at end of file +* ![决策树流程介绍图](./3.决策树流程介绍图.jpg) diff --git a/docs/7.ROC曲线.png b/docs/7.ROC曲线.png new file mode 100644 index 0000000000000000000000000000000000000000..3e404c8734c656f67fcbcff328c9b767216c49b9 GIT binary patch literal 326384 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