leaf

用Python实现数据结构之树

↘锁芯ラ 提交于 2020-04-25 09:54:29
树 树是由根结点和若干颗子树构成的。树是由一个集合以及在该集合上定义的一种关系构成的。集合中的元素称为树的结点,所定义的关系称为父子关系。父子关系在树的结点之间建立了一个层次结构。在这种层次结构中有一个结点具有特殊的地位,这个结点称为该树的根结点,或称为树根。 相关概念 根节点:树中最顶部的元素 父节点:处了根节点都有父节点,每个节点最多只有一个父节点 孩子节点:一个父节点具有0个或多个孩子节点 兄弟节点:同一个父节点的孩子节点之间是兄弟关系 外部节点:一个没有孩子的节点称为外部节点,也叫叶子结点 内部节点:有一个或多个孩子节点的节点叫做内部节点 树的边:指一对节点(u,v),其中u是v的父节点或者v是u的父节点 树的路径:一系列连续的边组成了一条路径 节点的深度:节点的深度就是该节点的祖先的个数,不包括该节点本身,如果根节点的层数为1,则深度即为该节点的层数-1 节点的高度:如果p是树中的叶子节点,那么它的高度为0.否则p的高度是它的孩子节点中的最大高度+1 有序树:每个孩子之间有一定的顺序,例如: 一个树的抽象基类 class Tree () : """ 树的抽象基类 """ # 叫做位置的内嵌类,用于封装节点 class Position () : def element (self) : raise NotImplementedError( 'must be

关于ORACLE数据库名以及数据实例名等几个重要概念

[亡魂溺海] 提交于 2020-04-25 09:47:43
在Oracle中有关数据库和数据库实例的几个重要概念,有时候如果理解不是很深或者对其疏忽、混淆了,还真容易搞错或弄不清其概念,下面就数据库实例名、数据库名、数据库域名、数据库服务名、全局数据库名几个概念,我们来梳理一下概念,总结归纳一下这些知识,首先,我们来看看官方文档对这几者的概念介绍: INSTANCE_NAME (数据库实例名) Property Description Parameter type String Syntax INSTANCE_NAME = instance_id Default value The instance's SID Note: The SID identifies the instance's shared memory on a host, but may not uniquely distinguish this instance from other instances. Modifiable No Range of values Any alphanumeric characters Basic No In a Real Application Clusters environment, multiple instances can be associated with a single database service.

GBDT+LR算法解析及Python实现

孤街醉人 提交于 2020-04-24 23:07:05
1. GBDT + LR 是什么 本质上GBDT+LR是一种具有stacking思想的二分类器模型,所以可以用来解决二分类问题。这个方法出自于Facebook 2014年的论文 Practical Lessons from Predicting Clicks on Ads at Facebook 。 2. GBDT + LR 用在哪 GBDT+LR 使用最广泛的场景是CTR点击率预估,即预测当给用户推送的广告会不会被用户点击。 点击率预估模型涉及的训练样本一般是上亿级别,样本量大,模型常采用速度较快的LR。但LR是线性模型,学习能力有限,此时特征工程尤其重要。现有的特征工程实验,主要集中在寻找到有区分度的特征、特征组合,折腾一圈未必会带来效果提升。GBDT算法的特点正好可以用来发掘有区分度的特征、特征组合,减少特征工程中人力成本。 从知乎 https://zhuanlan.zhihu.com/p/29053940 上看到了一个关于CTR的流程,如下图所示: 如上图,主要包括两大部分:离线部分、在线部分,其中离线部分目标主要是训练出可用模型,而在线部分则考虑模型上线后,性能可能随时间而出现下降,弱出现这种情况,可选择使用Online-Learning来在线更新模型: 2.1 离线部分 数据收集:主要收集和业务相关的数据,通常会有专门的同事在app位置进行埋点,拿到业务数据 预处理

算法与数据结构基础

