自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(114)
  • 收藏
  • 关注

原创 spark RDD概念及其算子举例讲解

作为之前对spark RDD可以说是完全不懂的小白,在阅读部分网友的博客的基础上,我从自己理解的角度和方式来记录一下自己学习spark RDD的过程。目录一、RDD介绍1.1RDD是什么1.2Spark与RDD的关系1.3为什么会产生RDD1.4RDD底层实现原理1.5 RDD的操作二、通过例子学习spark RDD的操作2.1 Action函数...

2019-01-04 15:39:42 2090

转载 关联规则(二):PrefixSpan算法原理总结及在pyspark下的实践

参考文献【1】PrefixSpan算法原理总结【2】用Spark学习FP Tree算法和PrefixSpan算法【3】Source code for pyspark.mllib.fpm【4】PrefixSpan【5】PrefixSpan序列模式挖掘算法...

2018-12-25 14:39:17 3959

转载 关联规则(一):Apriori算法和FP Tree算法原理总结

关联规则可以说得上是数据挖掘领域最广为人知的一类算法了,起码对于我来说是这样的,在大三时候第一次接触数据挖掘领域就是Apriori算法了,后来又断断续续地接触到了FP Tree算法。现在因为工作的原因,需要进一步了解频繁序列模式挖掘算法PrefixSpan。刘建平老师之前总结过这3个算法。因此我在这里转载过来刘老师的文章,在我理解的角度上,补充一些知识点。本篇博客先介绍Apriori算法和FP...

2018-12-24 17:52:57 10955

转载 深度学习(六):LSTM模型与前向反向传播算法

在《深度学习(五):循环神经网络(RNN)模型与前向反向传播算法》中,我们总结了对RNN模型做了总结。由于RNN也有梯度消失的问题,因此很难处理长序列的数据,大牛们对RNN做了改进,得到了RNN的特例LSTM(Long Short-Term Memory),它可以避免常规RNN的梯度消失,因此在工业界得到了广泛的应用。下面我们就对LSTM模型做一个总结。一、从RNN到LSTM在RNN模型里,我...

2018-12-22 16:10:55 3313

转载 深度学习(五):循环神经网络(RNN)模型与前向反向传播算法

在前面我们讲到了DNN,以及DNN的特例CNN的模型和前向反向传播算法。链接如下:深度学习(一):DNN前向传播算法和反向传播算法深度学习(二):DNN损失函数和激活函数的选择深度学习(四):卷积神经网络(CNN)模型结构,前向传播算法和反向传播算法介绍。建议在读本文之前,重点读下前2篇文章。如果不了解DNN的前向和反向传播的话,理解本篇文章会有难度。这些算法都是前向反馈的,模型的输出和...

2018-12-21 15:58:00 3366 3

转载 拉链表介绍,及其在Hive中如何更新

全文由下面几个部分组成:先分享一下拉链表的用途、什么是拉链表。通过一些小的使用场景来对拉链表做近一步的阐释,以及拉链表和常用的切片表的区别。举一个具体的应用场景,在Hive下设计并实现一份拉链表,最后并通过一些例子说明如何使用我们设计的这张表。分析一下拉链表的优缺点,并对前面的提到的一些内容进行补充说明,比如说拉链表和流水表的区别。一、什么是拉链表拉链表是针对数据仓...

2018-12-20 17:38:34 2857

原创 Xgboost系统设计:分块并行、缓存优化和Blocks for Out-of-core Computation

Xgboost的原理我之前已经介绍过了,详见《(二)提升树模型:Xgboost原理与实践》。 最近,想起来阅读Xgboost源论文中还没有读过的一块,即第4章SYSTEM DESIGN系统实现。第4章包括3个小节:Column Block for Parallel LearningCache-aware AccessBlocks for Out-of-core Computati...

2018-12-19 14:46:59 10060 6

原创 深入理解机器学习中的各种熵和信息:信息量,熵,交叉熵,相对熵,条件熵,互信息等。

对机器学习了解的读者肯定经常听到以下名词:信息量,熵,交叉熵,相对熵,条件熵,互信息等。很多人对这些大同小异的名词很容易产生迷惑,它们之间究竟有什么关系?本篇博客在参考文献的基础上,从我自己理解的角度上,依次介绍信息量、信息熵、交叉熵、相对熵、条件熵、互信息、信息增益和信息增益率,试图清晰地说明这些概念之间的区别和联系。有些概念为了生动,我会举例说明,有些概念为了严谨,我会从公式推导上说明。一...

