空间维度

Python numpy的基本操作你一般人都不会

拟墨画扇 提交于 2019-12-06 00:32:09
前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 PS:如有需要最新Python学习资料的小伙伴可以加点击下方链接自行获取 http://note.youdao.com/noteshare?id=a3a533247e4c084a72c9ae88c271e3d1 来看正文: 0、NumPy 与 ndarry NumPy 是 Python 科学计算的基础包,它专为进行严格的数字处理而产生。 它提供: 快速高效的多维数组对象 ndarray; 直接对数组执行数学运算及对数组执行元素级计算的函数; 线性代数运算、随机数生成; 将 C、C++、Fortran 代码集成到 Python 的工具等。 它专为进行严格的数字处理而产生。多为很多大型金融公司使用,以及核心的科学计算组织如:Lawrence Livermore,NASA 用其处理一些本来使用 C++,Fortran 或Matlab 等所做的任务。 ndarray 是一个多维的数组对象,具有矢量算术运算能力和复杂的广播能力,并具有执行速度快和节省空间的特点。 ndarray 的一个特点是同构:即其中所有元素的类型必须相同。 1、数组属性查看:类型、尺寸、形状、维度 import numpy as np a1 = np.array([1,2,3,4],dtype

Kylin 精确去重在用户行为分析中的妙用

无人久伴 提交于 2019-12-05 14:49:26
作者:史少锋,Apache Kylin committer & PMC,2019/10/11 在上次文章 《如何在 1 秒内做到大数据精准去重》 中,我们介绍了 Apache Kylin 为什么要支持大数据集上的精确去重,以及基于 Bitmap 的精确去重原理等。看到今天的文章标题,你肯定要问,精确去重跟用户行为分析又能有什么关系呢?原来啊,Kylin 采用 Bitmap 完整记录了每个维度组合下的用户集合,利用 Bitmap 提供的或(or)运算方法来高效精准地回答了各种条件下的去重用户数。其实 Bitmap 除了支持或(or)运算外,还支持与(and)运算。因此,稍加扩展,Kylin 就可以基于 Bitmap 的中间结果,轻松实现诸如留存、漏斗等大量使用交集运算的分析,从而非常方便地运用在用户行为、用户画像等领域中。可以说精确去重功能有着一石两鸟的价值,本文将为您介绍如何使用 Kylin 来实现精准的用户行为分析。 示例 先从一个简单的例子说起吧。现在有一个 app 的用户访问记录表 access_log,它包含三个字段:DT (访问日期),User ID(用户标示)和 Page(访问页): DT User ID Page 20190101 100 index.html 20190101 101 search.html 20190101 102 detail.html … …

WGAN-GP代码注释

二次信任 提交于 2019-12-05 10:42:33
今天看到paperweekly上有人分享了一个 WGAN-GP 的实现,是以MNIST为数据集,代码简洁,结构清晰。我最近也在看GAN的相关内容,就下载下来做个参考。 代码地址: https://github.com/bojone/gan/ 对于这个基于tensorflow实现的代码,我对其进行了简单的注释。 import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data import os import numpy as np from scipy import misc,ndimage #读入本地的MNIST数据集,该函数为mnist专用 mnist = input_data.read_data_sets( './MNIST_data' , one_hot= True ) batch_size = 100 #每个batch的大小 width,height = 28 , 28 #每张图片包含28*28个像素点 mnist_dim = width*height #用一个数字数组表示一张图,那么这个数组展开成向量的长度就是28*28=784 random_dim = 10 #每张图表示一个数字,从0到9 epochs = 1000000 #共100万轮 def my_init

DCGAN论文笔记+源码解析

筅森魡賤 提交于 2019-12-05 08:26:04
论文地址: UNSUPERVISED REPRESENTATION LEARNING WITH DEEP CONVOLUTIONAL GENERATIVE ADVERSARIAL NETWORKS 源码地址: DCGAN in TensorFlow DCGAN,Deep Convolutional Generative Adversarial Networks是生成对抗网络(Generative Adversarial Networks)的一种延伸,将卷积网络引入到生成式模型当中来做无监督的训练,利用卷积网络强大的特征提取能力来提高生成网络的学习效果。 DCGAN有以下特点: 1.在判别器模型中使用strided convolutions来替代空间池化(pooling),而在生成器模型中使用fractional strided convolutions,即deconv,反卷积层。 2.除了生成器模型的输出层和判别器模型的输入层,在网络其它层上都使用了Batch Normalization,使用BN可以稳定学习,有助于处理初始化不良导致的训练问题。 3.去除了全连接层,而直接使用卷积层连接生成器和判别器的输入层以及输出层。 4.在生成器的输出层使用Tanh激活函数,而在其它层使用ReLU;在判别器上使用leaky ReLU。 原论文中只给出了在LSUN实验上的生成器模型的结构图如下:

DCGAN论文笔记+源码解析

血红的双手。 提交于 2019-12-05 07:58:14
DCGAN论文笔记+源码解析 论文地址: UNSUPERVISED REPRESENTATION LEARNING WITH DEEP CONVOLUTIONAL GENERATIVE ADVERSARIAL NETWORKS 源码地址: DCGAN in TensorFlow DCGAN,Deep Convolutional Generative Adversarial Networks是生成对抗网络(Generative Adversarial Networks)的一种延伸,将卷积网络引入到生成式模型当中来做无监督的训练,利用卷积网络强大的特征提取能力来提高生成网络的学习效果。 DCGAN有以下特点: 1.在判别器模型中使用strided convolutions(跨步卷积)来替代空间池化(pooling),而在生成器模型中使用fractional strided convolutions,即deconv,反卷积层。 2.除了生成器模型的输出层和判别器模型的输入层,在网络其它层上都使用了Batch Normalization,使用BN可以稳定学习,有助于处理初始化不良导致的训练问题。 3.去除了全连接层,而直接使用卷积层连接生成器和判别器的输入层以及输出层。 4.在生成器的输出层使用Tanh激活函数,而在其它层使用ReLU;在判别器上使用leaky ReLU。

Druid 驱动海量实时多维分析

旧时模样 提交于 2019-12-05 01:07:38
我今天分享的话题是Druid驱动海量数据实时多维分析。 1、需求背景 首先我来谈一下海量实时多维分析的需求背景,我们广告系统有DSP睿视系统和AD exchange等,前段时间品友的曹老师分享时提到DSP Ad exchange,如果对DSP不了解的同学,可以在百度百科上查一下“互联网广告DSP”,实时竞价是DSP的核心,广告主或者优化师需要动态调整出价优化使收益最大化。 广告主调整出价策略或者投放策略进行优化,想要尽快得到实时的反馈,比如修改了地域定投,实时分地域的竞得率和转化率,甚至是分钟粒度的。在我们的DSP系统中我们提供12种维度(不算多)的多维分析,用户可以任意组合下钻查询。 最初的时候我并不是采用Druid,而是采用Storm+Kafka+Redis实时数据处理,以及hive+mysql的离线处理的Lambda架构架构见下图。 实时数据经过Storm ETL,主要是将不同维度组合作为key,计算metrics以后为value存在redis中。离线数据定时将昨天的数据在Hive中 经过一系列ETL,按照维度组合计算metrics以后将结果存储在mysql中。 采用redis作为实时数据的存储有两个核心问题需要解决: redis不支持range scan,我们需要在app层拼好所有的key,然后调用mget获取,如果执行groupby查询的话例如select area,pv

你需要的不是实时数仓 | 你需要的是一款合适且强大的OLAP数据库(上)

◇◆丶佛笑我妖孽 提交于 2019-12-04 07:53:14
前言 今年有个现象,实时数仓建设突然就被大家所关注。我个人在公众号也写过和转载过几篇关于实时数据仓库的文章和方案。 但是对于实时数仓的狂热追求大可不必。 首先,在技术上几乎没有难点,基于强大的开源中间件实现实时数据仓库的需求已经变得没有那么困难。其次,实时数仓的建设一定是伴随着业务的发展而发展,武断的认为Kappa架构一定是最好的实时数仓架构是不对的。实际情况中随着业务的发展数仓的架构变得没有那么非此即彼。 在整个实时数仓的建设中,OLAP数据库的选型直接制约实时数仓的可用性和功能性。本文从业内几个典型的数仓建设和发展情况入手,从架构、技术选型和优缺点分别给大家分析现在市场上的开源OLAP引擎,旨在方便大家技术选型过程中能够根据实际业务进行选择。 管中窥豹-菜鸟/知乎/美团/网易严选实时数仓建设 为什么要构建实时数据仓库 传统的离线数据仓库将业务数据集中进行存储后,以固定的计算逻辑定时进行ETL和其它建模后产出报表等应用。离线数据仓库主要是构建T+1的离线数据,通过定时任务每天拉取增量数据,然后创建各个业务相关的主题维度数据,对外提供T+1的数据查询接口。计算和数据的实时性均较差,业务人员无法根据自己的即时性需要获取几分钟之前的实时数据。数据本身的价值随着时间的流逝会逐步减弱,因此数据发生后必须尽快的达到用户的手中,实时数仓的构建需求也应运而生。 总之就是一句话:时效性的要求。

