- 博客(62)
- 资源 (1)
- 收藏
- 关注
转载 用户画像原理、技术选型及架构实现
这篇文章在宏观上很好地描述了用户画像的主要内容。(文章内的图片来源于不同帖子,侵删)一、什么是用户画像用户画像是指根据用户的属性、偏好、生活习惯、行为等信息,抽象出来的标签化用户模型。通俗说就是给用户打标签,而标签是通过对用户信息分析而来的高度精炼的特征标识。通过打标签可以利用一些高度概括、容易理解的特征来描述用户,可以让人更容易理解用户,并且可以方便计算机处理。...
2018-07-22 12:35:26
38010
4
原创 【机器学习】特征选择常用方法 整理
特征选择在实际工程中,对于特征变量的选取,往往是基于业务经验,也就是所谓你的先验知识。现在数据的特征维度很多,而能作为训练集的样本量却往往远小于特征数量(如基因测序、文本分类)。特征选择的好处:便于理解和可视化数据,降低计算及存储压力,对抗维度灾难以提高模型预测准确率等等。特征选择的三类主流方法为:过滤式、包裹式、嵌入式。一、过滤式变量排序就是一种典型的过滤式方法,...
2018-06-14 19:36:12
12759
转载 今日头条推荐算法原理 - 梳理
PS:腾讯新闻和今日头条,我每天都会对比着用,喜欢腾讯新闻的细致和头条的粗暴。算法分发已经是信息平台、搜索引擎、浏览器、社交软件等几乎所有软件的标配,但同时,算法也开始面临质疑、挑战和误解。今日头条的推荐算法,从 2012 年 9 月第一版开发运行至今,已经经过四次大的调整和修改。今日头条资深算法架构师曹欢欢博士,公开今日头条的算法原理,以推动整个行业问诊算法、建言算法;通过...
2018-06-11 12:29:12
3935
原创 【机器学习】XGBoost 原理及调参指南 整理
XGBoostXGBoost能自动利用cpu的多线程,而且适当改进了gradient boosting,加了剪枝,控制了模型的复杂程度 传统GBDT以CART作为基分类器,特指梯度提升决策树算法,而XGBoost还支持线性分类器(gblinear),这个时候XGBoost相当于带L1和L2正则化项的逻辑斯蒂回归(分类问题)或者线性回归(回归问题)。 传统GBDT在优化时只用到一...
2018-05-31 17:59:05
4106
原创 【机器学习】组合算法 Bootstraping, Bagging, Boosting, AdaBoost, RandomForest, Gradient boosting
组合模型Bootstraping名字来自成语“pull up by your own bootstraps”,意思就是依靠你自己的资源,称为自助法,它是一种有放回的抽样方法,它是非参数统计中一种重要的估计统计量方差进而进行区间估计的统计方法。其核心思想和基本步骤如下:采用重抽样技术从原始样本中抽取一定数量(自定义)的样本,此过程允许重复抽样。根据抽出的样本计算给定的统计量T。重复...
2018-05-16 14:17:51
1940
原创 【机器学习】因子分解机FM、场感知因子分解机FFM 算法 整理
逻辑回归无法学习到特征间的组合关系,因此有了 因子分解机FM 和 场感知因子分解机FFM。接下来,介绍下场感知因子分解机的主要应用。FFM模型可以自动做特征组合和处理高维稀疏特征,因而它在处理大量离散特征问题上往往有比较好的效果。但要注意对连续特征做归一化或者离散化。因子分解机FM1.FM背景在计算广告中,CTR预估(click-through rate)是非常重要的一个环节,因为...
2018-04-23 11:42:58
3097
3
原创 【机器学习】 K近邻(kNN)算法 整理
k-近邻(kNN,k-Nearest Neighbors)算法是一种基于实例的分类方法。该方法就是找出与未知样本x距离最近的k个训练样本,看这k个样本中多数属于哪一类,就把x归为那一类。k-近邻方法是一种懒惰学习方法,它存放样本,直到需要分类时才进行分类,如果样本集比较复杂,可能会导致很大的计算开销,因此无法应用到实时性很强的场合。一 . K-近邻算法(KNN)概述 最简单最初级的...
2018-04-13 11:33:50
1357
原创 【机器学习】蒙特卡罗算法 整理
蒙特·卡罗方法(Monte Carlo method),也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法。是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。与它对应的是确定性算法。蒙特·卡罗方法在金融工程学,宏观经济学,计算物理学(如粒子输运计算、量子热力学计算、空气动力学计算)...
2018-04-11 13:59:53
5765
原创 ALS推荐算法
在完成基于大数据平台的图书馆推荐系统后,最近把学习的中心放在机器学习上面。在接下来的几个月中,希望自己能弄明白常见机器学习算法的原理,并且能在spark平台上进行实践。在我的机器学习学习和实践之路的一个本书是《Spark机器学习》,这本书虽然比较旧,但是写的还是比较好。书里讲了各种常见的机器学习算法,并且在spark平台上进行了实战。在学习到此书第四章--构建基于spark的推荐系统引擎时觉得...
2018-04-09 13:47:22
4513
原创 Java 多线程 并发编程 整理
一、多线程1、操作系统有两个容易混淆的概念,进程和线程。进程:一个计算机程序的运行实例,包含了需要执行的指令;有自己的独立地址空间,包含程序内容和数据;不同进程的地址空间是互相隔离的;进程拥有各种资源和状态信息,包括打开的文件、子进程和信号处理。线程:表示程序的执行流程,是CPU调度执行的基本单位;线程有自己的程序计数器、寄存器、堆栈和帧。同一进程中的线程共用相同的地址空间,同时共享进...
2018-04-09 11:42:20
3815
1
转载 Breeze库API总结(Spark线性代数库)
Spark Mllib底层的向量、矩阵运算使用了Breeze库,Breeze库提供了Vector/Matrix的实现以及相应计算的接口(Linalg)。但是在MLlib里面同时也提供了Vector和Linalg等的实现。在使用Breeze库时,需要导入相关包:Import breeze.linalg._Import breeze.numeric._Breeze创建函数: 操作...
2018-04-03 16:32:56
2613
原创 【机器学习】Apriori算法详解 整理
1、数据挖掘与机器学习有时候,人们会对机器学习与数据挖掘这两个名词感到困惑。如果你翻开一本冠以机器学习之名的教科书,再同时翻开一本名叫数据挖掘的教材,你会发现二者之间有相当多重合的内容。比如机器学习中也会讲到决策树和支持向量机,而数据挖掘的书里也必然要在决策树和支持向量机上花费相当的篇幅。可见二者确有相当大的重合面,但如果细研究起来,二者也的确是各自不同的领域。大体上看,数据挖掘可以视为数据...
2018-03-23 14:50:30
3223
原创 【机器学习】Boost算法(GDBT,AdaBoost,XGBoost)整理
Bagging的原理是从现有数据中有放回抽取若干个样本构建分类器,重复若干次建立若干个分类器进行投票。它的典型应用,就是随机森林。现在讨论另一种算法:提升(Boost)。简单地来说,提升就是指每一步我都产生一个弱预测模型,然后加权累加到总模型中,然后每一步弱预测模型生成的的依据都是损失函数的负梯度方向,这样若干步以后就可以达到逼近损失函数局部最小值的目标。下面开始要不说人话了,我们来详...
2018-03-22 15:12:01
2510
原创 【机器学习】时序预测Arima & HoltWinters算法及评估方法 整理
时序预测(Arima 和 HoltWinters)算法 及 评估方法 整理。spark 库里没有 Spark TimeSeries 时序预测算法,但是国外有人已经写好了相应的算法。https://github.com/sryza/spark-timeseries时间序列分析时间序列,就是按时间顺序排列的,随时间变化的数据序列。生活中各领域各行业太多时间序列的数据了,销售额,顾客数,访问量...
2018-03-21 15:51:58
9985
原创 横截面数据、时间序列数据、面板数据
面板数据(Panel Data)是将“截面数据”和“时间序列数据”综合起来的一种数据类型。具有“横截面”和“时间序列”两个维度,当这类数据按两个维度进行排列时,数据都排在一个平面上,与排在一条线上的一维数据有着明显的不同,整个表格像是一个面板,所以称为面板数据(Panel Data)。实际上如果从数据结构内在含义上,应该把Panel Data称为“时间序列-截面...
2018-03-20 15:12:40
139388
3
原创 【机器学习】神经网络NeuralNetwork 算法 整理
人工神经网络(Artificial Neural Networks,ANN)是一种应用类似于大脑神经突触联接的结构进行信息处理的数学模型。在这种模型中,大量的节点(或称”神经元”,或”单元”)之间相互联接构成网络,即”神经网络”,以达到处理信息的目的。神经网络通常需要进行训练,训练的过程就是网络进行学习的过程。训练改变了网络节点的连接权的值使其具有分类的功能,经过训练的网络就可用于对象的识别。...
2018-03-20 11:09:56
3032
1
转载 深入理解分布式事务,高并发下分布式事务的解决方案
1、什么是分布式事务分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。以上是百度百科的解释,简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。本质上来说,分布式事务就是为了保证不同数据库的数据一致性。2、分布式事务的产生的原因...
2018-03-19 15:34:43
5966
原创 简易版用户画像,你需要掌握这3个数据处理方法
衡量用户价值主要有两大维度:忠诚度和消费能力。本文从这两方面进行了简易的用户画像,以此做出用户分析,并告诉大家具体的数据处理方法。一、背景:某电商,已上线并稳定运营了一段时间,积累了一些用户数据。产品及运营想要了解平台用户的价值类型,以便针对性的采取不同运营策略。(以下方法同样适用于广告、SNS等领域,或用以确认内容价值)二、目的:确认用户价值类型,...
2018-03-17 10:54:26
2469
原创 【机器学习】最大熵算法 整理
最大熵模型由最大熵原理推导实现1.最大熵原理 最大熵原理认为,学习概率模型时,在所有可能的概率模型(分布)中,熵最大的模型是最好的模型。通常用约束条件来确定概率模型的集合,所以,最大熵原理也可以表述为在满足约束条件的模型集合中选取熵最大的模型。假设离散随机变量X的概率分布式P(X),则其熵是:熵满足下列不等式:式中,|X|是X的取值个数,当且仅当X的分布是均匀分布时右边的等号成...
2018-03-14 15:42:50
8174
转载 MDRCA 算法 - 多维智能监控实现思路
作者丨吴树生:腾讯高级工程师,负责SNG大数据监控平台建设。近十年监控系统开发经验,具有构建基于大数据平台的海量高可用分布式监控系统研发经验。导语:监控数据多维化后,带来新的应用场景。SNG的哈勃多维监控平台在完成大数据架构改造后,尝试引入AI能力,多维根因分析是其中一试点,用于摸索AI的应用经验。本分分享探索过程和经验,希望可给后续AI应用提供参考。前言在2015年构建多维监控平...
2018-03-09 17:08:38
5679
1
原创 Hive数据模型的几种表 和 窗口函数 和 排序方法
hive数据模型中包含内部表、外部表、分区表和桶表。一、内部表内部表也称为管理表。因为这种表,Hive会或多或少地空值数据的生命周期。Hive默认情况下回将这些表的数据存储在由配置项hive.metastore.warehouse.dir所定义的目录(比如/user/hive/warehouse)的子目录下。如果我有一个表test,那么在HDFS中会创建/user/hive/wareh...
2018-03-09 17:00:07
1864
原创 【机器学习】常用算法优缺点及选用指南 整理
1.朴素贝叶斯算法朴素贝叶斯属于生成式模型(关于生成模型和判别式模型,主要还是在于是否是要求联合分布),非常简单,你只是做了一堆计数。如果注有条件独立性假设(一个比较严格的条件),朴素贝叶斯分类器的收敛速度将快于判别模型,如逻辑回归,所以你只需要较少的训练数据即可。即使NB条件独立假设不成立,NB分类器在实践中仍然表现的很出色。它的主要缺点是它不能学习特征间的相互作用,用mRMR中R来讲,就是...
2018-02-28 16:23:58
858
原创 【机器学习】数据预处理 整理
加深理解数据挖掘概念及数据的一些理论内容,会让你对数据有直观的认识,保持清晰的目的性,在之后的数据挖掘工作中如鱼得水。数据挖掘到底是啥?官方定义,在大型数据存储库中,自动地发现有用信息的过程。数据挖掘的一般过程: 1、 数据预处理 2、 数据挖掘 3、 后处理1、预处理。通常数据挖掘需要较大的数据量,这些数据可能格式不同,存在缺失值或无效值,即是数据清洗处理这些‘脏’数据。...
2018-02-28 10:21:03
2075
原创 java中多线程、线程同步、线程数据传递、线程状态的使用方法 整理
java中多线程的使用方法、线程同步、线程数据传递、线程状态及相应的一些线程函数用法、概述等。1、操作系统中进程和线程的区别: 进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1--n个线程。(进程是资源分配的最小单位) 线程:同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小。(线程是cpu调度的...
2018-02-28 10:16:12
1402
1
原创 大数据抽样- 概率抽样,随机采样
在统计学中,抽样(Sampling)是一种推论统计方法,是指从目标总体(Population,或称为母体)中抽取一部分个体作为样本(Sample),通过观察样本的某一或某些属性,依据所获得的数据对总体的数量特征得出具有一定可靠性的估计判断,从而达到对总体的认识。概率抽样方法简单随机抽样(simple random sampling),也叫纯随机抽样。从总体N个单位中随机地抽取n个单位作为样...
2018-02-26 11:29:58
20400
原创 java 虚拟机 转载整理
1. JVM生命周期启动。启动一个Java程序时,一个JVM实例就产生了,任何一个拥有public static void main(String[] args)函数的class都可以作为JVM实例运行的起点。 运行。main()作为该程序初始线程的起点,任何其他线程均由该线程启动。 消亡。当程序中的所有非守护线程都终止时,JVM才退出;若安全管理器允许,程序也可以使用Runtime类或者...
2018-01-31 15:24:57
4213
原创 【机器学习】LR多分类推广 - Softmax回归 整理
1.softmax在机器学习尤其是深度学习中,softmax是个非常常用而且比较重要的函数,尤其在多分类的场景中使用广泛。他把一些输入映射为0-1之间的实数,并且归一化保证和为1,因此多分类的概率之和也刚好为1。首先我们简单来看看softmax是什么意思。顾名思义,softmax由两个单词组成,其中一个是max。对于max我们都很熟悉,比如有两个变量a,b。如果a>b,则max为a,反...
2018-01-28 09:21:22
3603
原创 spark rdd详解 整理
spark简介Spark是整个BDAS的核心组件,是一个大数据分布式编程框架,不仅实现了MapReduce的算子map 函数和reduce函数及计算模型,还提供更为丰富的算子,如filter、join、groupByKey等。是一个用来实现快速而同用的集群计算的平台。Spark将分布式数据抽象为弹性分布式数据集(RDD),实现了应用任务调度、RPC、序列化和压缩,并为运行在其上的上层组件提供A...
2018-01-24 17:49:27
3488
原创 【机器学习】常用聚类算法 整理
sparkML 常用聚类算法 http://spark.apache.org/docs/latest/mllib-clustering.html如下为 机器学习聚类算法的理论知识:在机器学习中,无监督学习一直是追求的方向,因为,这样可以更加自动化,减少人工参与等好处,而其中的聚类算法更是发现隐藏数据结构与知识的有效手段。目前如谷歌新闻等很多应用都将聚类算法作为主要的实现手段,它们能利...
2018-01-23 09:34:25
5212
原创 java OOP面向对象三大特性五大原则 + 低耦合高内聚
面向对象的三大特性是"封装、"多态"、"继承",五大原则是"单一职责原则"、"开放封闭原则"、"里氏替换原则"、"依赖倒置原则"、"接口分离原则"。什么是面向对象面向对象(Object Oriented,OO)是软件开发方法。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对...
2018-01-22 15:20:14
6344
原创 【机器学习】降维算法 PCA、LDA、LLE、Laplacian EigenmapsI、SOMAP 、 MDS、SNE、TSNE
机器学习领域中所谓的降维就是指采用某种映射方法,将原高维空间中的数据点映射到低维度的空间中。降维的本质是学习一个映射函数 f : x->y,其中x是原始数据点的表达,目前最多使用向量表达形式。 y是数据点映射后的低维向量表达,通常y的维度小于x的维度(当然提高维度也是可以的)。f可能是显式的或隐式的、线性的或非线性的。目前大部分降维算法处理向量表达的数据,也有一些降维算法处理高阶张量表达...
2018-01-22 14:34:34
2659
原创 【机器学习】线性回归,多元线性回归、自回归及衡量指标
经典线性模型自变量的线性预测就是因变量的估计值。广义线性模型:自变量的线性预测的函数是因变量的估计值。常见的广义线性模型有:probit模型、poisson模型、对数线性模型等。对数线性模型里有:logistic regression、Maxinum entropy。1.线性回归原理其中,为偏置参数,M为特征数目,为基函数(径向基函数(rbf)、sigmoid基函数等),特...
2018-01-20 14:03:24
4808
2
原创 【机器学习】逻辑回归 LR 算法 整理
有了 Sigmoid 函数之后,由于其值取值范围在[0,1]。就可以将其视为类 1 的后验概率估计 p(y=1|X)。就是如果有一个测试点 x,就可以用Sigmoid函数算出来的结果当作该点 x 属于类别 1 的概率大小。于是,非常自然地,把 Sigmoid 函数计算得到的值大于等于0.5的归为类别1,小于0.5的归为类别0:1.逻辑斯蒂回归模型LR模型主要用于分类模型,细...
2018-01-20 11:38:12
3004
原创 精细化营销推广渠道分析
伴随流量成本的不断增长,精准化营销的优势日益凸显,用数据说话成为对每个市场营销人员的基本要求。 为什么要做渠道分析 1.评估推广投入产出比——流量来源分析需要在关注各个来源渠道带来流量的多少的同时,兼顾渠道所带来流量质量。即进行了多少的渠道投入,这些投入给网站带来了多少的收益。 2.分析把控用户需求——不同推广模式带来的访客,到访网站的目的也会有所不同。...
2018-01-17 10:48:50
2066
原创 Scala 伴生对象的实现原理
前言:这个面试出镜率很高,虽然咱们都会用,可是你有考虑过scala为什么这么设计么?你有考虑过大名鼎鼎的java23种设计模型,scala是怎么设计应用的么?本文主要分析伴生类和伴生对象的实现方法。所谓伴生对象, 也是一个Scala中的单例对象, 使用object关键字修饰。 除此之外, 还有一个使用class关键字定义的同名类, 这个类和单例对象存在于同一个文件中, 这个类就叫做这个单例对象...
2018-01-17 10:40:39
1705
原创 【机器学习】 SVD矩阵分解 整理
矩阵分解 (特征值/奇异值分解+SVD+解齐次/非齐次线性方程组)1.1 应用领域最优化问题:最小二乘问题 (求取最小二乘解的方法一般使用SVD) 统计分析:信号与图像处理 求解线性方程组:Ax=0或Ax=bAx=0或Ax=b 奇异值分解:可以降维,同时可以降低数据存储需求1.2 矩阵是什么矩阵是什么取决于应用场景 矩阵可以是: 只是一堆数:如果不对这堆数建立一些运算规则...
2018-01-16 10:05:56
2858
原创 【机器学习】朴素贝叶斯 Naive Bayes Classifiers 算法 整理
贝叶斯(Bayes)分类算法是一类利用概率统计知识进行分类的算法,如朴素贝叶斯(Naive Bayes)算法。这些算法主要利用Bayes定理来预测一个未知类别的样本属于各个类别的可能性,选择其中可能性最大的一个类别作为该样本的最终类别。由于贝叶斯定理的成立本身需要一个很强的条件独立性假设前提,而此假设在实际情况中经常是不成立的,因而其分类准确性就会下降。为此就出现了许多降低独立性假设的贝叶斯分类算...
2018-01-16 09:39:44
4096
转载 【机器学习】LDA算法 (主题模型算法)
随着互联网的发展,文本分析越来越受到重视。由于文本格式的复杂性,人们往往很难直接利用文本进行分析。因此一些将文本数值化的方法就出现了。LDA就是其中一种很NB的方法。 LDA有着很完美的理论支撑,而且有着维度小等一系列优点。本文对LDA算法进行介绍,欢迎批评指正。本文目录:1、Gamma函数2、Dirichlet分布3、LDA文本建模4、吉普斯抽样概率公式推导5、使用...
2018-01-14 12:17:59
23464
1
原创 SparkStreaming之读取Kafka数据
GBDT是一种集成学习算法,却和传统的Adaboost有很大的不同。回顾下Adaboost,它是利用前一轮迭代弱学习器的误差率来更新训练集的权重,这样一轮轮的迭代下去。GBDT也是迭代,使用了前向分布算法,但是弱学习器限定了只能使用CART回归树模型,同时迭代思路和Adaboost也有所不同(备注:Adaboost我会再新开日记)。CART决策树既可以用于分类也可以用于回归,决策树分为分类树和...
2018-01-12 16:17:31
6306
原创 【机器学习】熵(信息熵,联合熵,交叉熵,互信息)
机器学习中的各种熵,什么是熵?什么是交叉熵?什么是联合熵?什么是条件熵?什么是相对熵?它们的联系与区别是什么?前言:你必须知道的信息论1948年,数学家和电气工程师克劳德香农(Claude Elwood Shannon)在其开创性论文《通信的数学理论》中提出了“信息论”,这一概念。 对深度学习和人工智能的发展具有非凡的意义。那么,对于信息论大家又了解多少呢? 在本文中,Abhis...
2018-01-12 12:39:10
2368
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人