2018-12-14 10:53:50 2038 1

原创 深入理解深度学习中的Normalization操作

Normalization, 即标准化, 和普通的数据标准化类似, 是将分散的数据统一的一种做法, 也是优化神经网络的一种方法。Normalization 可以将数据统一规格, 能让机器学习更容易学习到数据之中的规律。在深度学习中,Normalization已经成为了标准技术。2015 年Google首先提出了Batch Normalization(BN),源论文地址。自 BN 之后, Laye...

2018-12-13 11:28:38 3091

原创 CNN的相关知识总结和实践

Q:如果输入图片的尺寸为HWC,经过K个S*S的卷积核,步长(stride)为L,zero-padding为P,那么经过该卷积层输出图像的尺寸是多少?不考虑偏置的话,涉及到多少个参数?A:经过这样的操作,输出图片的长为 (H+2P−S)/L+1(H+2P-S)/L+1(H+2P−S)/L+1,宽为(W+2P−S)/L+1(W+2P-S)/L+1(W+2P−S)/L+1,深为K。参数数量:总共涉...

2018-12-12 15:49:25 496

转载 MCMC(三):Gibbs采样

在《MCMC(二):MCMC采样和M-H采样》中,我们讲到了M-H采样已经可以很好的解决蒙特卡罗方法需要的任意概率分布的样本集的问题。但是M-H采样有两个缺点:一是需要计算接受率,在高维时计算量大。并且由于接受率的原因导致算法收敛时间变长。二是有些高维数据,特征的条件概率分布好求,但是特征的联合分布不好求。因此需要一个好的方法来改进M-H采样,这就是我们下面讲到的Gibbs采样。本篇博客主要转...

2018-12-07 18:14:23 2544 1

转载 MCMC(二):MCMC采样和M-H采样

在前面《MCMC(一):蒙特卡罗方法和马尔科夫链》中,我们讲到给定一个概率平稳分布π\piπ, 很难直接找到对应的马尔科夫链状态转移矩阵PPP。而只要解决这个问题,我们就可以找到一种通用的概率分布采样方法,进而用于蒙特卡罗模拟。本篇我们就讨论解决这个问题的办法:MCMC采样和它的易用版M-H采样。本篇博客主要转自参考文献【1】,在原文的基础上,为了更容易增加理解,略有删改增。一、马尔科夫链的细...

2018-12-07 15:34:43 6306 1

转载 MCMC(一):蒙特卡罗方法和马尔科夫链

参考文献:【1】一文了解采样方法

2018-12-06 15:58:03 13944 3

原创 逆采样(Inverse Sampling)和拒绝采样(Reject Sampling)原理详解

在蒙特卡罗方法中,有一个关键的问题需要解决,即如何基于概率密度函数去采的nnn个xxx的样本集。逆采样(Inverse Sampling)和拒绝采样(Reject Sampling)就是用于解决这个问题的。其中,对于常见的分布,如均匀分布,高斯分布,指数分布,t分布,F分布,Beta分布,Gamma分布等,可以采用逆采样的方法进行采样;不过很多时候,我们的xxx的概率分布不是常见的分布,这些分...

2018-12-05 18:08:20 20645 5

转载 深度学习(四):卷积神经网络(CNN)模型结构,前向传播算法和反向传播算法介绍。

在前面我们讲述了DNN的模型与前向反向传播算法。而在DNN大类中,卷积神经网络(Convolutional Neural Networks,以下简称CNN)是最为成功的DNN特例之一。CNN广泛的应用于图像识别,当然现在也应用于NLP等其他领域。本文我们就对CNN的模型结构做一个总结。然后在此基础上,介绍CNN的前向传播算法和反向传播算法。在学习CNN前,推荐大家先学习DNN的知识。如果不熟悉...

2018-12-03 15:53:10 13889 2

转载 深度学习(三):DNN的正则化策略综述

