空间维度

Kdtree(K-dimension tree)学习

你。 提交于 2020-01-08 10:47:41
以下总结纯属个人学习理解,如有不对还望留言改正。参考文章博客地址如下: https://blog.csdn.net/likika2012/article/details/39619687 https://blog.csdn.net/zhjchengfeng5/article/details/7855241 https://www.joinquant.com/view/community/detail/c2c41c79657cebf8cd871b44ce4f5d97 https://zhuanlan.zhihu.com/p/22557068 https://www.cnblogs.com/dirge/p/6091241.html https://leileiluoluo.com/posts/kdtree-algorithm-and-implementation.html 感谢几位大神的详细总结; 首先要学习kdtree就要先理解二叉树,因为实现kdtree的数据结构是基于二叉树思想来实现的。 二叉树顾名思义就是一个根节点有两个子节点;二叉树思想: 二叉查找树(Binary Search Tree,BST),是具有如下性质的二叉树(来自wiki): 1)若它的左子树不为空,则左子树上所有结点的值均小于它的根结点的值; 2)若它的右子树不为空,则右子树上所有结点的值均大于它的根结点的值;

【datamining】OLTP,OLAP,维度数据库,事实表,维度表、星形和雪花模式、数据立方体、概念分层

六月ゝ 毕业季﹏ 提交于 2020-01-01 00:55:16
一、 联机事务处理(OLTP) OLTP系统是设计用来允许高并发性的,这样很多用户就能够访问同一个数据源并进行所需的处理。 OLTP系统是面向在数据库上进行事务处理的理念的。而事务则进一步蕴含着发生在表中数据上的受控的变更,这些变更包括在商务运作过程中发生的插入、更新和删除操作。通常,一个OLTP系统将会有大量的客户端应用程序通过各种各样的方式(插入、更新、删除--实际上可以是任何操作)访问数据库以查询一小块信息。 OLTP系统的实例包括数据输入程序,如银行处理、订票、联机销售和库存管理系统。 二、联机分析处理(OLAP) 联机分析处理(或OLAP)是一种广义上的决策支持系统(DSS),或者最近越来越流行的商业智能(BI)。BI系统的目标是分析海量数据,然后以很多不同的方式(包括每天、每周、每季和年度报告)生成小结和总结以把精力高度集中在记分卡和仪表盘上,它们通常用于帮助那些准备好根据这些数据采取一定的措施的特定用户来获取竞争优势。 一旦数据进入数据仓库之后就很少会发生变化。数据被保存在那里用于查询和生成报表,以便帮助决策者规划企业的未来。它不需要关心插入、更新和删除操作。因此与高度规范的事务数据库不同,在这种情况下通常会使用所谓的 维度数据库 (dimensional database) ,它将遵循特定的结构或模式。 维度数据库可以用来构建数据立方体 ,

Kylin 在一点资讯的实践

筅森魡賤 提交于 2019-12-28 10:14:34
在近期的 Apache Kylin Meetup 北京站上,我们邀请到了一点资讯的大数据平台高级工程师毛洪玥来分享 Kylin 在一点资讯的应用。本次分享由一点资讯 OLAP 发展历程和系统基础架构开始,以 Kylin 在一点资讯的业务需求和实践经验为依托,分享针对数据量较大的Cube如何提高查询响应速度,如何缩短构建时间,如何缓解 HBase 压力来提升稳定性,及使用过程中遇到的特殊数据问题与解决方案等。 发展历程 2016 年 9 月开始,一点资讯选择了综合性能优秀的 Druid 来承接大数据部门、算法部门和广告部门的多维分析查询需求。2017 年 9 月,接入刚刚开源的 Doris,承接明细查询和 SQL 分析业务。 至今年 5 月,随着业务增长和数据积累,冷数据占比增高,机器利用率降低。大部分数据月查询次数不超过 1 次,却需要长期存储,因而造成大量机器资源浪费。如何提高有限资源的利用率,支持维度高达 27 个,日志量达 1 T/天,查询周期长达 1 年的业务呢?经过一系列调研,一点资讯决定使用 Kylin 系统。Kylin 支持Hive、Kafka等形式的数据源,Cube存储及查询使用HBase,构建任务可以利用运行在Yarn上的MapReduce或Spark任务,这些都是一点资讯使用中的大数据组件,它们的存储计算均为PB级或以上级别,只需要再搭建轻量级 Kylin

深度学习-最优化笔记

