- 博客(121)
- 资源 (19)
- 问答 (4)
- 收藏
- 关注
原创 参数模型VS非参数模型
我们在机器学习中学习到的很多的算法模型,都可以分为参数(parametric)和非参数(nonparametric)。理解这两个概念,并知道如何区分哪些是非参数,哪些是参数,对于你深入的理解机器学习中的算法,熟悉各算法的优缺点,以及如何在实践中选择合适的算法模型都会有帮助。所以,...
2019-12-19 23:23:18 3420
原创 KL散度和交叉熵
在学习机器学习的过程中,我们经常会碰到这两个概念:KL散度(kl divergence)以及交叉熵,并且经常是同时出现的。很多同学对这两个概念都理解的不是很透彻,造成经常会搞混他们两者。本文最主要的目的就是带大家深入理解这两个重要的概念,同时搞懂,区别的理解他们,保证以后不会再搞混它们。如果你学过信息论,区分两者就更加容易:KL散度就是相对熵,参考资料...
2019-12-10 23:17:48 2874
原创 详解RankNet原理及实践
0.pair-wise rank简介         pair-wise rank的主要思想是把排序形式化为成对分类(pairwise classification)或成对回归(pairwise regression)问题。和point-wise 最大的区别是,pair-wise的样本是有一对item的相对关系组成的。例如对于某个用户u, 物品i...
2018-11-11 14:43:42 7740 2
原创 用两张图帮你入门机器学习
什么是机器学习?      深度学习的成功使得人工智能,机器学习受到前所未有的关注。相关岗位的薪资的水涨船高也吸引了大批软件开发相关的人奋不顾身的转机器学习相关应用的岗位(广告策略,推荐算法,图像识别等)。这同样催生了机器学习相关教育培训的无比火热。但老实说,对于几乎没有什么基础的人来说,想通过各种所谓高
2018-11-03 15:50:35 553
原创 你是哪种数据科学家?--《Analyzing the Analyzers》阅读笔记
    今天花了点时间看了一本小册子《Analyzing the Analyzers:An Introspective Survey of Data Scientists and Their Work》。书是2013年出版的,非常薄:加上封面啥的,也就39页。书主要讲了:在当今时代,数据科学家很火。但是很多人,甚至包括有相关技术背景的人,都对数据科学家存在...
