前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【算法】为什么到处都是树

【算法】为什么到处都是树

原创
作者头像
leland
修改于 2020-02-09 04:23:29
修改于 2020-02-09 04:23:29
1.8K0
举报
文章被收录于专栏:leland的专栏leland的专栏

导语

车窗外,路两旁,整整齐齐的是身姿各异的树;会议室,小黑板,不经意间出现树状的结构图;揉了揉眼睛,终于看完一篇和树相关的算法,突然涌现起当年上数据结构课时相同的瞌睡感。迷迷糊糊间,一颗颗树出现在眼前,脑海中回响着一个问题:为什么到处都是树啊?

我们身边到处都是树

是的,我们身边有很多树。在公园、在小树林、在小道边,我们都可以看到各种各样的树。它们形状各异,却又都有着相同的特征,譬如都有根、有枝和有叶。

路边随处可见的树
路边随处可见的树

自然界中有很多树,这是很自然的事情。而人类习惯于从自然中得到启发,于是很自然的,人们开始使用树来表示知识。比如,族谱,比如,八卦。

使用树来表示知识
使用树来表示知识

不止于知识的表示,树还成为了我们的日常思维工具。例如金字塔思维、逻辑树和思维导图,它们都是一颗颗树。

树已经成为我们常用的思维工具
树已经成为我们常用的思维工具

当然,在人类创造的非自然产物——计算机中,存在着更多的树。例如目录、HTML和DNS域名服务等等,都是以树的形式组织。

计算机中普遍存在的树
计算机中普遍存在的树

在计算机的世界里,还有我们熟知的树相关的数据结构和算法。它们存在于计算机的各种应用场景中。从计算机中的数据表示、压缩、存储及索引,再到机器学习算法,树都占据重要地位。例如我们熟知的外存索引使用的B+树,频繁项挖掘使用到的FP树,以及分类使用到的决策树等等。

各种应用场景中可见树的身影
各种应用场景中可见树的身影

是的,计算机中也到处都是树。但为什么到处都是树?我难以寻得答案,只能抽取出几颗树来,看能不能从中看出些端倪。也寄希望于各位读者,能够赐予我一个满意的答案。

答案的寻找

B+树

我们经常使用的外存索引,例如Mysql中的索引,使用到的就是B+树。因为大型数据的存储,查询瓶颈在于磁盘I/O的访问次数。磁盘I/O访问过于频繁,就会导致查询效率低下。而B+树这种多叉平衡查找树,好处是一个节点就能包含很多个值,从而大大降低树的高度,减少了磁盘I/O的访问,提升了查询效率。这里我们可以看到,树节点的空间划分能力(这里是一维空间)提升了查询效率。

R树

R树把B+树(一维空间)的思想很好的扩展到了多维空间。R树的核心思想是聚合距离相近的节点并在树结构的上一层将其表示为这些节点的最小外接矩形,这个最小外接矩形就成为上一层的一个节点。如果查询的位置不在当前节点表示的矩阵范围内,那么也不可能在其子节点所表示的范围内,大概就是这么个思想。这里可以看到,R树同样是利用树节点具有的空间划分能力优化了查询性能,而且更直观地表达出上层节点包含了子节点范围的含义。

R树
R树

KD树

虽然已经说了R树,但还是要提一下KD树。因为KD树很好地表达了兄弟节点具有某种意义上的相似性这层含义。如果我们想要在一堆数据点中找到和某个数据点p(x, y)最相近的n个点,我们通常的做法是计算所有的数据点与p点的距离,然后返回距离最小的前n个。但是这样做的效率并不高。KD树通过把整个空间进行分割并以树状结构进行记录,我们只需要在问题点附近的一些区域进行搜寻便可以找到最近的数据点,节省了大量的计算。除了划分空间的能力,这里还可以看出树的另一个优势,即是树状结构能保存局部性的信息,相邻的兄弟节点具有某种属性的相近性。

KD树
KD树

决策树