徘徊边缘 提交于 2019-12-27 17:29:29
作者:杜客 链接:https://zhuanlan.zhihu.com/p/21360434 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 译者注:本文 智能单元 首发,译自斯坦福CS231n课程笔记 Optimization Note ,课程教师 Andrej Karpathy 授权翻译。本篇教程由 杜客 翻译完成, 堃堃 和 李艺颖 进行校对修改。译文含公式和代码,建议PC端阅读。 原文如下 内容列表: 简介 损失函数可视化 最优化 策略#1:随机搜索 策略#2:随机局部搜索 策略#3:跟随梯度 译者注:上篇截止处 梯度计算 使用有限差值进行数值计算 微分计算梯度 梯度下降 小结 简介 在上一节中,我们介绍了图像分类任务中的两个关键部分: 基于参数的 评分函数。 该函数将原始图像像素映射为分类评分值(例如:一个线性函数)。 损失函数 。该函数能够根据分类评分和训练集图像数据实际分类的一致性,衡量某个具体参数集的质量好坏。损失函数有多种版本和不同的实现方式(例如:Softmax或SVM)。 上节中,线性函数的形式是 ,而SVM实现的公式是: 对于图像数据 ,如果基于参数集 做出的分类预测与真实情况比较一致,那么计算出来的损失值 就很低。现在介绍第三个,也是最后一个关键部分: 最优化Optimization

cs231n笔记(二) 最优化方法

佐手、 提交于 2019-12-27 17:29:20
回顾上一节中,介绍了图像分类任务中的两个要点: 假设函数。 该函数将原始图像像素映射为分类评分值。 损失函数 。该函数根据分类评分和训练集图像数据实际分类的一致性,衡量某个具体参数集的质量好坏。 现在介绍第三个要点,也是最后一个关键部分: 最优化Optimization 。最优化是寻找能使得损失函数值最小化的参数 W 的过程,一旦理解了这三个部分是如何相互运作的,我们将会回到第一个要点,然后将其拓展为一个远比线性函数复杂的函数:首先是神经网络,然后是卷积神经网络。而损失函数和最优化过程这两个部分将会保持相对稳定。 损失函数可视化 : 本节讨论的损失函数一般都是定义在高维度的空间中(比如,在 CIFAR-10 中一个线性分类器的权重矩阵大小是 $[10 \times 3073]$ ,就有 30730 个参数),这样要将其可视化就很困难。然而办法还是有的,在 1 个维度或者 2 个维度的方向上对高维空间进行切片,就能得到一些直观感受。例如,随机生成一个权重矩阵 W ,将其看做向量,该矩阵就与高维空间中的一个点对应。然后沿着某个维度方向前进的同时记录损失函数值的变化。换句话说,就是生成一个随机的方向 $W_1$ 并且沿着此方向计算损失值,计算方法是根据不同的 $a$ 值来计算 $L(W + aW_1)$ 。这个过程将生成一个图表,其 $x$ 轴是 $a$ 值,$y$ 轴是损失函数值

数据仓库建模

▼魔方 西西 提交于 2019-12-27 09:16:52
前言 数据仓库建模包含了几种数据建模技术,除了之前在数据库系列中介绍过的 ER建模 和 关系建模 ,还包括专门针对数据仓库的维度建模技术。 本文将详细介绍数据仓库维度建模技术,并重点讨论三种基于ER建模/关系建模/维度建模的数据仓库总体建模体系:规范化数据仓库,维度建模数据仓库,以及独立数据集市。 回到顶部 维度建模的基本概念 维度建模(dimensional modeling)是专门用于分析型数据库、数据仓库、数据集市建模的方法。 它本身属于一种关系建模方法,但和之前在操作型数据库中介绍的关系建模方法相比增加了两个概念: 1. 维度表(dimension) 表示对分析主题所属类型的描述。比如"昨天早上张三在京东花费200元购买了一个皮包"。那么以购买为主题进行分析,可从这段信息中提取三个维度:时间维度(昨天早上),地点维度(京东), 商品维度(皮包)。通常来说维度表信息比较固定,且数据量小。 2. 事实表(fact table) 表示对分析主题的度量。比如上面那个例子中,200元就是事实信息。事实表包含了与各维度表相关联的外码,并通过JOIN方式与维度表关联。事实表的度量通常是数值类型,且记录数会不断增加,表规模迅速增长。 注:在数据仓库中不需要严格遵守规范化设计原则(具体原因请看 上篇 )。本文示例中的主码,外码均只表示一种对应关系,此处特别说明 。 回到顶部

Numpy的基础知识