2018-06-02 15:07:51 736
原创 机器学习中的方差和偏差
最近补充看了一些偏差-方差的资料。前面也做了两篇相关的笔记(翻译)了。感兴趣的,可以先看看理解 Bias 与 Variance 之间的权衡机器学习速成课(part 4)–偏差和方差困境概念&意义 为什么需要理解方差和偏差? 偏差和...
2018-04-23 23:23:01 1292
翻译 机器学习速成课(part 4)--偏差和方差困境
这里有一个谜题: 下列序列的下一个数值是? 1,3,5,7,? 一个正确的解:217314 是不是感觉不可置信?正常人脑海蹦出来的第一个答案应该是‘9’。但‘217...
2018-04-19 23:35:10 2669
原创 推荐系统经典论文
下面提供的论文,可以说基本都是经典中的经典。读完这些论文,相信对推荐系统的认识肯定会有质的飞越:(不够再找我。O(∩_∩)O~)综述类:1、Towards the Next Generation of Recommender Systems: A Survey of the State-of-the-Art and Possible Extensions。最经典的推荐算法综述2、C...
2018-03-08 23:06:36 10340 11
翻译 使用Spark cache来保障正确的一个例子
我们通常以为Spark cache就是一个用来优化spark程序性能的。本文举的例子会告诉你,cache的作用有时候可能比提高性能更重要。(原文标题:Using Spark’s cache for correctness, not just performance)在学习Apache Spark的时候,我们被告知RDD是不可变的。但是,我这里要将到一个和这点冲突的一个小程序。这个Scala程序...
2018-03-03 16:14:19 5033 1
原创 《Statistical Methods for Recommender Systems》--第五章(2)一般系统架构
下图是一个典型的web推荐系统的架构: 主要包含4个组块: 1. Recommendation service –推荐服务;从web服务器获得推荐请求,然后返回推荐物品; 2.Storage systems–存储系统;主要存储用户特征(以及潜在因子)、物品特征(和因子)、模型的参数。并且能够通过有效的索引检索到物品。 ...
2018-03-03 10:17:21 611
原创 决策树基础知识点整理
1、基本算法流程决策树的构造是一个递归的过程,有三种情形会导致递归返回:(1) 当前结点包含的样本全属于同一类别,这时直接将该节点标记为叶节点,并设为相应的类别;(2) 当前属性集为空,或是所有样本在所有属性上取值相同,无法划分,这时将该节点标记为叶节点,并将其类别设为该节点所含样本最多的类别;(3) 当前结点包含的样本集合为空,不能划分,这时也将该节点标记为叶节点,并将其类别设为父节点中所含...
2018-02-24 22:36:24 1312
原创 《Statistical Methods for Recommender Systems》--第五章(1)推荐问题设定和系统架构
可以将网站分为以下四类,对应每类,再选择推荐模型的时候会有各自的考虑: 1. general portals;也就是综合的门户网站,比如雅虎,新浪等; 2. Personal portals;个性化网站;应该指的是类似个人博客一类的网站 3. Domain-specific sites;领域特定的网站...
2018-02-08 22:07:24 491
原创 《Statistical Methods for Recommender Systems》阅读笔记--第4章(1)评估方法--数据切分及线上评估方法
评估主要分两种: ● 部署前的离线评估。关于这部分的指标大家可以参考我的另外两篇博客: 1)http://blog.csdn.net/allenalex/article/details/51318270 2)http://blog.csdn.net/allenalex/article/details/78161915 ● 部
2018-02-04 16:08:17 587
翻译 《Statistical Methods for Recommender Systems》阅读笔记--第三章(2)推荐系统中的EE问题
这章节提到一种解决诸如采用的训练数据由于时间影响(比如用早上的数据,训练后预测晚上的;或者使用历史数据)带来偏差的问题的方法——Kalman filter。具体参考《Applied Bayesian Forecasting and Time Series Analysis》。这块自己研究不深,工作中也没有太过在意,不过最近团队有同事提出了这个问题。后面考虑研究下。 对用户聚类分群,然后在
2018-02-04 12:18:35 1069
原创 《Statistical Methods for Recommender Systems》阅读笔记--第三章(1)--EE问题
插一句:这个问题,我之前写过三篇相关的博客(有一篇竟然不知道怎么被不小心覆盖了。悲伤。。。),感兴趣的可以先参考: ● http://blog.csdn.net/allenalex/article/details/78220926 ● http://blog.csdn.net/allenalex/article/details/78242068 当然,这本书里的这一
2018-01-23 23:18:33 672
原创 《Statistical Methods for Recommender Systems》阅读笔记--第二章
经典算法通常可利用的信息有一下几种: 1)物品的相关信息 2)用户的相关信息 3)用户和物品的交互信息利用前两种信息的经典算法包括: 1、基于用户人口统计属性的推荐(最近邻推荐) 2、基于内容的推荐这两种推荐都是需要将用户和物品转换成特征向量表示。 然后基于向量来计算两两之间(用户-用户,物品-物品,用户-物品)相似度来实现推荐。这种在书中,作者称之为无监督方
2018-01-21 14:43:49 698
原创 《Statistical Methods for Recommender Systems》阅读笔记---第一章
关于推荐系统的书籍目前市面上常见的有这三本:《推荐系统实践》、《推荐系统》(《Recommender Systems:An Introduction》)和《推荐系统:技术、评估及高效算法》(Recommender Systems Handbook)。《Statistical Methods for Recommender Systems》这本书是自己无意间发现的。关于推荐系统的资料虽然众多(有想要
2018-01-20 22:19:28 1322 5
转载 理解 Bias 与 Variance 之间的权衡
有监督学习中,预测误差的来源主要有两部分,分别为 bias 与 variance,模型的性能取决于 bias 与 variance 的 tradeoff ,理解 bias 与 variance 有助于我们诊断模型的错误,避免 over-fitting 或者 under-fitting. 在统计与机器学习领域权衡 Bias 与 Variance 是一项重要的任务,因为他可以使得用有限训练数据训
2017-12-31 09:37:00 3903
翻译 如何通过分区来提高spark的性能(java代码)
RDD是Spark上最重要的概念。可以将RDD理解为是包含很多对象的集合,这些对象实质上是存储在不同的分区上的。当在RDD上执行计算时,这些分区能够并行执行。通过修改分区,我们能够有效的提高spark job的性能。下面通过一个简单的例子来说明下。 举例:找素数 假如我们想找出200万以内的所有素数。简单的方法是,我们可以先找出所有的非素数。然后对全部数字,执行清除所有这些非素数。剩下的就是素
2017-10-22 18:29:50 1067
原创 bandit算法(3)--UCB算法
引言前面已经介绍了两种bandit算法—ϵ\epsilon-greedy算法和softmax算法。现在我们来总结下这两种算法的共有属性:两种算法在每一轮选择时,默认都是选择到目前为止最好的臂;除此之外,算法会尝试去探索一些目前看起来不是最好的臂: -ϵ\epsilon-greedy算法探索的时候完全是随机的。 -softmax算法探索是基于到当前时刻臂的收益
2017-10-15 17:22:04 23584 3
原创 基于矩阵分解推荐算法之交替最小二乘法(ALS)--附实现代码
本文假定读者已经对以下内容有基本了解: 1) 协同过滤算法 2)基于模型的协同过滤算法;主要是基于矩阵分解的方法。知道如何将推荐和矩阵分解联系起来。 3)对矩阵分解有基本的认识本文的目的: 本人的博客一直强调应用,对于任何的算法,会侧重对它的工程应用的介绍。相关的原理,推到演练不会涉及太深。所以本文也不会涉及太多这些方面的内容。
2017-10-13 17:22:07 5578 3
原创 bandit算法(1)--epsilon-Greedy Algorithm(附代码)
简述 epsilon-Greedy算法(ϵ\epsilon-贪婪算法)算是MBA(Multiarmed Bandit Algorithms)算法中最简单的一种。因为是MBA算法介绍的第一篇,所以在这里还是先简单说明下MBA。当然,要解释MBA,首先就得EE问题(Explore-Exploit dilemma)。 什么是EE问题呢? 这两个”E”,其中一个代表“exploit”,中文可译作“
2017-10-12 23:00:43 22635
原创 推荐系统排序(Rank)评价指标总结
1.Mean Average Precision (MAP)AP=∑nij=1P(j).yi,j∑nij=1yi,jAP= \dfrac{\sum_{j=1}^{n_i}P(j).y_{i,j}}{\sum_{j=1}^{n_i}y_{i,j}} 其中, yi,jy_{i,j}:排序中第j个元素对于查询i是否是相关的;相关为1,不相关为0。 P(j)=∑k:πi(k)≤πi(j)
2017-10-05 17:07:36 25021
原创 推荐系统冷启动常用解决方案
本文主要基于博主的实际经验,简单介绍几种推荐系统实践中常用的几种解决冷启动的方案。每种方案尽量提供主要的资料,但不展开详细介绍,有需要的可以自己查看相关资料或google。 此外,本文只针对用户的冷启动问题,不涉及物品的冷启动。 我们通常所说的用户冷启动问题是指系统中没有用户的行为数据,但并不表示没有其他数据。有哪些数据可以用来解决冷启动呢?系统内的数据通常包括用户的一些注册信息,比如用户的年龄
2017-09-07 23:21:45 7100
原创 scikit-learn中的SVM使用指南
本文主要包括以下内容: 1、 sklearn三个SVM分类器(sklearn.svm.LinearSVC,sklearn.svm.SVC,sklearn.svm.NuSVC)的参数详解 2、SVM算法调优的一些建议 3、实验sklearn.svm.LinearSVCpenalty取值说明: l1-SVM: l2-SVM:区别就是优化函数中的惩罚项中是松弛变量累加还是松弛变量平
2017-09-04 20:03:30 5725 2
原创 SVM入门(2)--对偶
从SVM入门(1)–优化目标的来龙去脉 我们已经知道目标函数: 对于这样的凸二次规划问题有现成的优化包可进行求解。此外,这个问题有它的特殊结构,通过 Lagrange Duality 变换到对偶变量 (dual variable) 的优化问题之后,可以找到一种更加有效的方法来进行求解。这种方法比直接使用通用的 QP 优化包进行优化要高效得多。 那么,什么是拉格朗日对偶性?简
2017-08-30 23:22:18 545
原创 SVM入门(1)--优化目标函数的来龙去脉
在线性可分的场景下,SVM的优化目标函数为: 如果是刚接触SVM,你可能不知道这个目标函数,当然你也不知道这个w是什么,后面的这个约束条件什么意思。没关系,你现在只要记着,这个就是在线性可分类场景下,SVM最终要优化的目标函数。显然,这个目标函数是二次的,约束条件是线性的,所以它是一个凸二次规划问题。对于这样的二次规划问题,有现成的二次规划优化包来求解。 现在,
2017-08-29 23:17:10 8745 2
原创 文本分类中的降维方法总结
引言 人们通常采用向量空间模型来描述文本向量,但是如果直接用分词算法和词频统计方法得到的特征项来表示文本向量中的各个维,那么这个向量的维度将是非常的大。 这种未经处理的文本矢量不仅给后续工作带来巨大的计算开销,使整个处理过程的效率非常低下,而且会损害分类、聚类算法的精确性,从而使所得到的结果很难令人满意。 所以,在文本分类中,降维有时候是非常关键的一环。为什么需要降维?也就降维有什么好处?
2017-08-18 11:16:11 22703
原创 用一个例子详解主题敏感(topic-sensitive)pagerank算法流程
本文根据主题敏感pagerank出处的论文《Topic-Sensitive PageRank》中的计算流程,尝试通过列举一个简单的例子来说明主题敏感pagerank的流程。 希望能够帮助有需要的同学。如算法流程有误,请多多指教。
2017-08-14 23:06:36 4051 1
原创 推荐算法的可扩展性之hadoop篇(待续...)
我们都知道,大多数的推荐算法都是单机版的。如果不进行任何处理是不能够分布式执行,也就不能充分利用像hadoop这样的分布式计算集群。这严重限制了 推荐算法的实际应用。比如协同过滤,像亚马逊、天猫这些包含大量用户、大量物品及大量行为的平台,用户-物品矩阵巨大。要实现协同过滤,时间复杂度不说,就是存储,单机的也没法 搞定。所以,实现分布式的推荐算法,充分利用集群的资源就变得非常的必要。
2017-08-01 22:00:44 4165
原创 《Mining Large Streams of User Data for Personalized Recommendations》笔记
论文发表年份:2012 主要内容:1、当前在个性化推荐中如何使用数据挖掘技术 2、从 Netflix竞赛中获得的经验; 3、Netflix竞赛中主要使用的个性化推荐技术 4、展望相对于数据挖掘技术,还存在很多可能对推荐效果影响更大的问题。比如用户交互设计等。但这些不属于本文关注范围。
2017-08-01 21:27:31 760
原创 基于的朴素贝叶斯的文本分类(附完整代码(spark/java)
本文主要包括以下内容: 1)模型训练数据生成(demo) 2 ) 模型训练(spark+java),数据存储在hdfs上 3)预测数据生成(demo) 4)使用生成的模型进行文本分类。
2017-06-20 23:52:25 7352 2
原创 协同过滤算法概述
主要内容:不同算法类的简单介绍,各自的适用场景以及面临的挑战; 和其他算法的比较。一.简介协同过滤是最早提出,同时也是研究的最多,实际应用也最多的一种推荐技术。对于协同过滤算法的分类,主要有两种分类方式。有学者考虑算法是否基于基本概率模型,将协同过滤算法分为非概率性算法和概率性算法。还有将算法分为基于内存的协同过滤算法和基于模型的协同过滤算法。本文采用前一种来阐述。二.非概率性算法基于内存的协
2017-05-26 19:18:55 3152
翻译 机器学习法则:(谷歌)机器学习工程最佳实践(译)
本文来源:《Rules of Machine Learning:Best Practices for ML Engineering》作者:Martin Zinkevich google 研究科学家。这是Martin Zinkevich在NIPS 2016 Workshop 分享的谷歌机器学习实践的四十三条法则。 术语实体(Instance):要对其进行预测的事物标签(Label):预测任务的结果
2017-05-07 23:08:04 3452
翻译 主题建模入门指南(python)
简介所谓分析,通常都是指从数据中获取“信息”。近来,随着数据迅猛增长——其中绝大多数数据是非结构的,要想获得相关想要的信息变成越来越困难。庆幸地是,与此同时出现了一些强大的方法来帮助我们从这些数据中抽取出我们想要的信息。文本挖掘领域中这样相关的一种技术是主题建模。正如其名,主题建模能够从一个文本对象中自动识别它的主题,并且发现隐藏的模式。这些能够帮助做出更好的决策。主题建模和那些基于规则的文本挖掘方
2017-02-22 22:33:55 7363
原创 中文文本的字数统计(不包括标点符号且考虑英文/数字序列)
#-*-coding=utf-8 -*-"""统计一遍中文文章的字数(不包括标点符号,考虑英文/数字序列(不拆分成当个字母或数字)"""import reimport jiebac = "\\"text = """然而,在参加string聚会或者出席典礼时,很多人会抱怨自己挑不出一件拿得出手的裙子。望着摆满了鞋子的鞋架,发觉自己花了这么多钱,却选不出一双满意的鞋子。梳妆台上摆满了化妆品
2017-02-15 15:54:21 5913
原创 python字符串过滤性能比较
总共比较5种方法。直接看代码:import randomimport timeimport osimport stringbase = string.digits+string.punctuationtotal = 100000def loop(ss): """循环""" rt = '' for c in ss: if c in '0123456789
2017-02-11 09:21:37 2613
原创 Python文本操作相关模块
linecache——通过使用缓存在内部尝试优化以达到高效从任何文件中读出任何行。 主要方法: linecache.getline(filename, lineno[, module_globals]):获取指定行的内容 linecache.
2017-02-07 13:35:19 1073
翻译 Python文本处理之按行处理大文件
以行的形式读出一个文件最简单的方式是使用文件对象的readline()、readlines()和xreadlines()方法。 Python2.2+为这种频繁的操作提供了一个简化的语法——让文件对象自身在行上高效迭代(这种迭代是严格的向前的)。 为了读取整个文件,可能要使用read()方法,且使用字符串的split()来将它拆分WEIGHT行或其他块。下面是一些例子: >>> for
2017-02-06 11:28:54 9192
翻译 __slots__为什么能节省内存?
注:本文是对http://www.datadependence.com/2016/07/pythonic-code-video-series-slots/ 的翻译。说是翻译,但不会逐字逐句翻译。宗旨是回答标题的问题,所以也会增加自己的理解。 很多人都看过Oyster.com的这篇相当当的文章: SAVING 9 GB OF RAM WITH PYTHON’S _SLOTS_ 为了能够理解_
2017-01-10 23:06:27 1740
java网络编程
2015-02-10
datatools.connectivity
2014-11-02
Linux 从入门到精通
2012-04-29
嵌入式系统开发圣经
2012-04-21
编写自己的Shell解释器
2012-04-20
Linux核心手册
2012-04-20
Windows CE开发初步
2012-04-20
C语言程序实例
2012-04-19
arm入门笔记
2012-04-18
eclipse开发入门
2012-04-16
通过JDBC驱动连接Hive操作失败
2015-10-16
centos上通过rpm安装mysql失败
2015-10-14
python 打印不出任何信息
2015-04-28
jsoup解析网页时“www”变成“m”的问题
2015-02-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人