决策树(ID3)算法的实现和运用


  决策树简单来说是一种可用于问题判定的树形结构。如下图,就是一个决策树: 1.png

  椭圆表示终止模块,矩形表示判断模块,箭头称为分支。决策树虽然看起来简单,但在数据挖掘,人工智能等领域有着广泛应用。这里介绍的决策树称为ID3,它无法直接用于处理数值型数据。

  算法分析   优点:复杂度不高,对中间值缺失不敏感,可处理不相关数据   缺点:会产生过度匹配问题   适用数据类型:标称型

  要构造决策树,很重要的一步就是划分数据集。为了找到决定性特征,必须对每一种特征进行评估,并对原始数据集进行划分,划分后的子集分布于第一个决策点的所有分支上,如果某分支下的数据属于同一类型,则无需进一步划分,否则重复划分直至相同。那么,划分数据集的原则是什么呢? 将无序数据变得有序。这里涉及到信息熵的概念,详细介绍可以参考信息熵,这里我们只需要知道计算公式:H(x) = E[I(xi)] = E[ log(2,1/p(xi)) ] = -∑p(xi)log(2,p(xi)) (i=1,2,..n)


kNN算法的实现和运用


kNN就是k-近邻算法,它的工作原理是:存在样本数据集,且样本中每个数据都有标签。在输入没有标签的数据后,将新数据的特征与样本进行比对,可以从样本中提取出最相似数据的标签。一般来说,只选取样本中前K个最相似数据(一般k<20)。最后,选取k个最相似数据中出现最多次的分类,作为新数据的分类。

算法分析 优点:精度高,对异常值不敏感,无输入假定 缺点:空间和计算复杂度高 适用数据:数值型和标称型

Python实现:


使用Cloudera搭建Hadoop开发环境


  由于Hadoop深受客户欢迎,许多公司都推出了各自版本的Hadoop,也有一些公司则围绕Hadoop开发产品。在Hadoop生态系统中,规模最大、知名度最高的公司则是Cloudera。   当然你也可以选择自己下载hadoop源码进行安装hadoop下载,最新版本已经到2.7,建议的安装环境是Ubuntu和CentOS,安装过程可以在网上找到很多参考,这里就不介绍了。   这里我使用Cloudera公司提供的虚拟机(VMware和VirtualBox版本都有),可以很便捷地搭建hadoop开发环境,毕竟我们的主要目的是学习hadoop,不应该把太多时间浪费在环境的配置上。cloudera-quickstart-vm的下载地址是下载链接。选择你需要的版本下载,我用的是VMware,压缩包大小有4G左右,解压后用VMware打开,将CPU改为4个,内存调为8G(你的本机内存不应该小于8G).运行后是一台配置好的CentOS虚拟机,可以很轻松地在上面开发运行Hadoop.


基于schema匹配为基础,计算gml文件结构匹配相似度


起步

这里的schema文档时指定义xml文件结构的.xsd文件,gml其实就是有schema约束的xml文件。

2000年5月,OGC推出了基于XML DTD (Document Type Definitions,文档类型定义)和RDF(Resource Description Frameworks,资源描述框架)的GML 1.0版。

2001年2月,OGC又推出了完全基于XML Schema 的GML 2.0版。

2001年2月,OGC又推出了完全基于XML Schema 的GML 2.0版。2003年2月,GML 3.0版正式发布。

所以,现在gml通用解释:地理标记语言(Geography Markup Language),GML是XML在地理空间信息领域的应用。但在这里只是表示有schema约束的xml文件,注意,不要混了。

github地址:https://github.com/sasukeax/schema_match


git的.gitignore忽略文件


起步

一个项目难免会有一些文件不需要纳入git管理,也不希望他们出现在未跟踪列表,如日志文件,缓存文件,java编译的.class文件或临时文件等.这种情况下,就可以创建一个名为.gitignore文件.windows下不能创建.开头文件的问题自行解决。

配置语法

  • 所有空行或者以 # 开头的行都会被 Git 忽略。
  • 可以使用标准的 glob 模式匹配。
  • 匹配模式可以以 / 开头防止递归。
  • 匹配模式可以以 / 结尾指定目录。
  • 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号 ! 取反。