我怕爱的太早我们不能终老 提交于 2019-12-26 01:29:05
文章目录 Numerical Python介绍 基础数据结构ndarray数组 为什么引入ndarray数组 ndarray数组和list列表分别完成对每个元素增加1的计算 ndarray数组和list列表分别完成相加计算 如何创建ndarray数组 查看ndarray数组的属性 改变ndarray数组的数据类型和形状 ndarray数组的基本运算 标量和ndarray数组之间的运算 两个ndarray数组之间的运算 ndarray数组的索引和切片 ndarray数组的统计运算 随机数np.random 创建随机ndarray数组 设置随机数种子 随机打乱ndarray数组顺序 随机选取元素 线性代数 Numpy保存和导入文件 Numpy应用举例 Numpy应用举例——计算激活函数 Numpy应用举例——图像翻转和裁剪 课程作业 1 使用numpy计算tanh激活函数 2 统计随机生成矩阵中有多少个元素大于0 Numerical Python介绍 Numpy是Numerical Python的简称,是Python中高性能科学计算和数据分析的基础包。Numpy提供了一个多维数组类型ndarray,它具有矢量算术运算和复杂广播的能力,可以实现快速的计算并且能节省存储空间。在使用Python调用飞桨API完成深度学习任务的过程中,通常会使用Numpy实现数据预处理和一些模型指标的计算

PCA降维及SVD

荒凉一梦 提交于 2019-12-23 12:37:36
PCA降维 1.相关背景 我们在实际工作中经常需要分析不同组呈现来的成千上百个指标的数据,这些指标之间经常有一些相关性指标,比如厘米和英尺,这样的指标我们只要保留一个就可以,还有一些隐藏的高度相关的特征,以通过降维方法来进行数据预处理。 2. 数据降维 主成分分析(Principal Component Analysis,简称PCA)是一种常用的降维方法,属于无监督学习。所谓降维就是将数据指标从高维度减到低维度,因为低维度的数据有如下优点: 1) 更容易进行数据分析和数据可视化 2)更容易进行数据存储 3)降低算法的运行成本 3.PCA原理 样本点分布在正交属性空间中,我们如何找到一个超平面(直线的高维推广)对所有样本点最合适的表达? 1.最近重构性:样本点到这个超平面的距离足够近(类似线性回归) 2.最大可分性:样本点到这个超平面的投影尽可能分开(方差最大化) 以上两种方式得到的主成分分析的推导是等价的,下面从”最大可分析“进行推导PCA的过程。 3.1 向量的表示及基变换 3.1.1 向量的內积 a ⃗ ⋅ b ⃗ = ∣ a ⃗ ∣ ∣ b ⃗ ∣ c o s α ( α 为 两 个 向 量 的 夹 角 ) \vec a\cdot\vec b = |\vec a||\vec b|cos\alpha(\alpha为两个向量的夹角) a ⋅ b = ∣ a ∣ ∣ b ∣ c o

Pytorch学习--创建、索引、维度变换、数学运算、统计属性

情到浓时终转凉″ 提交于 2019-12-20 16:24:59
文章目录 Pytorch数据类型 dim = 1 各个维度的区分: 创建Tensor 随机初始化 索引与切片 维度变换 Broadcast 拼接与拆分 数学运算 统计属性 dim与keepdim 高级操作 Pytorch数据类型 IntTensor FloatTensor 需要注意,没有string对应的数据类型,可以用one-hot或者embedding支持。 放置在GPU上时,数据类型存在区别,如: torch.FloatTensor (CPU) 与 torch.cuda.FloatTensor (GPU) isinstance 检验合法性 data = data.cuda() 可以搬运到GPU torch.tensor(1.0) 表示标量 常量是0维向量。 .shape 是成员, .size() 是方法。 dim = 1 torch.tensor([1.1]) 直接指定数据 torch.FloatTensor(2) 指定维度,dim=1,size=2 常用于bias的表示。 dim = 2 的样例: a = torch.randn(2,3) 各个维度的区分: 如果是两行两列的tensor,则 dim() = 2; size() / shape = [2,2] ; a.numel() = 4 dim即size()的长度。 创建Tensor torch.from_numpy(a)

Apache kylin 入门

我怕爱的太早我们不能终老 提交于 2019-12-18 10:57:57
本篇文章就概念、工作机制、数据备份、优势与不足4个方面详细介绍了Apache Kylin。 Apache Kylin 简介 1. Apache kylin 是一个开源的海量数据分布式预处理引擎。它通过 ANSI-SQL 接口,提供基于 hadoop 的超大数据集(TB-PB 级)的多维分析(OLAP)功能。 2. kylin 可实现超大数据集上的亚秒级(sub-second latency)查询。 1)确定 hadoop 上一个星型模式的数据集。 2)构建数据立方体 cube。 3)可通过 ODBC, JDBC,RESTful API 等接口在亚秒级的延迟内查询相 Apache Kylin 核心概念 1. 表(Table ):表定义在 hive 中,是数据立方体(Data cube)的数据源,在 build cube 之前,必须同步在 kylin 中。 2. 模型(model): 模型描述了一个星型模式的数据结构,它定义了一个事实表(Fact Table)和多个查找表(Lookup Table)的连接和过滤关系。 3. 立方体(Cube):它定义了使用的模型、模型中的表的维度(dimension)、度量(measure , 一般指聚合函数,如:sum、count、average 等)、如何对段分区( segments partition)、合并段(segments auto