独自空忆成欢 提交于 2020-04-24 03:26:17
二叉树基础 满足这样性质的树称为二叉树:空树或节点最多有两个子树,称为左子树、右子树, 左右子树节点同样最多有两个子树。 二叉树是递归定义的,因而常用递归/DFS的思想处理二叉树相关问题,例如LeetCode题目 104. Maximum Depth of Binary Tree: // 104. Maximum Depth of Binary Tree int maxDepth(TreeNode* root) { if (root==NULL) return 0 ; return 1 +max(maxDepth(root->left),maxDepth(root-> right)); } 相关LeetCode题: 104. Maximum Depth of Binary Tree 题解 112. Path Sum 题解 437. Path Sum III 题解 100. Same Tree 题解 543. Diameter of Binary Tree 题解 563. Binary Tree Tilt 题解 257. Binary Tree Paths 题解 671. Second Minimum Node In a Binary Tree 题解 572. Subtree of Another Tree 题解 110. Balanced Binary Tree 题解 606.

Dlib库landmark算法解析(ERT 集成回归树)

大兔子大兔子 提交于 2020-04-23 21:03:04
landmark是一种人脸部特征点提取的技术,Dlib库中为人脸68点标记,在《调用Dlib库进行人脸关键点标记》一文中有效果和标定点序号的示意图。今后可采用landmark中的点提取眼睛区域、嘴巴区域用于疲劳检测,提取鼻子等部分可用于3D姿态估计。 Dlib库使用《One Millisecond Face Alignment with an Ensemble of Regression Trees》CVPR2014中提及的算法:ERT(ensemble of regression trees)级联回归,即基于梯度提高学习的回归树方法。 该算法使用级联回归因子,首先需要使用一系列标定好的人脸图片作为训练集,然后会生成一个模型。 the shape_predictor_trainer object to train a shape_predictor using a set of training images, each annotated with shapes you want to predict. To do this, the shape_predictor_trainer uses the state-of-the-art method. 使用基于特征选择的相关性方法把目标输出ri投影到一个随机方向w上,并且选择一对特征(u,v),使得Ii(u’)-Ii(v’

[Android] Adobe Photoshop Express 手机上用的挺好的作图软件

非 Y 不嫁゛ 提交于 2020-04-19 04:02:10
《Adobe Photoshop Express》是一款照片编辑和拼贴画制作软件工具,可以在移动设备上进行快速的编辑。拥有 60 多种外观以及降噪和除雾等校正功能。 软件功能编辑 - 基础功能:裁剪、修齐、旋转和翻转照片。移除红眼和宠物眼。   - 自动修复:一键调整对比度、曝光量和白平衡。   - 去除瑕疵:单击一下即可移除照片中的污点、脏物和蒙尘。   - 校正:滑动控件以调整清晰度、对比度、曝光度、高光、阴影、黑色、白色、色温、色调、锐化、饱和度和亮丽度。   - 滤镜或外观:共有 80 多种预设滤镜可供选择。可以控制外观强度以获得丰富的照片效果。   - 水印图像:在图像上添加自定义文字或图形水印。   - 自定义:创建并保存自己的外观。   - 照片相框:提供 15 种以上边框和相框。若要让外观更加协调匀称,可选择与图像颜色搭配的边框颜色。   - 支持原始照片:以原始格式导入并编辑照片。   - 分享:即使分享所有社交站点。   - 水印图像:在图像上添加自定义文字或图形水印。   - 调整图像大小:使用此选项调整图像大小并保存。   - JPEG 质量输出 - 自定义输出图像的质量和尺寸。 [1] 下载地址: https://fsl.to/9inb8f 软件支持格式编辑 - 照片:JPG、PNG   - 原始文件:arw (SONY)、cr2 (CANON)、crw

决策树随笔

独自空忆成欢 提交于 2020-04-18 11:15:59
决策树原理 决策树是一种多功能的机器学习算法,它可以实现分类和回归任务,甚至是多输出任务。它们功能强大,能够拟合 复杂的数据集。 -优点:简单直观,基本不需要预处理,不用会议华,处理缺失值,精度高、对异常值不敏感、无数据输入假定。可以处理离散或连续值,可以处理多维度输出的分类问题 缺点:计算复杂度高、容易过拟合,泛化能力不好,可能因为样本的一点点改动导致树的结构剧烈改变,空间复杂度高。 适用数据范围:数值型和标称型。 创建分支的伪代码函数createBranch()如下所示: 检测数据集中的每个子项是否属于同一分类: If so return 类标签; Else 寻找划分数据集的最好特征 划分数据集 创建分支节点 for 每个划分的子集 调用函数createBranch并增加返回结果到分支节点中 return 分支节点 上面的伪代码createBranch是一个递归函数,在倒数第二行直接调用了它自己。 其工作原理很简单如图所示的流程图就是一个决策树,长方形代表判断模块(decision block),椭圆形代表终止模块(terminating block),表示已经得出结论,可以终止运行。从判断模块引出的左右箭头称作分支(branch),它可以到达另一个判断模块或者终止模块。 k-近邻算法可以完成很多分类任务,但是它最大的缺点就是无法给出数据的内在含义

[数据结构与算法] 002—树与二叉树(Python)

假装没事ソ 提交于 2020-04-18 03:10:59
概念 树 树是一类重要的非线性数据结构,是以分支关系定义的层次结构 定义: 树(tree)是n(n>0)个结点的有限集T,其中: 有且仅有一个特定的结点,称为树的根(root) 当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1,T2,……Tm,其中每一个集合本身又是一棵树,称为根的子树(subtree) 特点: 树中至少有一个结点——根 树中各子树是互不相交的集合 基本术语 结点(node)——表示树中的元素,包括数据项及若干指向其子树的分支 结点的度(degree)——结点拥有的子树数 叶子(leaf)——度为0的结点 孩子(child)——结点子树的根称为该结点的孩子 双亲(parents)——孩子结点的上层结点叫该结点的~ 兄弟(sibling)——同一双亲的孩子 树的度——一棵树中最大的结点度数 结点的层次(level)——从根结点算起,根为第一层,它的孩子为第二层…… 深度(depth)——树中结点的最大层次数 森林(forest)——m(m0)棵互不相交的树的集合 二叉树 二叉树是有限个元素的集合,该集合或者为空、或者有一个称为根节点(root)的元素及两个互不相交的、分别被称为左子树和右子树的二叉树组成。 二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。 二叉树的第i层至多有2^{i-1}个结点

学堂在线课程页面URL和JSON的简单分析

╄→гoц情女王★ 提交于 2020-04-16 16:48:12
【推荐阅读】微服务还能火多久?>>> 学堂在线课程页面URL和JSON的简单分析 学堂在线课程URL分析 以 清华大学 的 C++语言程序设计基础(2020春) 和 生活英语听说(2020春) 为例 课程界面如下 目录中有5种单元对象: 对象 例子 视频(video) https://next.xuetangx.com/learn/THU08091000247/THU08091000247/1515741/video/1358540 图文(article) https://next.xuetangx.com/learn/THU08091000247/THU08091000247/1515741/article/1358541 作业(exercise) https://next.xuetangx.com/learn/THU08091000247/THU08091000247/1515741/exercise/1358558 考试(quiz) https://next.xuetangx.com/learn/THU05021000376/THU05021000376/1515481/quiz/1340243 (清华大学-生活英语听说(2020春) 讨论(discussion) https://next.xuetangx.com/learn/THU05021000376

通俗易懂解释网络工程中的技术,如STP,HSRP等

断了今生、忘了曾经 提交于 2020-04-16 09:58:22
【推荐阅读】微服务还能火多久?>>> 在面试时,比如被问到HSRP的主备切换时间时多久,STP几个状态的停留时间,自己知道有这些东西,但在工作中不会经常用到,就老是记不住,觉得可能还是自己基础不够牢固,知识掌握不够全面。 充分而彻底地了解一个协议,是记住它的关键! Spanning tree(802.1d)收敛过程 天下群雄纷起(switch power on),个个都默认是老大(root bridge),但都还比较谦虚,保持静默15秒(listening,unable forwarding end user traffic),用于收集情报(other switch BPDU),最早进入静默状态的山大王(最先启动的交换机)等的不耐烦了(listening timeout),因为他没有收集到任何消息,开始散发传单(it's own BPDU),2秒一次(BPDU interval ),大言不惭称帝(root bridge)。 各地土匪由于武力不敌(BPDU priority 低),只好俯首称臣(non root bridge),只敢乖乖地接收皇帝的圣旨(BPDU configuration ),然后再 relay 一下皇帝的圣旨到下游郡王… 大枭雄(BPDU priority 最高)醒来的晚(power on),看到如此情形不愿意了,一个小虾米竟然充大尾巴狼,于是发出了自己的挑战书