和普通的机器学习算法一样,DNN也会遇到过拟合的问题,需要考虑泛化,这里我们就对DNN的正则化方法做一个总结。一、L1&L2正则化想到正则化,我们首先想到的就是L1正则化和L2正则化。L1正则化和L2正则化原理类似,这里重点讲述DNN的L2正则化。而DNN的L2正则化通常的做法是只针对与线性系数矩阵WWW,而不针对偏倚系数bbb。利用我们之前的机器学习的知识,我们很容易可以写出DNN...

2018-12-01 15:03:46 812

转载 深度学习(二):DNN损失函数和激活函数的选择

在《深度学习(一):DNN前向传播算法和反向传播算法》中,我们对DNN的前向反向传播算法的使用做了总结。里面使用的损失函数是均方差,而激活函数是sigmoid。实际上DNN可以使用的损失函数和激活函数不少。这些损失函数和激活函数如何选择呢?下面我们就对DNN损失函数和激活函数的选择做一个总结。一、 均方差损失函数+sigmoid激活函数的问题在讲反向传播算法时,我们用均方差损失函数和Sigmo...

2018-11-30 21:10:44 3124

转载 深度学习(一):DNN前向传播算法和反向传播算法

文章目录一、深度神经网络(DNN)模型1.1 从感知机到神经网络1.2 DNN的基本结构二、DNN前向传播算法2.1 DNN前向传播算法数学原理2.2 DNN前向传播算法2.3 DNN前向传播算法小结三、DNN反向传播算法3.1 DNN反向传播算法要解决的问题3.2 DNN反向传播算法的基本思路3. 3 DNN反向传播算法过程3.4 DNN反向传播算法小结参考文献一、深度神经网络(DNN)模型...

2018-11-29 17:32:13 19757 10

原创 hive 有序化地将多行拼接成一行

有这么一个数据集:session_id row_number sku_id aa 2 a aa 3 c aa 1 b bb 2 d bb 3 c bb 1 a bb 4 a 根据session_id分组,将sku_id按照row_number的顺序,多行拼接成一行。 ...

2018-11-28 19:04:26 8127 3

原创 关键词抽取算法介绍:TF-IDF和TextRank

一、前言关键词抽取就是从文本里面把跟这篇文档意义最相关的一些词抽取出来。这个可以追溯到文献检索初期,当时还不支持全文搜索的时候,关键词就可以作为搜索这篇论文的词语。因此,目前依然可以在论文中看到关键词这一项。除了这些,关键词还可以在文本聚类、分类、自动摘要等领域中有着重要的作用。比如在聚类时将关键词相似的几篇文档看成一个团簇,可以大大提高聚类算法的收敛速度;从某天所有的新闻中提取出这些新闻的关...

2018-11-25 16:33:37 4977

原创 word2vec的词向量&&神经网络的embedding层的关系

自己之前学习了一波word2vec的词向量&&神经网络的embedding,关于这2者的原理和实践,可以参看我之前的博客:利用神经网络的embedding层处理类别特征 (一)理解word2vec:原理篇 (二)理解word2vec:实践篇这篇文章的主题是分析word2vec的词向量&&神经网络的embedding层的关系,以及在实际中,如何同时应用它们。...

2018-11-22 11:55:28 9260 4

原创 (二)理解word2vec:实践篇

在《(一)理解word2vec:原理篇》中,我已经介绍了word2vec的相关应用和原理。在这篇博客中,我主要介绍word2vec的实践。本篇博客的基础实践代码仍然参考刘新建老师的博客,在他文章的基础上,我又扩展了一些功能。我用的实现word2vec的包是gensim(官方github)。gensim是一款开源的第三方Python工具包,用于从原始的非结构化的文本中,无监督地学习到文本隐层...

2018-11-20 17:52:17 4123

原创 (一)理解word2vec:原理篇

为什么想起来学习word2vec呢?其实之前自己根本没有接触过NLP的知识和任务,只是最近尝试使用了embedding的方法去处理类别特征和用embedding去做推荐,发现有不错的效果。同时,自己也感触到了所掌握知识的匮乏,因此,决定好好学习一下word2vec。最近几天自己研读了网上一些介绍word2vec原理的博客,写得非常得清晰和易懂。因此,自己也想做一个总结,关于word2vec的原理...

2018-11-20 10:10:54 3514 2

原创 Python:如何从字典的多value中的某个值得到这个多value?