Kylin笔记

允我心安 提交于 2019-12-04 06:34:20
简介 Apache Kylin(Extreme OLAP Engine for Big Data)是一个开源的分布式 分析引擎,为Hadoop等大型分布式数据平台之上的超大规模数据集通过标准 SQL查询及多维分析(OLAP)功能,提供亚秒级的交互式分析能力。 Apache Kylin是一个开源的分布式分析引擎,最初由eBay开发贡献至开源社区。 它提供Hadoop之上的SQL查询接口及 多维分析(OLAP)能力以支持大规模数据,能够处理TB乃至PB级别的分析任务,能够在 亚秒级查询巨大的Hive表,并支持高并发。 于2014年10月在github开源,并很快在2014年11月加入Apache孵化器,于 2015年11月正式毕业成为Apache顶级项目,也成为首个完全由中国团队设计开发的 Apache顶级项目。 于2016年3月,Apache Kylin核心开发成员创建了Kyligence公司,力求 更好地推动项目和社区的快速发展。 使用它的原因 在大数据的背景下,Hadoop的出现解决了数据存储问题,但如何对海量数据进行 OLAP查询,却一直令人十分头疼。企业中大数据查询大致分为两种:即席查询和定制查询。 即席查询 Hive、SparkSQL等OLAP引擎,虽然在很大程度上降低了数据分析的难度,但它们都只适用于即席查询的场景。 它们的优点是查询灵活,但是随着数据量和计算复杂度的增长

LSH搜索算法

我们两清 提交于 2019-12-04 01:32:24
LSH(Location Sensitive Hash),即位置敏感哈希函数。与一般哈希函数不同的是位置敏感性,也就是散列前的相似点经过哈希之后,也能够在一定程度上相似,并且具有一定的概率保证。 作者注:LSH算法分两种:SimHash和MinHash。 simhash的原理是减少搜索空间,用汉明距离替代余弦距离 minHash的原理是降维。通过hash映射函数,将特征元素的个数降下来。 形式化定义: 对于任意q,p属于S,若从集合S到U的函数族H={h1,h2...hn}对距离函数D(,),如欧式距离、曼哈顿距离等等,满足条件: 则称D(,)是位置敏感的。 如下图,空间上的点经位置敏感哈希函数散列之后,对于q,其rNN有可能散列到同一个桶(如第一个桶),即散列到第一个桶的概率较大,会大于某一个概率阈值p1;而其(1+emxilong)rNN之外的对象则不太可能散列到第一个桶,即散列到第一个桶的概率很小,会小于某个阈值p2. LSH的作用 ◆高维下近似查询 相似性检索在各种领域特别是在视频、音频、图像、文本等含有丰富特征信息领域中的应用变得越来越重要。丰富的特征信息一般用高维向量表示,由此相似性检索一般通过K近邻或近似近邻查询来实现。一个理想的相似性检索一般需要满足以下四个条件: 1. 高准确性。即返回的结果和线性查找的结果接近。 2. 空间复杂度低。即占用内存空间少。理想状态下

Kmeans 的 CUDA 并行实现

寵の児 提交于 2019-12-04 01:28:14
1. Kmeans 步骤 常规的 Kmeans 步骤: 1. 初始化聚类中心 2. 迭代 1. 计算每个样本与聚类中心的欧式距离 2. 根据样本与聚类中心的欧式距离更新每个样本的类标签 3. 根据类标签更新聚类中心 本文中并行化的 Kmeans 的步骤: 初始化每个样本的类标签 迭代 统计每一类的样本和 统计每一类的样本个数 计算每一类的聚类中心:样本和 / 样本个数 计算每个样本与每个聚类中心的欧式距离 根据每个样本与聚类中心的欧式距离更新样本的类标签 如下所示: /* 样本聚类索引的初始化*/ KmeansCUDA_Init_ObjClusterIdx<<<>>>(); for ( int i = 0 ; i < maxKmeansIter; i++) { /* 统计每一类的样本和 */ KmeansCUDA_Update_Cluster<<<>>>(); /* 统计每一类的样本个数 */ KmeansCUDA_Count_objNumInCluster<<<>>>(); /* 聚类中心平均 = 样本和 / 样本个数 */ KmeansCUDA_Scale_Cluster<<<>>>(); /* 计算每个样本与每个聚类中心的欧式距离 */ KmeansCUDA_distOfObjAndCluster<<<>>>(); /* 根据每个样本与聚类中心的欧式距离更新样本的类标签 */