摘要:
July已经把Adaboost的实现步骤讲述得非常清楚,我就不再赘述,这里用Python实现了一下。 阅读全文
摘要:
有个java程序越跑越慢,如何排查? 首先通过jps找到java进程ID。然后top -p [pid]发现内存占用达到了最大值(-Xmx)。开始怀疑是由于频繁Full GC导致的,于是通过jstat -gcutil [pid] 60000查看GC的情况,其中60000表示每隔1分钟输出一次。果然是F 阅读全文
摘要:
很多人讲RBM都要从能量函数讲起,由能量最低导出极小化目标函数(你听说过最常见的建立目标函数的方法可能是最小化平方误差或者最大化似然函数),然后用梯度下降法求解,得到网络参数。Introduction to Restricted Boltzmann Machines这篇博客没有遵循这种套路来讲RBM 阅读全文
摘要:
TreeSet的底层是TreeMap的keySet(),而TreeMap是基于红黑树实现的,红黑树是一种平衡二叉查找树,它能保证任何一个节点的左右子树的高度差不会超过较矮的那棵的一倍。 TreeMap是按key排序的,所以TreeSet中的元素也是排好序的。显然元素在插入TreeSet时compar 阅读全文
摘要:
LFM LFM即隐因子模型,我们可以把隐因子理解为主题模型中的主题、HMM中的隐藏变量。比如一个用户喜欢《推荐系统实践》这本书,背后的原因可能是该用户喜欢推荐系统、或者是喜欢数据挖掘、亦或者是喜欢作者项亮本人等等,假如真的是由于这3个原因导致的,那如果项亮出了另外一本数据挖掘方面的书,我们可以推测该 阅读全文
摘要:
热数据缓存 这是使用缓存最频繁最直接的方式,即我们把需要频繁访问DB的数据加载到内存里面,以提高响应速度。通常我们的做法是使用一个ConcuccrentHashMap<Request, AtomicInteger>来记录一天当中每个请求的次数,每天凌晨取出昨天访问最频繁的K个请求(K取多少个取决你的 阅读全文
摘要:
本文讲一些常见的分布式应用层面的技术,其中大部分都依赖于Zookeeper,所以对zookeeper不熟悉的同学可以先看我之前写的两往篇博客Zookeeper编程(二)、Zookeeper编程(一) 锁 我们的推荐程序部署在多台服务器上,每天凌晨会去重建信息索引(索引存在Redis上)。建索引这件事 阅读全文
摘要:
自己实现了一个简易的MySQL数据操作中间层,经过近一年的线上使用和维护,功能已比较完善,性能方面也没有发现大的问题。诚然类似的开源工具有很多,但对于想快速了解其实现原理的同学来说,本文可以成为你的一个切入口。 ORM实体关系映射 类注解@DataBase和@Table分别注明该类跟哪个库哪张表对应 阅读全文
摘要:
本文主要围绕scipy中的稀疏矩阵展开,也会介绍几种scipy之外的稀疏矩阵的存储方式。 dok_matrix 继承自dict,key是(row,col)构成的二元组,value是非0元素。 优点: 缺点: 适用场景: coo_matrix 如上图,构造coo_matrix需要3个等长的数组,val 阅读全文
摘要:
先来点预备知识。矩阵的3种运算我们称之为“行初等变换”: 以矩阵实施行初等变换等同于在矩阵左边乘以一个矩阵。 当要求矩阵A的逆时,在A的右边放一个单位矩阵,我们称[A|I]为增广矩阵。对增广矩阵实施行初等变换,即左乘一个矩阵P,如果使得P[A|I]=[PA|P]=[I|P],则P就是$A^{-1}$ 阅读全文
摘要:
上面的二部图表示user A对item a和c感兴趣,B对a b c d都感兴趣,C对c和d感兴趣。本文假设每条边代表的感兴趣程度是一样的。 现在我们要为user A推荐item,实际上就是计算A对所有item的感兴趣程度。在personal rank算法中不区分user节点和item节点,这样一来 阅读全文
摘要:
python3标准库里自带线程池ThreadPoolExecutor和进程池ProcessPoolExecutor。 如果你用的是python2,那可以下载一个模块,叫threadpool,这是线程池。对于进程池可以使用python自带的multiprocessing.Pool。 当然也可以自己写一 阅读全文
摘要:
import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; import org.bson.Document; import com.mongodb.MongoClient; import com.mongodb.client.MongoCollect... 阅读全文
摘要:
获取数组类型int[] arr=new int[3];System.out.println(arr.getClass());输出的是:class [Ipackage test;import java.lang.reflect.Method;import org.junit.Assert;public... 阅读全文
摘要:
isInstance和isAssignableFromobj instanceof Class判断obj是不是Class或者Class的子类的实例clazz.isInstance(obj)判断obj能不能强制转换成clazz类型,亦即obj是不是clazz或者clazz的子类的实例clazz1.is... 阅读全文
摘要:
搜索 Ctrl+P:1、在当前项目中搜索文件名。2、输入@,在当前文件中搜索函数名。3、输入#,在当前文件中搜索变量名。4、输入:,跳转到指定行。 Ctrl+F:在当前文件中搜索关键字 Ctrl+H:在当前文件中进行关键字的搜索和替换 Ctrl+Shift+F:在指定文件夹中进行搜索和替换 选择 C 阅读全文
摘要:
__str__用于打印方便人阅读的信息。__repr__得到的字符串通常用来重新获得实例,即通常情况下inst=eval(repr(inst))是成立的。在IPython中直接输入实例名然后回车,将会调用__repr__,而“print obj”将调用obj的__str__方法。具体说来有4种情况会... 阅读全文
摘要:
使用type创建类使用type创建类的语法为type(类名, 父类的元组(针对继承的情况,可以为空),包含属性的字典(名称和值))举个例子class A(object): name='orisun'class B(object): city='BeiJing'class C(A,B): ... 阅读全文
摘要:
对象的创建pyhton用__new__来创建对象(__new__相当于Java中的构建函数),对象创建好之后会立即调用__init__方法,__init__方法有个参数self就是刚才__new__创建好的那个对象。通过我们有__init__方法中给对象的属性进行赋值,或者动态线对象添加属性并赋值。... 阅读全文
摘要:
类属性和对象属性我们把定义在类中的属性称为类属性,该类的所有对象共享类属性,类属性具有继承性,可以为类动态地添加类属性。对象在创建完成后还可以为它添加额外的属性,我们把这部分属性称为对象属性,对象属性仅属于该对象,不具有继承性。类属性和对象属性都会被包含在dir()中,而vars()是仅包含对象属性... 阅读全文
摘要:
__getitem__ __setitem__# coding:utf-8class Father(object): def __init__(self): self.name = "father" self.children = ['child1', 'chil... 阅读全文
摘要:
1 #!/usr/bin/env python 2 # coding=utf-8 3 4 ''' 5 蓄水池抽样法。从不知道总数的样本中随机抽取k个,要求只遍历一次样本。 6 ''' 7 8 import sys 9 import random10 11 if __name__ == '__m... 阅读全文
摘要:
拉勾网上一个求职的兴趣有3个,感兴趣程度分别是{人事:0.6,行政:0.3,运营:0.1}求职者在拉勾APP首页每次下拉会多出5个推荐职位,我们希望总体上推荐职位的类型分布和该求职者的兴趣分布是一致的,问每次推荐的5个职位中“人事、行政、运营”类的职位分别应该出多少个?第1次:人事类出5*0.6=3... 阅读全文
摘要:
方法一第一阶段的Map,对每一数据项 $(i,j,v)$,若来自矩阵 A ,则输出 $(j,(A,i,v))$,若来自矩阵 B ,则输出$(i,(B,j,v))$,这 样 矩 阵 A 的 第j 列 和 矩 阵 B 的 第 i 行 会被同一个 reduce 节点处理;在 Reduce 端,将来自 A ... 阅读全文
摘要:
简单理解SimRank 图1.二部图 所谓二部图(bipartite graphs),是指图中的节点可以分这两个子集,任意一条边关联的两个节点分别来自于这两个子集。用I(v)和O(v)分别表示节点v的in-neighbors和out-neighbors。看上面的二部图,我们把A、B当成两个人,把a、 阅读全文
摘要:
Trie树主要应用在信息检索领域,非常高效。今天我们讲Double Array Trie,请先把Trie树忘掉,把信息检索忘掉,我们来讲一个确定有限自动机(deterministic finite automaton ,DFA)的故事。所谓“确定有限自动机”是指给定一个状态和一个变量时,它能跳转到的 阅读全文
摘要:
标题读起来很拗口,原文是TrustWalker: A Random Walk Model for Combining Trust-based and Item-based Recommendatio,翻译得不好见谅如上图所示,每个人对一些商品有过评分,用直线连接的用户之间存在信任关系,现在我们要预测... 阅读全文
摘要:
基础篇 矩阵背后的现实意义 概率分布 无约束最优化方法 拉格朗日乘子法和KKT条件 推荐 相关性检验 协同过滤推荐算法 分类 朴素贝叶斯 LR SVM 聚类 KMeans DBScan CHAMELEON GMM 决策树 ID3 C4.5 Adaboost GBDT 关联规则挖掘 Apriori F 阅读全文
摘要:
BlockingQueue先来说3种BlockingQueueSynchronousQueue。队列长度始终为0,因为任何一个put操作必须等待一个take操作,否则put就一直阻塞。所以一旦put成功之后,元素马上就被take出去了,队列长度始终为0。ArrayBlockingQueue。基于定长... 阅读全文
摘要:
结构风险最小化原则经验风险:在训练样本上的误判,也就是损失函数了。结构风险:由2部分组成,经验风险和VC置信范围VC Confidence。VC置信范围又跟训练样本数量和VC维有关,样本越多VC置信范围越小,VC维越大VC置信范围越大。VC维反映了函数集的学习能力,算法模型越复杂VC维越大。结构风险... 阅读全文
摘要:
面向接口编程没有面向接口编程就没有依赖注入(Dependency Injection),所以讲依赖注入之前先重温一下面向接口编程。ps:依赖注入(DI,Dependency Injection)和控制反转(IoC,Inversion of Control)的关系public interface Ve... 阅读全文
摘要:
MySQL默认采用的是MyISAM。 MyISAM不支持事务,而InnoDB支持。InnoDB的AUTOCOMMIT默认是打开的,即每条SQL语句会默认被封装成一个事务,自动提交,这样会影响速度,所以最好是把多条SQL语句显示放在begin和commit之间,组成一个事务去提交。 InnoDB支持数 阅读全文
摘要:
学习了公司的服务通信中间件,自己实现了一个最简单的服务通信框架。框架结构由下向上分为4层:实体层。对服务的请求参数和服务的返回值进行封装,提供序列化和反序列化方法。协议层。规定数据在网络上传输应该按照什么样的格式来组织。通信层。就是Socket通信了,使用了NIO技术。服务代理层。客户端需要通过代理... 阅读全文
摘要:
组内分享时写了个PPT:卷积神经网络 阅读全文
摘要:
两年前写过ZooKeeper编程(一),那时候还在实习。近期组内做了个zookeeper编程的分享,就又把各种问题整理了一下。以下只是简单地copy了幻灯片中的内容,写得不够连贯,读者见谅。 ZooKeeper的轮廓 / root | \ child1 | \ child2 | \ child3 | 阅读全文
摘要:
谓词使用IN、NOT IN、EXISTS、NOT EXISTS < 、> 、= 、!= 、<>、if null 、between依然可以走索引。 LIKE前通配 like后通配依然可以走索引。 索引列使用了函数、数学运行、其他表达式等 建议:不要在where的过滤字段上加函数,而应该在比较值上加函数 阅读全文
摘要:
netstat命令选项: -a all 默认不显示LISTEN相关 -t tcp -u udp -n number 不显示别名,能显示数字的都用数字显示。由于不需要把数字转换成别名,所以显示的快一些 -l listen 仅列出正在监听的服务状态 -p program 显示建立连接的程序名 -r ro 阅读全文
摘要:
public static void main(String[] args) { int number = -1; System.out.printf("number=%x\n", number);// 计算机存储负数里用的是补码形式 int a = 0x80000001; System.... 阅读全文
摘要:
期望 介绍各个分布之前先给出期望的定义。如果$\int_{-\infty}^{\infty}|x|f(x)dx<\infty$,那么$E(x)=\int_{-\infty}^{\infty}xf(x)dx$;如果积分发散,则期望不存在(无意义)。 函数的期望。如果$Y=g(X)$,对于离散变量$E( 阅读全文