自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(200)
  • 资源 (3)
  • 收藏
  • 关注

转载 推荐系统中使用ctr排序的f(x)的设计-传统模型篇

一. 什么是ctr?ctr即广告点击率,在推荐系统中,通常是按照ctr来对召回的内容子集进行排序,然后再结合策略进行内容的分发。二. ctr预估模型的发展。ctr预估模型的公式:y = f(x), y的范围为[0,1],表示广告被点击的概率。1. LR 海量高纬离散特征LR(logistics regression),是ctr预估模型的最基本的模型,也是工业界最喜爱使用的方案。...

2018-09-30 14:51:36 1932

转载 【从传统方法到深度学习】图像分类

作者:Treant 人工智能爱好者社区专栏作者博客专栏:https://www.cnblogs.com/en-heng 1.问题Kaggle上有一个图像分类比赛Digit Recognizer,数据集是大名鼎鼎的MNIST——图片是已分割 (image segmented)过的28*28的灰度图,手写数字部分对应的是0~255的灰度值,背景部分为0。from keras.data...

2018-09-30 14:06:46 8335

转载 【十大经典数据挖掘算法】EM

作者简介:Treant 人工智能爱好者社区专栏作者博客专栏:https://www.cnblogs.com/en-heng 1.极大似然极大似然(Maximum Likelihood)估计为用于已知模型的参数估计的统计学方法。比如,我们想了解抛硬币是正面(head)的概率分布;那么可以通过最大似然估计方法求得。假如我们抛硬币1010次,其中88次正面、22次反面;极大似然估计...

2018-09-30 14:00:49 196

转载 java多线程系列:通过对战游戏学习CyclicBarrier

CyclicBarrier是java.util.concurrent包下面的一个工具类,字面意思是可循环使用(Cyclic)的屏障(Barrier),通过它可以实现让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,所有被屏障拦截的线程才会继续执行。这篇文章将介绍CyclicBarrier这个同步工具类的以下几点通过案例分析 两种不同构造函数测试 Cyclic...

2018-09-30 13:56:14 115

转载 各大公司java面试整理对应问题博客整理

各大公司java面试整理对应问题博客整理!阿里分库分表 数据库中间件 MyCAT是一个强大的数据库中间件,不仅仅可以用作读写分离,以及分表分库、容灾管理,而且可以用于多租户应用开发、云平台基础设施 高并发请求处理 高流量限流 多线程 concurrentHashMap CAS 乐观锁 mysql limit分页如何保证可靠性二面 7月26日(22分钟):http是否...

2018-09-30 13:35:03 1365 1

转载 FM算法

主要内容:动机 FM算法模型 FM算法VS 其他算法 一、动机在传统的线性模型如LR中,每个特征都是独立的,如果需要考虑特征与特征直接的交互作用,可能需要人工对特征进行交叉组合;非线性SVM可以对特征进行kernel映射,但是在特征高度稀疏的情况下,并不能很好地进行学习;现在也有很多分解模型Factorization model如矩阵分解MF、SVD++等,这些模型可以学习到特征...

2018-09-30 10:57:33 1972 1

转载 FAIR重磅发布大规模语料库XNLI:解决跨15种语言理解难题

作者 | Facebook AI 研究院和纽约大学研究团队译者 | 盖磊编辑 | VincentAI 前线导读:自然语言处理系统依赖于使用基于标注数据的有监督学习提高模型的处理能力。目前,许多模型是使用单一语言(通常是英语)训练的,并不能直接应用于其他语言。鉴于收集每种语言的语料数据是不现实的,因此如何实现跨语言句子理解(XLU)和低资源的跨语言迁移得到了越来越多的关注。XNLI 论...

2018-09-30 09:27:06 3449 1

转载 机器学习算法实现解析:libFM之libFM的训练过程之SGD的方法

本节主要介绍的是libFM源码分析的第五部分之一——libFM的训练过程之SGD的方法。5.1、基于梯度的模型训练方法在libFM中,提供了两大类的模型训练方法,一类是基于梯度的训练方法,另一类是基于MCMC的模型训练方法。对于基于梯度的训练方法,其类为fm_learn_sgd类,其父类为fm_learn类,主要关系为:  fm_learn_sgd类是所有基于梯度的训练方法...

2018-09-29 16:44:32 441

转载 scala与java混合编译出现的问题

