空间维度

机器学习——详解KD-Tree原理

混江龙づ霸主 提交于 2020-04-08 10:53:25
本文始发于个人公众号: TechFlow ,原创不易,求个关注 今天是机器学习的 第15篇文章 ,之前的文章当中讲了Kmeans的相关优化,还讲了大名鼎鼎的EM算法。有些小伙伴表示喜欢看这些硬核的,于是今天上点硬菜,我们来看一个机器学习领域经常用到的数据结构—— KD-Tree 。 从线段树到KD树 在讲KD树之前,我们先来了解一下 线段树 的概念。线段树在机器学习领域当中不太常见,作为高性能维护的数据结构,经常出现在各种算法比赛当中。线段树的本质是一棵维护一段区间的平衡二叉树。 比如下图就是一个经典的线段树: 从下图当中我们不难看出来,这棵线段树维护的是一个 区间内的最大值 。比如树根是8,维护的是整个区间的最大值,每一个中间节点的值都是以它为树根的子树中所有元素的最大值。 通过线段树,我们可以在 的时间内计算出某一个 连续区间的最大值 。比如我们来看下图: 当我们要求被框起来的区间中的最大值,我们只需要 找到能够覆盖这个区间的中间节点 就行。我们可以发现被红框框起来的两个节点的子树刚好覆盖这个区间,于是整个区间的最大值,就是这两个元素的最大值。这样,我们就把一个需要 查找的问题降低成了 ,不但如此,我们也可以 做到 复杂度内的更新 ,也就是说我们不但可以快速查询,还可以更新线段当中的元素。 当然线段树的应用非常广泛,也有 许多种变体 ,这里我们不过多深入

建模的技巧及优化

£可爱£侵袭症+ 提交于 2020-04-08 03:29:16
建立模型应该考虑的几个问题 数 据仓库建模质量直接影响数据仓库项目的质量,甚至成败。在进行建模之前,要对数据仓库的规模、组成及模型不同部分的功能定位有明确的定义。影响数据仓库建 模的因素众多,且根据不同项目的具体情况而变化口下面的几个问题是较为通用和常见的,远远不是建立模型应该考虑的全部问题。 数据仓库的业务特点对建模的要求 1 数据仓库的数据组织是面向主题的,而不是面向报表的 数据仓库是面向业务分析的主要主题领域的,进行形成数据模型的定义。典型的主题领域主要包括: · ·顾客购买行为 · ·产品销售情况 · ·企业生产事务 · ·原料采购 · ·合作伙伴关系 · ·会计科目余额 要 对现有的报表需求进行细致的分类、分析和调整,不能为了实现单个报表而进行大量的建模工作。要根据分析的不同内容和主题对报表进行分类,明确报表中每一个 数据的定义、统计口径及不同数据之间的关系,建立在整个数据仓库内统一的数据指标的定义,将数据指标按分析主题及分析维度进行归集,从而形成面向主题的数 据模型。 例如:我们的利润表报表,当业务部门发我们一个利润表 的报表,作为需求时,我们应该进行细致的分析,最终我们确定我们面向的主题不是利润表,而是比利润表更大的一个层次的所有科目业务量的主题,这样我们在做 别的报表,例如资产负债表,现金流量表等报表时,就不用重复建模的工作了,做到了软件工程中的可重用规则。 2.

h264和h265多维度区别

﹥>﹥吖頭↗ 提交于 2020-04-06 09:50:31
h264和h265多维度区别 1. 概述 h265旨在在有限带宽下传输更高质量的网络视频,仅需原先的一半带宽即可播放相同质量的视频,很多朋友不知道h264和h265如何区别,下面让我们一起来了解一下吧。 压缩率:在同样的图像质量下,相比于h264,通过h265编码的视频大小减少了大约40%。 传输码率:h264可以在低于2兆每秒的速度下实现标清数字图像传送。 而h265则可以在低于1.5兆每秒的速度下实现全高清视频的传输。 2. H.265标准与H264标准的区别: 1)H.265是新的编码协议,也即是H.264的升级版。H.265标准保留H.264原来的某些技术,同时对一些相关的技术加以改进。新技术使用先进的技术用以改善码流、编码质量、延时和算法复杂度之间的关系,达到最优化设置。 2)H.265相比H.264最主要的改变是采用了块的四叉树划分结构,采用了从64x64~8x8像素的自适应块划分,并基于这种块划分结构采用一系列自适应的预测和变换等编码技术。 3)H265则可以实现利用1~2Mbps的传输速度传送720P普通高清音视频。同样的画质和同样的 码率 ,H.265比H2.64 占用的存储空间要少理论50%。 4)H265提供了更多不同的工具来降低 码率 ,以编码单位来说,H265中每个宏块大小都是固定的16x16像素

可视化反投射:坍塌尺寸的概率恢复:ICCV9论文解读