树在机器学习中占据着十分重要的地位,决策树便是最耀眼的那棵树。决策树表现和代码的IF-ELSE一样,区别在于决策树是数据驱动自动生成的。每个节点在选择某个属性去划分数据的时候,使用某种评判标准(信息增益和基尼系数等)去做属性列的挑选,最终将无序的数据变得更加有序,从而生成一颗分类(或回归)树。

同样是空间划分,但可以看到划分的标准是可以多种多样的,意味着树存在着更多的扩展变化能力。而且树的构造简单及直观的表达能力,要优于很多很多黑盒子算法。

决策树
决策树

孤立森林

孤立森林有多颗孤立树构成,用于快速检测异常,如检测设备异常、网络攻击及交易欺诈等。孤立树的构造方法很简单,通过从样本中随机选取属性列及属性列的值将样本数据不断划分,直至节点不可分。其主要思想是:异常点分布稀疏且离密度高的正常群体较远,容易快速被孤立出来。在树中表现为深度较小的叶子节点,如图中的节点d。

孤立树
孤立树

还是利用了树的空间划分能力,但这里的划分是随机地划分,借由样本的分布把异常点提前分割出来。比较有意思的是,它可以很直观地通过叶子深度来表示稀疏点。

哈夫曼树

说到利用树形的特征,这里还得提一下哈夫曼树。哈夫曼树的定义是:将具有权值(节点占整体的百分比)的n个叶子节点,构造一颗二叉树,当这棵树的带权路径长度(节点的权值与路径长度的乘积)达到最小,则称为哈夫曼树。如下图c为构造的哈夫曼树。主要思想:使用不定长编码来压缩数据,出现频率高的字符对应的编码短,出现频率低的字符编码相对长,从而使数据长度变短。

哈夫曼树
哈夫曼树

这里也是利用树形的特性。叶子到根路径唯一,可被用于编码;叶子深度可表示权值。

FT-TREE

FT-tree 是一种扩展的前缀树结构,用以表示交换机系统日志消息模板。FT-tree的基本思想是,系统日志消息中详细信息字段的子类型通常是频繁出现的单词的最长组合。因此,提取模板等价于从系统日志消息中识别出频繁出现单词的最长组合。

FT树
FT树

构造类似FT-TREE,频繁项挖掘使用到的FP-TREE也是一棵树,只是使用树得到频繁项的方式有所不同。它们都同样地用到了树的一个性质,就是兄弟节点共享相同的祖先。

蒙特卡罗树搜索

蒙特卡罗树搜索是一种搜索最优决策的方法,它结合了随机模拟的一般性和树搜索的准确性。如下图所示,蒙特卡洛树搜索一般分为选择、扩展、模拟及反向传播四个步骤。这似乎很符合我们下棋的思维习惯:选择一个看似不错的位置,假设在此落子,推算后序的走势,发现大规律会输,再重新选择一个位置推算。树恰恰能表示这种决策过程,因为它有宽度,能表示多个选择;同时它也有深度,能表示推算的深度;而父节点,则可以用来统计后序推算的胜率。这样想来,使用树是那么的理所当然。

蒙特卡罗树搜索
蒙特卡罗树搜索

我的答案

写到这,我已经快忘了自己在哪里了。只依稀记得,有很多树,能从中看出一些有趣的特性。树的划分空间的能力,既有用于提升查询性能的,又有用于数据分类的,得益于划分规则的可扩展性。树的特性,比如树根唯一,所有有了堆排序;比如叶子到根的路径唯一,所以可以用于表示编码;比如兄弟节点共享祖先,所以有了前缀树;比如兄弟节点间距离相近,所以可以快速找出临近点……

人的思维是发散的,非线性的,正如之前提到过的思维导图之类的思维工具一样,和树的结构是相似的。而在处理非线性问题时,人便想到了树。所以用于处理问题的计算机中,便出现了树。也因为树的直观、性能优越以及可扩展性,树得到了更广泛的使用。所以才会导致处处都是树的现象。