在这里再次解释一下题目:目的:一个字典,存在着1key多value的现象,如果根据多value中的值,找到这个key,并且得到这个key对应的所有value?比如我们这里有一个字典:mydict = {'george':16,'amber':[19, 20]}我们想根据19,得到19和20。我这里提供2种方法:①:直接上代码,思路比较简单。# 找到19这个value...

2018-11-17 17:34:10 6468

翻译 基于深度神经网络的embeddding来构建推荐系统

在之前的博客中,我主要介绍了embedding用于处理类别特征的应用,其实,在学术界和工业界上,embedding的应用还有很多,比如在推荐系统中的应用。本篇博客就介绍了如何利用embedding来构建一个图书的推荐系统。本文主要译自《Building a Recommendation System Using Neural Network Embeddings》,完整详细的代码见官方GitH...

2018-11-17 14:47:41 2005 2

原创 Python生成器(Generator)和yield用法详解

通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。在Python中,这种一边...

2018-11-16 15:49:12 8279

原创 广义线性模型与指数分布族的理解

在机器学习领域,很多模型都是属于广义线性模型(Generalized Linear Model, GLM),如线性回归,逻辑回归,Softmax回归等。广义线性模型有3个基本假设:(1) 样本观测值yiy_iyi​满足带参数 η\etaη的指数分布族。即GLM是基于指数分布族的,所以我们先来看一下指数分布族的一般形式:p(y;η)=b(y)exp(ηTT(y)−a(η))p(y;\eta)...

2018-11-14 17:39:58 3202

转载 数据倾斜及其高效解决方法