工程项目中同时包含scala和java代码,如果在java中调用scala的类,编译时可能会报找不到scala类的错误,出现这种问题的解决办法是需要对scala进行先行编译,具体需要在pom文件中添加一下plugin:   <plugin> <groupId>org.apache.maven.plugins</groupId> ...

2018-09-29 15:08:19 1560

转载 阿里、京东、亚马逊为何如此重视重构“会员”?

两天前,屈臣氏集团宣布在全球推出VIP尊尚会员计划,将在2019年初之前推广至24个营运市场。升级后的会员将针对不同地区推出不同的服务。 同样是会员业务调整,一周前,饿了么与汉堡王宣布,将于9月底打通双方的会员体系,商户优惠券也将首次实现实体门店与外卖平台的通用。 众所周知,会员在零售行业当中,并不是什么“新产物”,甚至过去各种会员的积分、打折券、兑换券等等,都已经被用滥了。但为什...

2018-09-29 12:55:23 537

转载 如何利用用户行为数据进行推荐

大家好,今天我针对推荐系统理论-利用用户行为数据进行推荐,为大家带来这篇文章。希望能搞帮助到大家。下图为本篇文章的概括。1、用户行为数据用户行为数据在网站上最简单的存在形式就是日志,比如用户在电子商务网站中的网页浏览、购买、点击、评分和评论等活动。用户行为在个性化推荐系统中一般分两种——显性反馈行为(explicit feedback)和隐性反馈 行为(implicit feedback)...

2018-09-29 10:12:57 6453

转载 MapReduce Job集群提交过程源码跟踪及分析

继上篇文章对MapReduce Job本地提交过程进行分析之后 在本篇文章中,同样将通过debug的方式,对Job作业的集群提交过程进行分析 Job作业集群的提交有别于本地的提交方式,本地的提交采用了LocalJobRunner,而集群提交则采用了YARNRunner 决定使用LocalJobRunner还是YARNRunner取决于配置文件所写的MapReduce程序、debug的操作...

2018-09-28 15:05:49 388 1

转载 MapReduce Job本地提交过程源码跟踪及分析