这便是我所以为寻得的答案。你觉得呢?

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
一文搞定评分卡开发中——Y的确定(Vintage分析、滚动率分析等)
本文将从支付和信贷评分卡建立的角度,对比分析不同行业在建立评分卡时因变量Y确定的差异。
阿黎逸阳
2022/05/31
4.9K0
一文搞定评分卡开发中——Y的确定(Vintage分析、滚动率分析等)
用户行为序列的特征设计和挖掘思路分享
金融风控,可以是对于信贷类金融风控(银行贷款,花呗,信用卡等),也可以是现金支出(刷微信支付余额和支付宝余额)。
Sam Gor
2021/01/05
2.5K0
用户行为序列的特征设计和挖掘思路分享
美团“封杀”支付宝遭反垄断诉讼,下一个会是谁?
12月30日,美团因取消支付宝渠道遭反垄断诉讼的消息冲上微博热搜榜首,截至目前,该话题阅读已超4亿。据悉,目前北京知识产权法院已对案件立案受理。
用户7994183
2021/01/05
6800
支付宝惊现P0级事故:八折优惠背后的风波与思考
2025 年 1 月 16 日下午,原本看似平常的一天,却因为支付宝的一场意外,在互联网世界掀起了惊涛骇浪。当天 14 时 40 分,支付宝用户在进行各种支付操作时,惊喜地发现订单结算页面跳出 “政府补贴” 提示,订单金额自动减免 20%,直接打八折。这一消息瞬间在社交媒体上炸开了锅,大量用户兴奋地分享自己的订单截图,喜悦之情溢于言表。
正在走向自律
2025/01/24
3190
支付宝惊现P0级事故:八折优惠背后的风波与思考
33岁妹子,用了三年!我从语文老师到支付宝技术前端的蜕变
作者:蚂蚁小招 https://mp.weixin.qq.com/s/UuxvFXKOVzqd-lrr9V4V5Q
开发者技术前线
2020/11/23
5680
33岁妹子,用了三年!我从语文老师到支付宝技术前端的蜕变
金融风控评分卡建模全流程!
本文将带领读者一起进行完整的建模全流程,了解银行风控是如何做的。并提供kaggle代码。首先讲述评分卡的分类、优缺点。接下来,结合完整的可以马上运行的代码,中间穿插理论,来讲解评分卡的开发流程。最后,把方法论再梳理一次,让读者在了解全流程后,在概念上理解再加深。
Datawhale
2021/03/11
9.9K2
金融风控评分卡建模全流程!
逾期赖账两把刀“撸口子”,现金贷行业会不会坏账过多而亏死?
企鹅号小编
2017/12/27
1.3K0
逾期赖账两把刀“撸口子”,现金贷行业会不会坏账过多而亏死?
【数据思维】明略数据吴明辉:忘掉你的大数据,数据思维才最重要
10月11日晚,北京明略软件系统有限公司董事长吴明辉先生结合自身丰厚的实战经验以及车品觉老师书作《决战大数据》就大数据实战应用为庐客汇“12+50”会员带来了一堂精彩晚课,下面本堂晚课的部分精彩内容!   “坦白讲如果没有拥有数据思维,那即使拥有了很多数据,而且不管这些数据有多大,都不能说你在做大数据,所以大数据的核心其实是要拥有数据思维。”1数据思维利用数据解决问题什么是数据思维?数据思维的最核心是利用数据解决问题,利用数据解决问题的最核心是要深度了解需求,了解真正要解决什么样的问题,解决问题背后的真实目
陆勤_数据人网
2018/02/27
6470
中国有微信和支付宝, 你为啥还费力不讨好去做区块链? | 人物志
他是一位连续创业者,曾在当时互联网最大二级市场票务平台悠闲地“打工”,生活无忧无虑无所求。一次偶然的机会,他“勾搭”上了一位澳洲技术男,异地畅聊、跨国面基之后,一头扎进了区块链行业,从此一发不可收。
区块链大本营
2019/07/11
5180
中国有微信和支付宝, 你为啥还费力不讨好去做区块链? | 人物志
风控数据体系-简介
早期传统金融的风控主要利用了信用属性强大的金融数据,一般采用20个维度左右的数据,利用评分来识别客户的还款能力和还款意愿。信用相关程度强的数据维度大概在十个左右,包含年龄、职业、收入、学历、工作单位、借贷情况、房产,汽车、单位、还贷记录等;而互联网金融公司在利用大数据进行风控的同时,会根据需求利用多维度数据来识别借款人风险,维度包括不限于:社交类数据、消费类数据、行为类数据、多源银行账户数据等。
数字悠客
2020/06/29
4.5K0
AI一分钟 | 谷歌租下北京 6000 平米写字楼,或将发展AI项目;工信部就个人信息保护约谈百度、支付宝、今日头条
一分钟AI 今日头条召开算法分享大会,称算法分发并非是把所有决策都交给机器 谷歌计划推出利用AI技术+人工审查的方法来共同消除视频中的不恰当内容 谷歌的智能音箱销量仅为25%,为扭转亚马逊独占市场大份额的局面,将调整语音助手战略 据外媒称IBM近万人因公司结构调整面临被调动,随后IBM全球技术服务部门发言人否认改传言 NVIDIA发布全球首款安全性AI自动驾驶平台,即使操作失误、环境或系统出错也能安全运行 工信部日前就个人信息保护约谈百度、支付宝、今日头条三家企业,要求立即整改 谷歌在北京中国国际中心
AI科技大本营
2018/04/27
7350
AI一分钟 | 谷歌租下北京 6000 平米写字楼,或将发展AI项目;工信部就个人信息保护约谈百度、支付宝、今日头条
央行出手解除支付宝特权,银联还在线上挣扎,行政驱动的网联会走远吗?
央行出手解除支付宝特权,银联还在线上挣扎,行政驱动的网联会走远吗?
数据猿
2018/04/24
1K0
央行出手解除支付宝特权,银联还在线上挣扎,行政驱动的网联会走远吗?
支付宝“圈子”事件就是个套路,一切都是为了芝麻信用
11月27日,经过多家媒体的报道,全国上下都知道了在支付宝的“校园日记”和“白领日记”等圈子当中,出现大量大尺度照片。 支付宝随后回应到,圈子功能尚处于灰度测试状态,只是在社群上的一种尝试。 直到央视
镁客网
2018/05/28
1.8K0
死磕支付宝!腾讯信用分来了:送逆天福利
福利:手机刷机你还在网上大海捞针的寻找方法吗 告诉你个黑科技 关注本公众号后回复刷机+手机型号 系统就会自动为你寻找最适合的刷机教程 省时又省力 12月18日,腾讯公司与深圳市住房和建设局举行发布会,宣布深圳市住房租赁交易服务平台正式启动。 据官方介绍,腾讯将通过征信、支付、云计算、人工智能、大数据等核心技术能力的创新运用,携手生态合作伙伴,与深圳市住建局共同打造新型智慧租赁平台,通过连接赋能住房租赁市场的各参与主体。 深圳市住建局局长张学凡表示:“深圳作为全国首批住房试点城市之一,是全国住房租赁市场最大
企鹅号小编
2018/02/09
6660
死磕支付宝!腾讯信用分来了:送逆天福利
IoB势不可挡,你要便利还是隐私?
出于商业等目的对收集到的用户数据进行分析的行为并不新鲜,而行为互联网(Internet of Behavior,IoB)则是在这个基础上更进一步,被分析后的数据信息以其它形式出现在用户视野以影响用户的行为,形成了一种反馈机制。行为互联网是基于物联网(IoT)的,电子设备的互联产生了更多的用户操作数据,这些数据的流通让人们可以挖掘数据背后更丰富的用户心理信息,从而开拓了更为广泛的利用空间。很多人认为,2012年是行为互联网概念的开端,心理学教授Gothe Nyman在该年描述了物联网中获取的用户数据的价值;如今,用户任何联网设备都会留下痕迹,购物、购票、外卖、浏览论坛图文视频、健身运动、游戏等等,这些数据被机构收集、分析,已形成了一套自动化的生态系统,即很多互联网产品都会提醒使用者参与的“用户体验改进计划”。
FB客服
2021/03/09
5650
IoB势不可挡,你要便利还是隐私?
1分钟链圈 |纽约大学经济学家:比特币是胡说,只是吸引傻瓜!网易:拿下数字货币钱包市场 有望成为区块链版的「支付宝」
Hi,艾瑞巴蒂!继「区块鸡」之后又惊现「比特猪」,有网友表示要再去做一个「比特鸡」,也有网友表示区块链很适合做食品生产溯源追踪系统。各位看官可以脑洞一下,想想还有什么可以上链呢?可以把你非同一般的答案在评论区告诉科科哦~ 这里是 5 月 4 日的每日1句话新闻,只需1分钟,看看全球最热、最新的区块链新闻。 实时币价:BTC $9710 ETH $784.83 EOS $17.35(数据来源: Bitfinex) 观点 建设银行旗下建信金融总裁雷鸣:区块链的运用将降低银行在整个产业链中的信任成本 纽约大学
区块链大本营
2018/06/19
7650
【案例】某银行信用卡中心——大数据反欺诈应用案例
数据猿导读 2003年以来我国经济的快速增长,国内信用消费环境的日趋成熟,我国信用卡市场近几年得到了爆炸性的大发展。根据中国银行业协会统计,信用卡欺诈损失排名前三类型为伪卡、虚假身份和互联网欺诈。 本
数据猿
2018/04/19
5.7K0
【案例】某银行信用卡中心——大数据反欺诈应用案例
支付宝红包暴力薅羊毛
特地去知乎搜了一波,果然有各路大佬在分享源码,特地弄了一个进行源码审计,学习学习~
信安之路
2018/08/08
9670
支付宝红包暴力薅羊毛
支付宝超级 App 的弹性动态架构实践
本文基于重岳在 2019 年 DevOps 国际峰会北京站的分享内容进行总结,希望通过本篇文章介绍近些年来支付宝面向超大业务体量的挑战,在移动端构建弹性动态架构部分做了怎样的实战与思考,期冀能给读者们带来些许帮助。
开发者技术前线
2020/11/23
9650
支付宝超级 App 的弹性动态架构实践
机器学习在信用评分卡中的应用
互联网金融,特别是P2P信贷在过去几年可以说经历了大起大落的过山车。在经历了2016、2017年的高速发展后,随着整体经济环境遇冷、政策层面监管趋严,行业已进入洗牌周期。特别是随着18年7月P2P暴雷潮的出现,更是为行业前途蒙上一层迷雾。
SIGAI学习与实践平台
2018/11/14
2.8K1
机器学习在信用评分卡中的应用
推荐阅读
一文搞定评分卡开发中——Y的确定(Vintage分析、滚动率分析等)
4.9K0
用户行为序列的特征设计和挖掘思路分享
2.5K0
美团“封杀”支付宝遭反垄断诉讼,下一个会是谁?
6800
支付宝惊现P0级事故:八折优惠背后的风波与思考
3190
33岁妹子,用了三年!我从语文老师到支付宝技术前端的蜕变
5680
金融风控评分卡建模全流程!
9.9K2
逾期赖账两把刀“撸口子”,现金贷行业会不会坏账过多而亏死?
1.3K0
【数据思维】明略数据吴明辉:忘掉你的大数据,数据思维才最重要
6470
中国有微信和支付宝, 你为啥还费力不讨好去做区块链? | 人物志
5180
风控数据体系-简介
4.5K0
AI一分钟 | 谷歌租下北京 6000 平米写字楼,或将发展AI项目;工信部就个人信息保护约谈百度、支付宝、今日头条
7350
央行出手解除支付宝特权,银联还在线上挣扎,行政驱动的网联会走远吗?
1K0
支付宝“圈子”事件就是个套路,一切都是为了芝麻信用
1.8K0
死磕支付宝!腾讯信用分来了:送逆天福利
6660
IoB势不可挡,你要便利还是隐私?
5650
1分钟链圈 |纽约大学经济学家:比特币是胡说,只是吸引傻瓜!网易:拿下数字货币钱包市场 有望成为区块链版的「支付宝」
7650
【案例】某银行信用卡中心——大数据反欺诈应用案例
5.7K0
支付宝红包暴力薅羊毛
9670
支付宝超级 App 的弹性动态架构实践
9650
机器学习在信用评分卡中的应用
2.8K1
相关推荐
一文搞定评分卡开发中——Y的确定(Vintage分析、滚动率分析等)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档