摘要: 摘要:随机森林与决策树的一个显著的不同点就是它不会产生过度拟合。它的理论依据就是大数定律。 很熟悉的一个名词:大数定律,记得本科的概率论就有学,忘了差不多了,下面先复习下。 大量试验说明,随机事件A的频率R(A),当重复试验的次数n增大时,总呈现出稳定性,稳定在某一个常数的附件,意指数量越多,其平均值就越趋近与期望值。 一:大数定律回顾 切比雪夫定理: 设 a1,a2,a3,…,an 为相互独立的随机变量,其数学期望为:E(ai)=, 及方差D(ai)= 则序列收敛于u,即在定理条件下,当n无限变大时,n个随机变量的算术平均将趋于一个常数。 辛钦定理(切比雪夫... 阅读全文
posted @ 2013-11-15 17:03 人若无名 阅读(3150) 评论(0) 推荐(2) 编辑
摘要: 摘要:以前在机器学习中一直使用经验风险来逼近真实风险,但是事实上大多数情况经验风险并不能够准确逼近真实风险。后来业界就提出了泛化误差的概念(generalization error),在机器学习中泛化误差是用来衡量一个学习机器推广未知数据的能力,即根据从样本数据中学习到的规则能够应用到新数据的能力。常用的计算方法是:用在训练集上的误差平均值-在测试集上的误差平均值。 一:经验风险 机器学习本质上是一种对问题真实模型的逼近,这种近似模型也叫做一个假设。因为真实模型肯定是无法得到的,那我们的假设肯定与真实情况之间存在误差,这种误差或者误差的积累也叫做风险。 在我们选择了一个假设(或者获得一个... 阅读全文
posted @ 2013-11-15 16:26 人若无名 阅读(5034) 评论(0) 推荐(0) 编辑
摘要: 前面的一篇博客:分类算法之决策树介绍了决策树算法,从介绍中可以发现,决策树有些与生俱来的缺点: 1:分类规则复杂 决策树算法在产生规则的时候采用局部贪婪法。每次都只选择一个属性进行分析构造决策树,所以再产生的分类规则往往相当复杂。 2:收敛到非全局的局部最优解 ID3算法每次在树的某个层次进行属性选择时,它不再回溯重新考虑这个选择,所以它容易产生盲人登山中常见的风险,仅仅收敛到非全局的局部最优解。 3:过度拟合 在决策树学习中,由于分类器过于复杂,它可能会过于适应噪声,从而导致过度拟合问题。 为了克服以上的缺点,引入了另外一个预测模型-----随机... 阅读全文
posted @ 2013-11-12 21:15 人若无名 阅读(4341) 评论(0) 推荐(0) 编辑
摘要: 实习了一段时间,接触了一些数据挖掘、机器学习的算法,先记录下来方便以后的复习回顾:一:决策树概念 决策树可以看做一个树状预测模型,它是由节点和有向边组成的层次结构。树中包含3中节点:根节点、内部节点、叶子节点。决策树只有一个根节点,是全体训练数据的集合。树中每个内部节点都是一个分裂问题:指定了对实例的某个属性的测试,它将到达该节点的样本按照某个特定的属性进行分割,并且该节点的每一个后继分支对应于该属性的一个可能值。每个叶子节点是带有分类标签的数据集合即为实例所属的分类。 决策树算法很多,例如:ID3、C4.5、CART等。这些算法均采用自上而下的贪婪算法,每个内部节点选择分类效果最好的属性.. 阅读全文
posted @ 2013-09-29 20:03 人若无名 阅读(6460) 评论(2) 推荐(0) 编辑
摘要: 学号:SA12**6112本文将主要研究在X86体系下Linux系统中用户态到内核态切换条件,及切换过程中内核栈和任务状态段TSS在中断机制/任务切换中的作用及相关寄存器的变化。一:用户态到内核态切换途径: 1:系统调用 2:中断 3:异常对应代码,在3.3内核中,可以在/arch/x86/kernel/entry_32.S文件中查看。二:内核栈内核栈:Linux中每个进程有两个栈,分别用于用户态和内核态的进程执行,其中的内核栈就是用于内核态的堆栈,它和进程的task_struct结构,更具体的是thread_info结构一起放在两个连续的页框大小的空间内。在内核源代码中使用C语言定义了... 阅读全文
posted @ 2013-06-27 12:12 人若无名 阅读(8762) 评论(2) 推荐(3) 编辑
摘要: 学号:SA12**6112前面一篇博文分析了进程从用户态切换到内核态时,内核所做的主要的事,本文将研究在进程切换时,内核所做的事。在内核态,进程切换主要分两步:1:切换页全局目录2:切换内核堆栈和硬件上下文用prev指向被替换进程的表述符,next指向被激活进程的描述符下面分析进程切换的第二步第二步主要由switch_to宏实现:3.3内核中X86体系下:/arch/x86/include/asm/system.h文件的第48行处: 48 #define switch_to(prev, next, last) \ 49 d... 阅读全文
posted @ 2013-06-27 12:11 人若无名 阅读(920) 评论(0) 推荐(1) 编辑
摘要: 学号:SA12**6112研究笔记:1:计算机是怎么样工作的2:用户态到内核态切换之奥秘解析3:进程切换之奥秘解析本博文主要是根据前3篇笔记来总结Linux内核的工作机制。一:操作系统工作的基础存储程序计算机: 存储程序计算机最早的是冯.诺伊曼体系结构,即以运算为中心,采用存储程序原理,根据指令顺序执行的计算机。堆栈机制: 在计算机是怎么样工作的中我们分析了,在系统调用过程中,用户态堆栈的变化,在 用户态到内核态切换之奥秘解析,进程切换之奥秘解析中我们分析了内核态堆栈的变化。 进而可以发现堆栈在操作系统的工作中的作用:通过堆栈来保存任务切换过程中的上下文,进而在顺序执行的基础上支持了多任务.. 阅读全文
posted @ 2013-06-26 11:25 人若无名 阅读(677) 评论(3) 推荐(0) 编辑
摘要: 1)安装Ubuntu或其他Linux系统: a)为减少错误,集群中的主机最好安装同一版本的Linux系统,我的是Ubuntu12.04。 b)每个主机的登陆用户名也最好都一样,比如都是hadoop,不然到最后启动hadoop时会出现不管你密码是否输入正确,都会提示权限不够的错误,如果你之前装系统时没注意到这个问题,可以之后在每个主机上都新建一个用户hadoop来实现,命令如下: 增加hadoop用户:sudo adduser hadoop 把新加的hadoop用户,添加到admin组中,让其有sudo权限:sudo usermod -aG adm,sudo hadoop 切换到hado... 阅读全文
posted @ 2013-06-02 19:59 人若无名 阅读(4204) 评论(0) 推荐(0) 编辑
摘要: HDFS和MapReduce是Hadoop的核心,整个Hadoop的体系结构主要是通过HDFS来实现 分布式存储底层支持的,并且它会通过MapReduce来实现分布式并行任务处理的程序支持。 首先介绍下HDFS的体系结构:HDFS采用了主从(master/slave)结构模型,一个HDFS集群是由一个namenode和若干datanode组成。其中namenode作为主服务器,管理文件系统命名空间和客户端对文件的访问操作;集群中的datanode管理存储的数据。HDFS允许用户以文件的形式存储数据。从内部来看,文件被分为若干个数据块,而且这若干个数据块存放在一组datanode... 阅读全文
posted @ 2013-06-02 11:36 人若无名 阅读(1059) 评论(0) 推荐(0) 编辑
摘要: 根据前两篇博文中的实验:1:Linux进程地址空间之初探:一2:Linux进程地址空间之初探:二 现对进程的创建和可执行程序的加载过程总结如下:一:进程地址空间的组成及相关数据结构 Linux为每个进程都维持了一个独立的虚拟地址空间,进程地址空间又被分为几个虚拟内存区域:代码段、数据段、堆段、栈段、共享库段。进程地址空间中的任何有效地址都只能位于唯一的区域,这些区域不能相互覆盖。通过mmap/munmap函数,内核可以创建/删除一个虚拟内存区域。 主要的数据结构有: task_struct : 进程描述符结构,定义在<linux/sched.h>文件中,描述了该进程打开的文件、进程 阅读全文
posted @ 2013-05-28 19:35 人若无名 阅读(2259) 评论(0) 推荐(0) 编辑