MapReduce Job作业的提交过程可以分为本地提交模式与集群模式提交,这两种提交模式与org.apache.hadoop.mapred.LocalJobRunner、org.apache.hadoop.mapred.YARNRunner这两个类相关。在本篇文章中,将剖析Job作业本地的提交过程。用到了JVM的远程调试,具体操作请见这篇 “eclipse中远程调试JVM(以启动namenode...

2018-09-28 15:05:44 422

转载 考究Hadoop中split的计算方法

Hadoop中block块大小和split切片大小会影响到MapReduce程序在运行过程中的效率、map的个数。在本文中,以经典入门案例WordCount为例,通过debug的方式跟踪源代码,来分析hadoop中split的计算方法。前期准备wc.txt的准备 单词统计,以空格为分割符对单词进行切割。因此wc.txt中的单词都以空格进行分割 mr核心部分介绍 map 提取每一行,St...

2018-09-28 15:05:36 629

转载 HDFS NameNode内存全景

一、概述从整个HDFS系统架构上看,NameNode是其中最重要、最复杂也是最容易出现问题的地方,而且一旦NameNode出现故障,整个Hadoop集群就将处于不可服务的状态,同时随着数据规模和集群规模地持续增长,很多小量级时被隐藏的问题逐渐暴露出来。所以,从更高层次掌握NameNode的内部结构和运行机制尤其重要。除特别说明外,本文基于社区版本Hadoop-2.4.1[1][2],虽然2.4...

2018-09-28 15:05:19 119

转载 聊聊CTR预估算法DeepFM

DeepFM这种算法是一种基于分解机的神经网络,该算法由哈尔滨工业大学深圳研究生院联合华为诺亚方舟实验室于2017年提出的。 这种算法是一种端到端的学习模型,不仅考虑了低阶的特征融合,也考虑了高阶的特征融合。该算法利用深度学习来学习特征,利用分解机做推荐。 本图给出了DeepFM的示意图。其中的“宽”元素和“深”元素共享同样的输入,它们的输入都是原始的特征向量。这种结构可以使得...

2018-09-28 15:05:11 932

转载 如何利用DeepFM算法设计推荐系统

经过了十几年的发展,推荐系统在互联网行业已经变得越来越流行。从早年没有一个合适的产品形态,到如今在今日头条和抖音等商业产品中发挥重要作用,推荐系统已经越来越受到互联网公司和研究界学者的重视。早年的推荐算法主要是各种单模型,例如逻辑回归、协同过滤、矩阵分解等等。后来推荐算法演化成了混合模型,例如 GBDT + LR , GBDT + FM 等。而随着深度学习的崛起,深度神经网络越来越深刻地影响了...

2018-09-28 15:05:06 2457

转载 Spark的Dataset操作

列的选择select来个例子边看边说: scala> val df = spark.createDataset(Seq( ("aaa", 1, 2), ("bbb", 3, 4), ("ccc", 3, 5), ("bbb", 4, 6)) ).toDF("key1","key2","key3") df: org.a

2018-09-27 19:33:33 6014

转载 Spark MLlib学习笔记之二——Spark Mllib矩阵向量

Spark Mllib底层的向量、矩阵运算使用了Breeze库,Breeze库提供了Vector/Matrix的实现以及相应计算的接口(Linalg)。但是在MLlib里面同时也提供了Vector和Linalg等的实现。在使用Breeze库时,需要导入相关包:Import breeze.linalg._Import breeze.numeric._ Breeze创建函数: ...

2018-09-27 19:21:49 480

转载 再谈RDD、DataFrame、DataSet关系以及相互转换(JAVA API)

Spark提供了三种主要的与数据相关的API:RDD DataFrame DataSet三者图示 下面详细介绍下各自的特点:RDD主要描述:RDD是Spark提供的最主要的一个抽象概念(Resilient Distributed Dataset),它是一个element的collection,分区化的位于集群的节点中,支持并行处理。 RDD的特性 分布式...

2018-09-27 13:13:52 2075 1

转载 Spark中RDD转换成DataFrame的两种方式(分别用Java和scala实现)

 一:准备数据源        在项目下新建一个student.txt文件,里面的内容为:       [plain] view plain copyprint?<code class="language-java">1,zhangsan,20   2,lisi,21   3,wanger,19   4,fangliu,18</code&gt...

2018-09-27 13:13:46 1252

转载 maven环境下使用java、scala混合开发spark应用

熟悉java的开发者在开发spark应用时,常常会遇到spark对java的接口文档不完善或者不提供对应的java接口的问题。这个时候,如果在java项目中能直接使用scala来开发spark应用,同时使用java来处理项目中的其它需求,将在一定程度上降低开发spark项目的难度。下面就来探索一下java、scala、spark、maven这一套开发环境要怎样来搭建。  1、下载sca...

2018-09-27 13:13:35 1779

转载 Spark MLlib之使用Breeze操作矩阵向量

1.spark Mlib 底层使用的向量、矩阵运算使用了Breeze库。scalaNLP 是一套 机器学习和数值技算的库。它主要是关于科学技术(sc)、机器学习(ML)和自然语言处理(NLP)的。它包括三个库,Breeze、Epic 和 Puck。Breeze :是机器学习和数值技术库 ,它是sparkMlib的核心,包括线性代数、数值技术和优化,是一种通用、功能强大、有效的机器学习方法。...

2018-09-27 13:13:24 1414

转载 spark向量矩阵的使用(scala)

向量和矩阵都是做机器学习的基础,下面来介绍下使用spark的底层的向量和矩阵是基于Breeze的,下面主要介绍下Breeze的使用,下面直接给代码,代码上有注释需要引入的包import breeze.linalg._import breeze.numerics._import org.apache.log4j.{Level, Logger}import org.apache.spar...

2018-09-27 13:13:15 3223

转载 Breeze库API总结(Spark线性代数库)(转载)

导入 import breeze.linalg._ import breeze.numerics._  Spark Mllib底层的向量、矩阵运算使用了Breeze库,Breeze库提供了Vector/Matrix的实现以及相应计算的接口(Linalg)。但是在MLlib里面同时也提供了Vector和Linalg等的实现。在使用Breeze库时,需要导入相关包:Impo...

2018-09-27 13:13:04 558

转载 聊聊高并发(四十)解析java.util.concurrent各个组件(十六) ThreadPoolExecutor源码分析

ThreadPoolExecutor是Executor执行框架最重要的一个实现类,提供了线程池管理和任务管理是两个最基本的能力。这篇通过分析ThreadPoolExecutor的源码来看看如何设计和实现一个基于生产者消费者模型的执行器。 生产者消费者模型生产者消费者模型包含三个角色:生产者,工作队列,消费者。对于ThreadPoolExecutor来说,1. 生产者是任务的提交者,...

2018-09-27 13:12:46 155

转载 聊聊高并发(三十六)Java内存模型那些事(四)理解Happens-before规则

在前几篇将Java内存模型的那些事基本上把这个域底层的概念都解释清楚了,聊聊高并发(三十五)Java内存模型那些事(三)理解内存屏障 这篇分析了在X86平台下,volatile,synchronized, CAS操作都是基于Lock前缀的汇编指令来实现的,关于Lock指令有两个要点:1. lock会锁总线,总线是互斥的,所以lock后面的写操作会写入缓存和内存,可以理解为在lock后面的写缓存...

2018-09-27 13:12:41 103

转载 聊聊高并发(三十五)Java内存模型那些事(三)理解内存屏障

硬件层提供了一系列的内存屏障 memory barrier / memory fence(Intel的提法)来提供一致性的能力。拿X86平台来说,有几种主要的内存屏障1. lfence,是一种Load Barrier 读屏障2. sfence, 是一种Store Barrier 写屏障3. mfence, 是一种全能型的屏障,具备ifence和sfence的能力4. Lock前缀,...

2018-09-26 12:41:31 378

转载 聊聊高并发(三十三)Java内存模型那些事(一)从一致性(Consistency)的角度理解Java内存模型

可以说并发系统要解决的最核心问题之一就是一致性的问题,关于一致性的研究已经有几十年了,有大量的理论,算法支持。这篇说说一致性这个主题一些经常提到的概念,理清Java内存模型在其中的位置。 一致性问题更准确的说是一致性需求,看系统需要什么样的一致性保证。比如分布式领域的CAP理论说Consistency, Availability, Partition tolerance这三个要求同时只能满...

2018-09-26 12:41:25 113

转载 聊聊高并发(三十一)解析java.util.concurrent各个组件(十三) 理解Exchanger交换器

这篇讲讲Exchanger交互器,它是一种比较特殊的两方(Two-Party)栅栏,可以理解成Exchanger是一个栅栏,两边一方是生产者,一方是消费者,1. 生产者和消费者各自维护了一个容器,生产者往容器里生产东西,消费者从容器里消费东西。2. 当生产者的容器是满的时候,它需要通过Exchanger向消费者交换,把满的容器交换给消费者,从消费者手里拿到空的容器继续生产。3. 当消费...

2018-09-26 12:41:10 87

转载 聊聊高并发(三十)解析java.util.concurrent各个组件(十二) 理解CyclicBarrier栅栏

这篇讲讲CyclicBarrier栅栏,从它的名字可以看出,它是可循环使用的。它的功能和CountDownLatch类似,也是让一组线程等待,然后一起开始往下执行。但是两者还是有几个区别1. 等待的对象不同。CountDownLatch的一组线程等待的是一个事件,或者说是一个计数器归0的事件。而CyclicBarrier等待的对象是线程,只有线程都到齐了才往下执行2. 使用方式不同,这个也...

2018-09-26 12:41:04 92

转载 聊聊高并发(二十九)解析java.util.concurrent各个组件(十一) 再看看ReentrantReadWriteLock可重入读-写锁

上一篇聊聊高并发(二十八)解析java.util.concurrent各个组件(十) 理解ReentrantReadWriteLock可重入读-写锁 讲了可重入读写锁的基本情况和主要的方法,显示了如何实现的锁降级。但是下面几个问题没说清楚,这篇补充一下1. 释放锁时的优先级问题,是让写锁先获得还是先让读锁先获得 2. 是否允许读线程插队3. 是否允许写线程插队,因为读写锁一般用在大...

2018-09-26 12:40:52 102

转载 聊聊高并发(二十八)解析java.util.concurrent各个组件(十) 理解ReentrantReadWriteLock可重入读-写锁

这篇讲讲ReentrantReadWriteLock可重入读写锁,它不仅是读写锁的实现,并且支持可重入性。 聊聊高并发(十五)实现一个简单的读-写锁(共享-排他锁) 这篇讲了如何模拟一个读写锁。 可重入的读写锁的特点是1. 当有线程获取读锁时,不允许再有线程获得写锁2. 当有线程获得写锁时,不允许其他线程获得读锁和写锁 这里隐含着几层含义:  static f...

2018-09-26 12:40:44 104

转载 聊聊高并发(二十七)解析java.util.concurrent各个组件(九) 理解ReentrantLock可重入锁

这篇讲讲ReentrantLock可重入锁,JUC里提供的可重入锁是基于AQS实现的阻塞式可重入锁。这篇 聊聊高并发(十六)实现一个简单的可重入锁 模拟了可重入锁的实现。可重入锁的特点是:1. 是互斥锁,基于AQS的互斥模式实现,也就是说同时只有一个线程进入临界区,唤醒下一个线程时也只能释放一个等待线程2. 可重入,通过设置了一个字段exclusiveOwnerThread来标示当前获得锁...

2018-09-26 12:40:37 163

转载 聊聊高并发(二十六)解析java.util.concurrent各个组件(八) 理解CountDownLatch闭锁

CountDownLatch闭锁也是基于AQS实现的一种同步器,它表示了“所有线程都等待,直到锁打开才继续执行”的含义。它和Semaphore的语意不同, Semaphore的获取和释放操作都会修改状态,都可能让自己或者其他线程立刻拿到锁。而闭锁的获取操作只判断状态是否为0,不修改状态本身,闭锁的释放操作会修改状态,每次递减1,直到状态为0。所以正常情况下,闭锁的获取操作只是等待,不会立刻让自...

2018-09-26 12:40:29 112

转载 聊聊高并发(二十五)解析java.util.concurrent各个组件(七) 理解Semaphore

前几篇分析了一下AQS的原理和实现,这篇拿Semaphore信号量做例子看看AQS实际是如何使用的。 Semaphore表示了一种可以同时有多个线程进入临界区的同步器,它维护了一个状态表示可用的票据,只有拿到了票据的线程尽可以进入临界区,否则就等待,直到获得释放出的票据。Semaphore常用在资源池中来管理资源。当状态只有1个0两个值时,它退化成了一个互斥的同步器,类似锁。 下面...

2018-09-26 12:40:22 113

转载 聊聊高并发(二十四)解析java.util.concurrent各个组件(六) 深入理解AQS(四)

最近整体过了下AQS的结构,也在网上看了一些讲AQS的文章,大部分的文章都是泛泛而谈。重新看了下AQS的代码,把一些新的要点拿出来说一说。 AQS是一个管程,提供了一个基本的同步器的能力,包含了一个状态,修改状态的原子操作,以及同步线程的一系列操作。它是CLHLock的变种,CLHLock是一个基于队列锁的自旋锁算法。AQS也采用了队列来作为同步线程的结构,它维护了两个队列,一个是作为线程...

2018-09-26 12:40:16 87

转载 聊聊高并发(二十三)解析java.util.concurrent各个组件(五) 深入理解AQS(三)

这篇对AQS做一个总结。上一篇帖了很多AQS的代码,可以看出AQS的实现思路很简单,就是提供了获取acquire和释放操作release,提供了1. 可中断和不可中断的版本2. 可定时和不可定时的版本3. 独享和共享的版本 看过之前实现各种自旋锁系列的同学应该知道,在自旋锁的实现中,获取锁和释放锁操作的逻辑基本如下:自旋锁获取锁操作while 状态不允许获取锁 {...

2018-09-25 09:39:06 74

转载 聊聊高并发(二十二)解析java.util.concurrent各个组件(四) 深入理解AQS(二)

上一篇介绍了AQS的基本设计思路以及两个内部类Node和ConditionObject的实现 聊聊高并发(二十一)解析java.util.concurrent各个组件(三) 深入理解AQS(一) 这篇说一说AQS的主要方法的实现。AQS和CLHLock的最大区别是,CLHLock是自旋锁,而AQS使用Unsafe的park操作让线程进入等待(阻塞)。 线程加入同步队列,和CLHLock一样...

2018-09-25 09:38:59 109

转载 聊聊高并发(二十一)解析java.util.concurrent各个组件(三) 深入理解AQS(一)

AQS是AbstractQueuedSynchronizer的缩写,AQS是Java并包里大部分同步器的基础构件,利用AQS可以很方便的创建锁和同步器。它封装了一个状态,提供了一系列的获取和释放操作,这些获取和释放操作都是基于状态的。它的基本思想是由AQS负责管理同步器类中的状态,其他的同步器比如可重入锁ReentrantLock, 信号量Semaphore基于各自的特点来调用AQS提供了基础能力...

2018-09-25 09:38:53 113

hadoop-windows

Hadoop 2.7. 6在Windows7下单机部署时的补丁文件包,解决Hadoop在Windows下的安装问题

2018-08-14

Z-Stack API

ZStack 2006版本Api,中文版,

2011-03-30

《Z-Stack API 接口》中文版

ZigBee协议栈编程接口(API),中文版。

2010-04-04

空空如也

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

TA关注的人

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