前一天,我们基于sklearn科学库实现了ID3的决策树程序,本文将基于python自带库实现ID3决策树算法. 一.代码涉及基本知识 1. 为了绘图方便,引入了一个第三方treePlotter模块进行图形绘制.该模块使用方法简单,调用模块createPlot接口,传入一个树型结构对象,即可绘制出相应图像. 2.  在python中,如何定义一个树型结构对象 可以使用了python自带的字典数据类型来定义一个树型对象.例如下面代码,我们定义一个根节点和两个左右子节点: rootNode = {'…
K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一.该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别.谁和我隔得近,我就跟谁是一类,有点中国古语说的近墨者黑近朱者赤意思.KNN算法中,所选择的邻居都是已经正确分类的对象.该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别. KNN方法虽然从原理上也依赖于极限定理,但在类…
前面学习了决策树的算法原理,这里继续对代码进行深入学习,并掌握ID3的算法实践过程. ID3算法是一种贪心算法,用来构造决策树,ID3算法起源于概念学习系统(CLS),以信息熵的下降速度为选取测试属性的标准,即在每一个节点选取还尚未被用来划分的具有最高信息增益的属性作为划分标准,然后继续这个过程,直到生成的决策树能完美的分类训练样例. ID3算法的背景知识 ID3算法最早是由罗斯昆(J. Ross Quinlan)于1975年在悉尼大学提出的一种分类预测算法,算法的核心是“信息熵”.ID3算法通…
ID3决策树算法是基于信息增益来构建的,信息增益可以由训练集的信息熵算得,这里举一个简单的例子 data=[心情好 天气好  出门 心情好 天气不好 出门 心情不好 天气好 出门 心情不好 天气不好 不出门] 前面两列是分类属性,最后一列是分类 分类的信息熵可以计算得到:出门=3,不出门=1,总行数=4分类信息熵 = -(3/4)*log2(3/4)-(1/4)*log2(1/4) 第一列属性有两类,心情好,心情不好 心情好 ,出门=2,不出门=0,行数=2 心情好信息熵=-(2/2)*log2…
今天发现一个很有意思的功能,python自带了所有库的文档查看器,配置如下: 配置pydoc服务,cmd中输入如下代码: python –m pydoc –p 1234 回车后 ,使用过程中,该窗口不要关闭. 然后,在浏览器中输入网址:http://localhost:1234/ ,打开python自带的及集成的第三方库的api. 界面类似如下: 此工具对于察看第三方库的帮助文档非常方便…
分类是数据挖掘中十分重要的组成部分.分类作为一种无监督学习方式被广泛的使用. 之前关于"数据挖掘中十大经典算法"中,基于ID3核心思想的分类算法C4.5榜上有名.所以不难看出ID3在 数据分类中是多么的重要了. ID3又称为决策树算法,虽然现在广义的决策树算法不止ID3一种,但是由于ID3的重要性,习惯是还是把ID3 和决策树算法等价起来. 另外无监督学习方式我还要多说两句.无监督学习方式包括决策树算法,基于规则的分类,神经网络等.这些分 类方式是初始分类已知,将样本分为训练样本和测试…
深度神经网络算法,是基于神经网络算法的一种拓展,其层数更深,达到多层,本文以简单神经网络为例,利用梯度下降算法进行反向更新来训练神经网络权重和偏向参数,文章最后,基于Python 库实现了一个简单神经网络算法程序,并对异或运算和0-9字符集进行预测. 一.问题引入 利用如下图像结构,通过训练集对其参数进行训练,当有新的测试数据时,通过更新函数,获得正确的预测值,更新函数方程为: Oij = activation(sum(xi*wij)+bij) 图中为简单的两层神经网络结构,4,5对应的为隐藏层…
# -*- coding:utf-8 -*- from numpy import * import numpy as np import pandas as pd from math import log import operator #计算数据集的香农熵 def calcShannonEnt(dataSet): numEntries=len(dataSet) labelCounts={} #给所有可能分类创建字典 for featVec in dataSet: currentLabel=fe…
决策树算法是一种有监督的分类学习算法.利用经验数据建立最优分类树,再用分类树预测未知数据. 例子:利用学生上课与作业状态预测考试成绩. 上述例子包含两个可以观测的属性:上课是否认真,作业是否认真,并以此预测考试成绩.针对经验数据,我们可以建立两种分类树 两棵树都能对经验数据正确分类,实际上第二棵树更好,原因是什么呢?在此,我们介绍ID3分类算法. 1.信息熵 例如,我们想要获取球队比赛胜负的信息:中国队vs巴西队.中国队vs沙特队. 哪场比赛信息量高?答案是中国队vs沙特队.原因是中国队vs沙特…
.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px solid #000; } .table { border-collapse: collapse !important; } .table td, .table th { background-color: #fff !important; } .table-bordered th, .table-bordere…