4 bitcarmanlee

尚未进行身份认证

暂无相关简介

等级
TA的排名 324

hive窗口函数实战(2)

1.什么是窗口函数在明白窗口函数的用途之前,我们先稍微提一下聚合函数,比如sum, count等常用的聚合函数,作用是将一列中多行的值合并为一行。与之对应的是,窗口函数完成的功能是本行内运算,从而多行的运算结果,即每一行的结果对应的多行的结果。一般窗口函数的语法为function() over (partition by column1, column2 order by column3)...

2020-04-08 17:50:26

item2vec详解

1.item2vec的兴起自从word2vec被证明效果不错以后,掀起了一股embedding的热潮。item2vec, doc2vec,总结起来就是everything2vec。在实际工作中,embedding的使用也非常广泛,今天我们就来说说常用的item2vec。word2vec构建样本时,句子分词以后就构成了一个天然的序列。那么在推荐的应用场景下,如何生成这个序列,或者说如何生成训练样...

2020-04-07 23:04:13

小白都能了解的聚类算法之四(谱聚类)

1.谱聚类概述谱聚类(Spectral clustering)是利用矩阵的特征向量进行聚类的一种方法,其本质上是矩阵特征分解进行降维的一种方法。它一般由两部分组成,第一部分是对数据进行变换,第二部分再使用传统的kmeans等方法对变换以后的数据进行聚类。谱聚类是从图论中演化出来的算法,后来在聚类中得到了广泛的应用。它的主要思想是把所有的数据看做空间中的点,这些点之间可以用边连接起来。距离较远的...

2020-03-29 23:12:17

小白都能了解的聚类算法之三(层次聚类)

1.简介层次聚类(Hierarchical Clustering)通过计算各类别中数据之间的相似度,最终创建一棵有层次的嵌套聚类树。起核心思想是基于各"簇"之间的相似度,在不同层次上分析数据,得到最终的树形聚类结构。2.agglomerative与divisive自底向上聚合(agglomerative)策略和自顶向下分拆(divisive)策略是层次聚类中常见的两种划分策略。算法的基本步...

2020-03-29 12:07:22

小白都能了解的聚类算法之二(DBSCAN)

1.简介DBSCAN(Density-Based Spatial Clustering of Application with Noise)是一种基于密度的经典聚类算法,出现的时间大概是1996年前后。2.DBSCAN的一些基本概念DBSCAN算法基于一组“邻域”参数(经常用ϵ\epsilonϵ,MinPts)来描述样本分布的紧凑程度。若给定样本集D=x1,x2,⋯ ,xmD= x_1, x...

2020-03-27 22:43:18

小白都能了解的聚类算法之一(Kmeans与GMM)

1.标准Kmeans经典的标准kmeans算法无需多言,每个无监督学习的开场白一般都是标准kmeans算法。具体的原理不再多言,可以参考之前的文章:https://blog.csdn.net/bitcarmanlee/article/details/52092288标准的kmeans的优缺点,上面的文章也有详细介绍,再详细说一说kmeans++对于初始中心点的优化kmeans++中心点初始...

2020-03-24 23:58:20

小白都能理解的ROC曲线与AUC值

1.ROC曲线在信号检测理论中,接收者操作特征曲线(receiver operating characteristic curve,或者叫ROC曲线)是一种坐标图式的分析工具,用于 (1) 选择最佳的信号侦测模型、舍弃次佳的模型。 (2) 在同一模型中设定最佳阈值。在做决策时,ROC分析能不受成本/效益的影响,给出客观中立的建议。ROC曲线首先是由二战中的电子工程师和雷达工程师发明的,用来侦...

2020-03-22 21:24:05

小白都能理解的FTRL

前言FTRL(Follow The(Proximally) Regularized Leader)算法是Online Learning的一种常用方法。传统的机器学习算法,基本的步骤是离线先做数据清洗,ETL,特征工程,然后训练模型上线。模型上线后,一般就是静态的,不会在线上有任何变化。即使是效果不太好,预测误差很大,也只能等下一次更新模型再加以修正。但是一般离线的数据pipeline比较长,而...

2020-03-20 17:31:50

Redis常用数据结构

1.Redis数据结构概览Redis总共包含有五种数据结构:1.String,单个key,单个value,一个redis字符串中最大有512M。2. Hash 是一个键值对的集合3. List 是一个链表结构4. Set 是一个无序集合,并且无重复5. Zset(sort set) 是一个有序集合,无重复2.Stringvalue是字符串类型常用的命令包括set key val...

2020-03-19 14:55:25

HashMap简单小结

1.HashMap的基础结构在1.7中,HashMap 底层是基于 数组 + 链表的结构组成。在1.8中,如果链表的长度大于一定的值,链表会转成红黑树。2.HashMap的参数(1.8) /** * The default initial capacity - MUST be a power of two. */ static final int DEFAU...

