决策树中的ID3, C4.5, CART算法及其优缺点

前一篇文章说了决策树算法的一些基本内容,包括它的分类和如何构造决策树。这篇文章我们继续深入如何构造决策树 如何构造决策树 建树需要解决以下三个问题: 选择什么特征分裂 如何选择特征分裂的属性值(具体判断条件) 什么时候停止分裂 以下是损失函数关键的公式 熵: entropy(D)=−∑i=1n...

2019-03-05 04:37:40

阅读数 160

评论数 0

决策树的概念,分类和初步的建树过程

决策树,顾名思义就是用树形结构来做决策。 如何把我们想达到的算法表达成一棵树 直接上例子,图源来自维基百科(titanic dataset): 决策树其实就是一个根据条件从上往下的判断流程,根据条件的是或否,分支成下一层的判断与决策。如果分支不再是一个判断条件,那么它就是一个决策。 从这个图我们...

2019-03-04 09:28:39

阅读数 167

评论数 0

使用快慢指针判断链表是否有环

今天做到leetcode 141: Linked List Cycle,判断链表是否存在环,因为看到题目中的val都是整数,所以我是将每个node用1.1作为值去mark了,如果head.next的val是1.1,就说明我指向的下个结点已经走过了,这就是一个环,如果走到最后head走到None了还...

2019-02-26 04:45:03

阅读数 127

评论数 0

摊还分析,核算法与势能法

为什么我们需要摊还分析 上篇文章我们提到了算法的时间复杂度分析,给定输入规模,我们分析出算法的耗时,但是这样够了吗? 有时输入规模不是一个静态的值,可能输入是一系列操作,比如在这棵树里先插入结点,再做一个查找,再删除最小值,再与另一棵树合并。(插入,查找,删除最小值,合并)就是一个输入的操作序...

2018-12-19 00:54:21

阅读数 316

评论数 1

时间复杂度的定义,记号以及几种计算方法

时间复杂度在关心些什么 如果接触过算法,那么对于算法的时间复杂度分析一定不陌生,因为时间复杂度是算法优劣的一个重要评价标准。 对于一个算法,我们不光关心它在某个规模输入的情况下耗时多少,我们更关心的是,当输入规模疯狂增长的时候,算法耗时增加多少,是按线性形式增加的?指数增加的?对数形式增加的?比如...

2018-12-17 12:46:40

阅读数 819

评论数 1

二叉树的中序遍历,每层遍历,以及Z字形遍历

leetcode中,二叉树也是一块重点,对于树结构衍生出的问题,一般用递归的方法会比较多 二叉树的中序遍历 对于二叉树的前序遍历,就是左-根-右这种遍历顺序。 有递归和非递归写法:非递归就用栈来实现 res, stack = [], [] while Tr...

2018-12-02 11:49:26

阅读数 370

评论数 0

2 sum, 3 sum, 4sum以及python collections.Counter

最近的文章都是有关面试最常出到的100题 许多面试好像都喜欢问这三兄弟。 2 sum 给个列表,和target,返回列表中两个数加起来等于这个target的index 举例: Given nums = [2, 7, 11, 15], target = 9, Because nums[0] + nu...

2018-12-01 07:27:14

阅读数 386

评论数 0

由Python谈及编程语言的分类

程序员之中有个永恒的争论话题,什么才是最好的编程语言?我觉得答案不是重点,而每个程序员使用的什么语言也没那么值得关注,重要的是每种语言的特点和精华,一种语言的面世和普及必然有它的道理,理解它存在的意义才是我们值得关注的。 我自己用python比较多,我觉得它算是我的老友了,所以想先谈谈这位老朋友...

2018-11-30 00:02:31

阅读数 6547

评论数 3

leetcode top100 面试medium难度

链表类 19.删除倒数第N个元素 value-shifting, index and remove, 快慢指针 for _ in range(n): fast = fast.next 生成器 22.输入n,产生括号配对 update问题,有...

2018-11-29 03:48:27

阅读数 405

评论数 0

浅谈内存泄漏,野指针,内存申请

拿到quiz好难过,内存泄漏一个Vector一个Array秀的我头疼。 百度百科上的定义:内存泄漏(Memory Leak)是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。 一看定义,坑好像更多了,动态分配,堆内存是...

2018-11-28 01:43:00

阅读数 336

评论数 0

最大流问题与Ford-Fulkerson算法介绍

背景 我们有图 G=(V, E),V是顶点的集合,E是边的集合。 图中边的权重都为正数 (满足1,2两点有时称之为流网络)。 对于这个图G,有两个顶点很重要,一个是源头s,一个是汇聚点t,我们想考虑的是从源头s流向汇聚点t的流。 那么什么是流呢? 流的定义 定义:直观来说,流就...

2018-11-25 15:25:28

阅读数 1028

评论数 2

提示
确定要删除当前文章?
取消 删除
关闭
关闭