数据倾斜是大数据领域绕不开的拦路虎,当你所需处理的数据量到达了上亿甚至是千亿条的时候,数据倾斜将是横在你面前一道巨大的坎。很可能有几周甚至几月都要头疼于数据倾斜导致的各类诡异的问题。数据倾斜是指:mapreduce程序执行时,reduce节点大部分执行完毕,但是有一个或者几个reduce节点运行很慢,导致整个程序的处理时间很长,这是因为某一个key的条数比其他key多很多(有时是百倍或者千...

2018-11-13 18:20:07 35035 1

翻译 矩阵与张量的区别

关于矩阵和张量的区别有些人可能不太清楚,看了这篇文章相信你会很明白了。矩阵是由括号括起的n×m(例如,3×3)个数字的网格。我们可以加上和减去相同大小的矩阵,只要大小兼容((n×m)×(m×p)= n×p),就将一个矩阵与另一个矩阵相乘,以及可以将整个矩阵乘以常数。向量是一个只有一行或一列的矩阵。我们可以对任何矩阵进行一系列数学运算。不过,基本的思想是,矩阵只是一个二维的数字网格。张量...

2018-11-13 11:15:51 18955 5

转载 如何理解数据科学的中的数据泄露(Data Leakage)

数据科学竞赛中有时会出现这样的奇特景观:某只队伍,靠着对极个别feature的充分利用,立即将对手超越,成功霸占冠军位置,而且与第二名的差距远超第二名与第十名的差距。然而,这些feature却不是在因果关系上顺利解释预测值的‘因’,反而是预测值的‘果’。1. Data Leakage定义存在和利用这种倒‘因’为‘果’的feature的现象,叫数据竞赛中的Data Leakage。这里的...

2018-11-12 11:31:15 8559

转载 为什么对预测任务里的标签Y做对数处理?

平时在一些数据处理中,经常会把原始数据取对数后进一步处理。之所以这样做是基于对数函数在其定义域内是单调增函数,取对数后不会改变数据的相对关系,取对数作用主要有:1. 缩小数据的绝对数值,方便计算。例如,每个数据项的值都很大,许多这样的值进行计算可能对超过常用数据类型的取值范围,这时取对数,就把数值缩小了,例如TF-IDF计算时,由于在大规模语料库中,很多词的频率是非常大的数字。2. 取对数...

2018-11-08 20:25:46 3697

原创 (一)因式分解机(Factorization Machine,FM)原理及实践

因子分解机(Factorization Machine),是由Konstanz大学(德国康斯坦茨大学)Steffen Rendle(现任职于Google)于2010年最早提出的,旨在解决大规模稀疏数据下的特征组合问题。不久后,FM的升级版模型场感知分解机(Field-aware Factorization Machine,简称FFM)由来自Yu-Chin Juan(阮毓钦,毕业于中国台湾大学,现...

2018-11-06 14:30:41 13517 3

原创 Windows下安装pyFM

本篇博客根据自己实际安装的经验,记录了下如何在Windows下安装pyFM。我的系统是Windows 10,Python版本是3.6。遇到了不少的安装错误,但是都一一解决了。安装步骤:一、从官方github上克隆然后试图安装:pip install git+https://github.com/coreylynch/pyFM会报错:error: Microsoft ...

2018-11-05 15:33:37 2916

原创 (三)提升树模型:Lightgbm原理深入探究

本篇博客是提升树模型博客的第三篇文章,也是最后一篇文章。第一篇介绍GBDT的博客可以参看这里。第二篇介绍Xgboost的博客可以参看这里。本篇博客主要讲解轻量级的提升树模型-LightGBM。LightGBM的资料网上很多,但是讲解得都很浅,大部分都是从官方文档摘抄过来的,没有深究。因此,在参考部分资料和源码的基础上,本篇博客想深入体会作者的思路,记录一些细节问题,供读者参考。...

2018-11-02 18:57:08 13154 1

原创 类别特征的处理方法大全

类别特征在现实数据里十分常见,处理类别特征对于机器学习里的各种算法来说都是必不可少的过程。本篇文章总结了几种常见的处理类别特征的方法,这些方法不仅有传统的one-hot编码的形式,也有目前最先进的思路。一、one-hot编码详见这篇文章。二、类别特征的最优切分。该方法需要特定工具的支持,如LightGBM,详见这篇文章。三、转成数值特征3.1 利用embedding...

2018-11-01 20:30:51 6557

原创 利用神经网络的embedding层处理类别特征

类别特征在现实里十分常见,处理的方法也很多,最常见的思路是转为one-hot编码,当然这种处理方式比较粗暴,在许多算法里效果也不是很好。还有的处理方式寻找类别特征的最优切分,这个需要特定工具的支持,如LightGBM,细节见这篇文章。本篇文章主要讲解如何利用神经网络的embedding层处理类别特征。可以说,本篇文章是目前讲解利用神经网络的embedding层处理类别特征的最清晰的文章,相信读...

2018-11-01 17:20:51 26498 10

原创 Python: pandas中多级索引的高级操作讲解

Pandas库十分强大,在之前的文章中我已经介绍过了切片操作iloc, loc和ix,本篇文章主要介绍针对多级索引的高级操作。本质上与单级索引的操作相同,但是要注意一些语法的格式。一、在Multiindex中使用loc我们先建立一个多级索引的Dataframe:import numpy as npimport pandas as pdarrays = [np.array(['ba...

2018-10-29 20:12:38 21350 3

原创 在Intellij中打开Python的解释器

Intellij作为一款非常优秀的IDE,也是处理建立Python工程的。那么在Intellij如何像在Pycharm或者Spyder中打开解释器呢?这对于我们编写代码是十分方便的。打开解释器很简单。如下:Tools -> Run Python Console如果我们只想运行某些语句。在.py中文件中选中想运行的语句,按下Alt + Shift + E就可以单独运行此句。...

2018-10-29 17:05:49 4539 1

原创 时间序列模型Prophet使用详细讲解

之前我们已经讲过了如何在Windows系统下安装Python版本的Prophet。详细见这里。接下来的几个部分,我们说下如何使用Prophet,以此来体验下Prophet的丰富内容。内容会比较多,主要翻译自官方文档。教程中使用的数据集可在 Prophet 的 github 主页 中的 examples 文件夹 内下载得到。目录一、简易入门二、饱和预测2.1 预测饱和增长2....

2018-10-26 20:39:34 156551 34

原创 Windows下安装Python版本的prophet

prophet是Facebook开源的一款时序预测的工具。地址。在Mac和linux下比较好安装,在Windows下安装就比较坑了。所以,记录以下自己安装成功的过程。我的环境是win10 64位,python 3.6.1第一步:安装PyStanfbprophet依赖于PyStan,所以首先要安装PyStan库。我用的是Anaconda,直接pip install pystan...

2018-10-25 14:27:37 17543 4

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除