2020-03-18 22:18:39

redis缓存命中率计算

登录到Redis服务器上以后,输入info命令,在Stats部分会看到如下数据# Statstotal_connections_received:7429663total_commands_processed:5927397034instantaneous_ops_per_sec:1total_net_input_bytes:1206431541918total_net_output_...

2020-03-18 18:41:05

BloomFilter, Count-Min Sketch算法

1.bloom filter布隆过滤器(英语:Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。2.两种错误率FP/FNFP = A false positive error, or in short a f...

2020-03-08 21:48:35

Horner法则,MurMurHash

1.Horner法则假设有一个n次多项式需要计算。f(x)=anxn+an−1xn−1+⋯+a1x+a0f(x) = a_nx^n + a_{n-1}x^{n-1} + \cdots + a_1x + a_0f(x)=an​xn+an−1​xn−1+⋯+a1​x+a0​如果直接进行计算,需要n(n+1)2\frac{n(n+1)}{2}2n(n+1)​次乘法与nnn次加法。而乘法的代价是比较...

2020-03-08 18:55:25

HyperLogLog浅析

1.伯努利实验如果我们不断投掷一个硬币,而且该硬币是均匀的,每次投掷出现正反面的概率相等都为0.5,知道我们得到第一个正面,假设这个过程为一次伯努利过程。那么,投掷一次硬币就得到正面的概率为1/2,投掷两次硬币得到正面的概率为1/4。现在有如下两个问题:1.如果进行上述n次伯努利过程,所有投掷次数均不大于k(每次都小于k)的概率是多少?2.如果进行上述n次伯努利过程,至少有一次不小于k(至...

2020-03-05 22:13:19

缓存穿透,缓存击穿,缓存雪崩以及解决方案

1.缓存穿透一个缓存系统,正常情况下我们去查询的时候大部分key都是存在的。如果去请求一个缓存系统中没有的数据,此时系统如果没有经过优化,会将请求继续打到数据库上,但其实数据库上也没有这条数据。上面这种情况就叫缓存穿透。如果有人要对系统进行攻击,拿大量不存在的key去发起请求,你的系统将会产生大量的请求直接访问数据库,这样数据库的压力太大很有可能直接宕机,整个服务直接挂掉。针对上面这种情况...

2020-03-02 10:06:05

调和平均数

调和平均数(Harmonic mean),是求一组数值的平均数的方法中的一种,一般是在计算平均速率时使用。计算方法为:nHn=1a1+1a2+⋯+1an\frac{n}{H_n} = \frac{1}{a_1} + \frac{1}{a_2} + \cdots + \frac{1}{a_n}Hn​n​=a1​1​+a2​1​+⋯+an​1​知乎上有个关于调和平均数的回答如下:调和平均的哲学...

2020-03-01 23:55:04

Java 程序员都该懂的 volatile 关键字

原文链接https://www.jianshu.com/p/4aea469f8e47一. 主存与工作内存说 volatile 之前,先来聊聊 Java 的内存模型。在 Java 内存模型中,规定了所有的变量都是存储在主内存当中,而每个线程都有属于自己的工作内存。线程的工作内存保存了被该内存使用到的变量的主内存副本拷贝,线程对变量的所有操作(读取,赋值等)都必须在工作内存中进行,而不能直接对...

2020-02-20 16:39:47

spark User class threw exception: java.lang.NoSuchMethodError

在spark 集群上运行job的时候,经常会出现类似如下错误提示:User class threw exception: java.lang.NoSuchMethodError: org.apache.spark.WritableConverter$.writableWritableConverterFn(Lscala/reflect/ClassTag;)Lscala/Function0;at...

2020-02-08 12:14:37

查找算法小结

前言对数据进行查找是数据处理中一个最基本最常见同时也最重要的操作。那么常见的查找方法有哪些,怎么能够实现又好又快的查找方式呢?下面来做一个小结1.遍历,顺序查找如果数据没有任何特点可言,要在一堆数据比如一个一维数组中查找一个特定的数据,此一维数组没有规律。那么很自然想到的方法就是遍历该一维数组,然后与特定数据进行比较看是否相同。时间复杂度分析该特定数据有可能再数组开头,也有可能再数组的末...

2020-02-01 22:04:46

linux shell用变量的值作为新变量名

实例如下:path1="123abc"i=1pathstr=path$iecho $pathstr# 结果为path1# 想将path1替换为123abcpath=`eval echo '$'"$pathstr"`echo $patheval命令小结:eval命令将会首先扫描命令行进行所有的替换,憨厚再执行命令。该命令使用于那些一次扫描无法实现其功能的变量。该命令对变量进行两...

2020-01-20 09:52:41

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。