没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
用 Python 开始机器学习(1:配置 windows 平台)
分类: 机器学习 2014-11-13 19:07 1408 人阅读 评论(1) 收藏 举报
使用机器学习的开发工具很多,如 Matlab,R 语言,Python 等等。
本系列文章不会涉及深入的机器学习原理,旨在让你迅速上手,入门 Python 进行机器学
习。
本文提供一系列资源,教你打造一个 Python 机器学习的平台。
1、下载资源
Python
本文以 Python 3.4 为例。当然你可以使用老版本。
老版本的一个优势是扩展库比较多。
链接:https://www.python.org/
下面是 Python 的扩展库。扩展库必须与使用的 Python 版本相对应。
这里给出一个神地址,能快速下载到下面需要的,各种平台、各种 python 版本的扩展库。
http://www.lfd.uci.edu/~gohlke/pythonlibs/
numpy:用于处理大规模多维数据。
scipy:数学库。
scikit-learn:机器学习库。
matplotlib:可视化数据神器。文档和示例地址:http://matplotlib.org/gallery.html
上面的安装文件如果是 exe,会自动帮你拷贝到 python 目录。否则你需要自己拷贝到
python3.4.2\Lib\site-packages 下。
2、测试库
在 python 中使用类似“import matplotlib”的方式来查看库的安装是否正确。提示缺少什么
库,就去上面的神地址里搜索,下载安装。
这几个库装完后,可能会有部分依赖库需要单独安装:
six、nose、pyparsing、dateutil。
如果出现类似 six 版本低于 1.3 之类的提示,你可能需要找到 site-packages 下的 six.py 拷
贝到 site-packages 目录下替换老的。
3、其他资源推荐
Python 教程:
http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac927076
2a000
sci-learn 教程:http://scikit-learn.org/stable/
windows 下 Python 的 IDE 选择:http://blog.csdn.net/cserchen/article/details/7036435
经典 Python 机器学习入门书籍《机器学习系统设计》的源码和数据:
https://github.com/luispedro/BuildingMachineLearningSystemsWithPython/tree/master/ch
02
用 Python 开始机器学习(2:决策树分类算法)
分类: 机器学习 2014-11-18 01:05 3001 人阅读 评论(2) 收藏 举报
目录(?)[+]
从这一章开始进入正式的算法学习。
首先我们学习经典而有效的分类算法:决策树分类算法。
1、决策树算法
决策树用树形结构对样本的属性进行分类,是最直观的分类算法,而且也可以用于回归。
不过对于一些特殊的逻辑分类会有困难。典型的如异或(XOR)逻辑,决策树并不擅长解
决此类问题。
决策树的构建不是唯一的,遗憾的是最优决策树的构建属于 NP 问题。因此如何构建一棵
好的决策树是研究的重点。
J. Ross Quinlan 在 1975 提出将信息熵的概念引入决策树的构建,这就是鼎鼎大名的 ID3
算法。后续的 C4.5, C5.0, CART 等都是该方法的改进。
熵就是“无序,混乱”的程度。刚接触这个概念可能会有些迷惑。想快速了解如何用信息熵
增益划分属性,可以参考这位兄弟的文章:
http://blog.csdn.net/alvine008/article/details/37760639
如果还不理解,请看下面这个例子。
假设要构建这么一个自动选好苹果的决策树,简单起见,我只让他学习下面这 4 个样本:
[plain] view plaincopy
1. 样本 红 大 好苹果
2. 0 1 1 1
3. 1 1 0 1
4. 2 0 1 0
5. 3 0 0 0
样本中有 2 个属性,A0 表示是否红苹果。A1 表示是否大苹果。
那么这个样本在分类前的信息熵就是 S = -(1/2 * log(1/2) + 1/2 * log(1/2)) = 1。
信息熵为 1 表示当前处于最混乱,最无序的状态。
本例仅 2 个属性。那么很自然一共就只可能有 2 棵决策树,如下图所示:
显然左边先使用 A0(红色)做划分依据的决策树要优于右边用 A1(大小)做划分依据的
决策树。
当然这是直觉的认知。定量的考察,则需要计算每种划分情况的信息熵增益。
先选 A0 作划分,各子节点信息熵计算如下:
0,1 叶子节点有 2 个正例,0 个负例。信息熵为:e1 = -(2/2 * log(2/2) + 0/2 * log(0/2)) =
0。
2,3 叶子节点有 0 个正例,2 个负例。信息熵为:e2 = -(0/2 * log(0/2) + 2/2 * log(2/2)) =
0。
因此选择 A0 划分后的信息熵为每个子节点的信息熵所占比重的加权和:E = e1*2/4 +
e2*2/4 = 0。
选择 A0 做划分的信息熵增益 G(S, A0)=S - E = 1 - 0 = 1.
事实上,决策树叶子节点表示已经都属于相同类别,因此信息熵一定为 0。
同样的,如果先选 A1 作划分,各子节点信息熵计算如下:
0,2 子节点有 1 个正例,1 个负例。信息熵为:e1 = -(1/2 * log(1/2) + 1/2 * log(1/2)) =
1。
1,3 子节点有 1 个正例,1 个负例。信息熵为:e2 = -(1/2 * log(1/2) + 1/2 * log(1/2)) =
1。
因此选择 A1 划分后的信息熵为每个子节点的信息熵所占比重的加权和:E = e1*2/4 +
e2*2/4 = 1。也就是说分了跟没分一样!
选择 A1 做划分的信息熵增益 G(S, A1)=S - E = 1 - 1 = 0.
因此,每次划分之前,我们只需要计算出信息熵增益最大的那种划分即可。
2、数据集
为方便讲解与理解,我们使用如下一个极其简单的测试数据集:
[plain] view plaincopy
1. 1.5 50 thin
2. 1.5 60 fat
3. 1.6 40 thin
4. 1.6 60 fat
5. 1.7 60 thin
6. 1.7 80 fat
7. 1.8 60 thin
8. 1.8 90 fat
9. 1.9 70 thin
10. 1.9 80 fat
这个数据一共有 10 个样本,每个样本有 2 个属性,分别为身高和体重,第三列为类别标签,
表示“胖”或“瘦”。该数据保存在 1.txt 中。
我们的任务就是训练一个决策树分类器,输入身高和体重,分类器能给出这个人是胖子还
是瘦子。
(数据是作者主观臆断,具有一定逻辑性,但请无视其合理性)
决策树对于“是非”的二值逻辑的分枝相当自然。而在本数据集中,身高与体重是连续值怎
么办呢?
虽然麻烦一点,不过这也不是问题,只需要找到将这些连续值划分为不同区间的中间点,
就转换成了二值逻辑问题。
剩余58页未读,继续阅读
罗小熙
- 粉丝: 16
- 资源: 319
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0