∥☆過路亽.° 提交于 2020-04-04 10:47:21
可视化反投射:坍塌尺寸的概率恢复:ICCV9论文解读 Visual Deprojection: Probabilistic Recovery of Collapsed Dimensions 论文链接: http://openaccess.thecvf.com/content_ICCV_2019/papers/Balakrishnan_Visual_Deprojection_Probabilistic_Recovery_of_Collapsed_Dimensions_ICCV_2019_paper.pdf 摘要 我们介绍视觉投射:恢复沿维度折叠的图像或视频的任务。投影出现在各种情况下,例如长曝光摄影,动态场景被及时折叠以产生运动模糊图像,以及角部相机,其中场景中反射的光由于边缘遮挡器而沿空间维度折叠以产生 1D视频。反投影是不适定的——通常对于给定的输入有许多合理的解决方案。我们首先提出了一个捕捉任务模糊性的概率模型。然后,我们提出了一种以卷积神经网络为函数逼近器的变分推理策略。在测试时从推理网络中采样,从与给定输入投影一致的原始信号分布中产生可能的候选信号。我们在多个数据集上对该方法进行了评估。我们首先证明了该方法可以从空间投影中恢复人体步态视频和人脸图像,然后证明该方法可以从通过时间投影获得的剧烈运动模糊图像中恢复运动数字视频。 1. Introduction

(ETL)ETL架构师面试题(转载)

懵懂的女人 提交于 2020-03-17 11:54:42
1. What is a logical data mapping and what does it mean to the ETL team? 什么是逻辑数据映射?它对ETL 项目组的作用是什么? 答:逻辑数据映射(Logical Data Map)用来描述源系统的数据定义、目标数据仓库的模型以及将源系统的数据转换到数据仓库中需要做操作和处理方式的说明文档,通常以表格或Excel的格式保存如下的信息: 目标表名: 目标列名: 目标表类型:注明是事实表、维度表或支架维度表。 SCD类型:对于维度表而言。 源数据库名:源数据库的实例名,或者连接字符串。 源表名: 源列名: 转换方法:需要对源数据做的操作,如Sum(amount)等。 逻辑数据映射应该贯穿数据迁移项目的始终,在其中说明了数据迁移中的ETL策略。在进行物理数据映射前进行逻辑数据映射对ETL项目组是重要的,它起着元数据的作用。项目中最好选择能生成逻辑数据映射的数据迁移工具。 2. What are the primary goals of the data discovery phase of the data warehouse project? 在数据仓库项目中,数据探索阶段的主要目的是什么? 答:在逻辑数据映射进行之前,需要首先对所有的源系统进行分析。对源系统的分析通常包括两个阶段,一个是数据探索阶段(Data

如何建立架构师所需的立体化思维?【1】

醉酒当歌 提交于 2020-03-13 05:11:27
从程序员往架构师转型的路上,蔡学镛老师总结的“四维架构设计方法论”对我颇有帮助,让我对架构设计有了更立体化、系统化的认知,现将学习心得分享出来供需要的小伙伴参考。 这套方法论通过空间( X 、 Y 、 Z )三个维度及时间 T 维度将问题域解构成可以轻松应对的小方块,分而治之。同时,空间( X 、 Y 、 Z )三个维度联动,专门为单个维度解决不了的问题提供解决方案。时间 T 维度将问题分解到一个时间范围内,分步骤按节奏逐一解决。多维度、立体化、分层次、动态演进,这是我对这套方法论特点的总结。 接下来,让我们进入这个四维的架构时空一探究竟! 图 1 四维座标系统 前后端维度( X1 … X7 ) 前后端维度被分解为交互、业务、领域、资源四大层,其中业务可以细分为应用 X2 、框架 X3 ,领域可以细分为服务 X4 、核心 X5 ,资源也可以细分为代理 X6 、数据 X7 ,共分为七个层次。服务 X4 可以实现 API ,如果公开,就是开放接口,调用服务层的接口,通常需要授权。代理 X6 可以实现 SPI ,隔离耦合,避免核心 X5 依赖特定的外部系统或数据库。每个层次做到高内聚,层与层之间做到低耦合。 图 2 X 轴分层结构 在系统实现过程中,可以综合考虑现状, X2 应用和 X3 框架可以不分拆, X4 服务和 X5 核心可以不分拆,待后续时机成熟可以再重构分层

[过拟合]早停法 (Early Stopping)

强颜欢笑 提交于 2020-03-08 09:39:09
1、过拟合 过拟合(overfitting)指的是只能拟合训练数据, 但不能很好地拟合不包含在训练数据中的其他数据的状态[来自 斋藤康溢] 解决过拟合问题有两个方向: 降低参数空间的维度或者降低每个维度上的有效规模(effective size)。降低每个参数维度的有效规模的方法主要是正则化,如权重衰变(weight decay)和 早停法(early stopping) 等。 降低参数数量的方法包括greedy constructive learning、剪枝和 权重共享(卷积) 等。 2、early stopping 2.1 定义 首先,先了解另一个东西,Callbacks.callbacks用于指定在每个epoch开始和结束的时候进行哪种特定操作。Callbacks中有一些设置好的接口,可以直接使用,如’acc’, 'val_acc’, ’loss’ 和 ’val_loss’等等。 而EarlyStopping是Callbacks的一种,EarlyStopping则是用于提前停止训练的callbacks。具体地, 可以达到当训练集上的loss不在减小(即减小的程度小于某个阈值)的时候停止继续训练。 2.2 意义 为了获得性能良好的神经网络,网络定型过程中需要进行许多关于所用设置(超参数)的决策。超参数之一是定型周期(epoch)的数量:亦即应当完整遍历数据集多少次

SSAS系列——【02】多维数据(维度对象)

我怕爱的太早我们不能终老 提交于 2020-03-08 02:10:23
原文: SSAS系列——【02】多维数据(维度对象) 1、维度是什么? 数学中叫参数,物理学中是独立的时空坐标的数目。0维是一点,1维是线,2维是一个长和宽(或曲线)面积,3维是2维加上高度形成体积面。在物理学上时间是第四维,与三个空间维不同的是,它只有一个,且只能往一方向前进。 图一 MSDN中关于维度的概念 2 、服务器对象的内容? 包括数据源、数据视图、数据库对象、安全角色和程序集。前4个都不难理解。关于程序集的概念,还需加强一下,程序集可为两种不同的类型:COM 和 CLR。CLR 程序集是使用 .NET Framework 编程语言(如 C#、Visual Basic .NET 和托管 C++)开发的程序集。说白了,你可以使用C#语言来编程处理服务器对象。 3、维度对象的内容? 简单 Dimension 对象由 基本信息 、 属性 和 层次结构 组成。基本信息包括维度的名称、维度的类型、数据源和存储模式等。属性可定义维度中的实际数据。属性可不必属于层次结构,但层次结构却要由属性生成。层次结构不但可创建级别的有序列表,还可定义用户浏览维度的方式。简单的讲,就像Session对象中的键值对一样,这里的key(基本信息)、Value(属性),但这里key之前可能存在一定的关系,所以多了一个层次结构。 维度的结构 a、最简单的——星型结构 特点:每个维度均基于一个通过主键

kylin的cube的原理

杀马特。学长 韩版系。学妹 提交于 2020-03-07 11:57:03
Kylin基本原理及概念 2019-01-24阅读 1K0 “带你走进Apache Kylin的世界” Kylin版本:2.5.1 前言 膜拜大神,Kylin作为第一个由国人主导并贡献到Apache基金会的开源项目,堪称大数据分析界的“神兽”。所以我也是抓紧时间来学习Kylin,感受Kylin所带来的魅力。 一、Kylin简介 Kylin的出现就是为了解决大数据系统中TB级别数据的数据分析需求,它提供Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,它能在亚秒内查询巨大的Hive表。其核心是预计算,计算结果存在HBase中。 作为大数据分析神器,它也需要站在巨人的肩膀上,依赖HDFS、MapReduce/Spark、Hive/Kafka、HBase等服务。 二、Kylin优势 Kylin的主要优势为以下几点: 可扩展超快OLAP引擎:Kylin是为减少在Hadoop/Spark上百亿规模数据查询延迟而设计 Hadoop ANSI SQL 接口:Kylin为Hadoop提供标准SQL支持大部分查询功能 交互式查询能力:通过Kylin,用户可以与Hadoop数据进行亚秒级交互,在同样的数据集上提供比Hive更好的性能 多维立方体(MOLAP Cube):用户能够在Kylin里为百亿以上数据集定义数据模型并构建立方体 与BI工具无缝整合

Numpy详解

吃可爱长大的小学妹 提交于 2020-03-02 03:48:59
NumPy 简介 Python并没有提供数组功能。虽然列表可以完成基本的数组功能,但它不是真正的数组,而且在数据量比较大时,使用列表的速度会很慢。为此,Numpy提供了真正的数组功能,以及对数据进行快速处理的函数。 NumPy的主要对象是同种元素的多维数组。这是一个所有的元素都是一种类型、通过一个正整数元组索引的元素表格(通常是元素是数字)。在NumPy中维度(dimensions)叫做轴(axes),轴的个数叫做秩(rank)。 例如,在3D空间一个点的坐标 [1, 2, 3] 是一个秩为1的数组,因为它只有一个轴。那个轴长度为3.又例如,在以下例子中,数组的秩为2(它有两个维度).第一个维度长度为2,第二个维度长度为3. [[ 1., 0., 0.], [ 0., 1., 2.]] NumPy的数组类被称作 ndarray 。通常被称作数组。注意numpy.array和标准Python库类array.array并不相同,后者只处理一维数组和提供少量功能。 数据类型 numpy的数据类型有下面的几个 数据类型 描述 bool_ 以字节存储的布尔值(True 或 False) int_ 默认的整数类型(和 C 的 long 一样,是 int64 或者 int32) intc 和 C 的 int 相同(一般为 int64 或 int32) intp 用于下标的整数(和 C 的