![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
机器学习
文章平均质量分 89
Dark_Scope
杭州搬砖中。。。
展开
-
采样方法(一)
本篇文章先主要介绍一下经典的采样方法如Inverse Sampling、Rejective Sampling以及Importance Sampling和它在NLP上的应用,后面还会有一篇来尝试介绍MCMC这一组狂炫酷拽的算法。才疏学浅,行文若有误望指正。原创 2017-04-30 08:46:18 · 31500 阅读 · 31 评论 -
从item-base到svd再到rbm,多种Collaborative Filtering(协同过滤算法)从原理到实现
〇.说明 本文的所有代码均可在 DML 找到,欢迎点星星。一.引入 推荐系统(主要是CF)是我在参加百度的电影推荐算法比赛的时候才临时学的,虽然没拿什么奖,但是知识却是到手了,一直想写一篇关于推荐系统的文章总结下,这次借着完善DML写一下,权当是总结了。不过真正的推荐系统当然不会这么简单,往往是很多算法交错在一起,本文只是入门水平的总结罢了。 (本文所原创 2013-12-14 19:49:06 · 62786 阅读 · 48 评论 -
CNN(Convolutional Neural Networks)没有原理只有实现
零.说明: 本文的所有代码均可在 DML 找到,欢迎点星星。 注.CNN的这份代码非常慢,基本上没有实际使用的可能,所以我只是发出来,代表我还是实践过而已一.引入: CNN这个模型实在是有些年份了,最近随着深度学习的兴起又开始焕发青春了,把imagenet测试的准确度提高了非常多,一个是Alex的工作,然后最近好像Zeiler又有突破性原创 2013-12-03 23:03:30 · 24515 阅读 · 11 评论 -
KNN(k-nearest neighbor algorithm)--从原理到实现
零. 本文所有代码实现均可以在 DML 找到,不介意的话请大家在github里给我点个Star一.引入 K近邻算法作为数据挖掘十大经典算法之一,其算法思想可谓是intuitive,就是从训练集里找离预测点最近的K个样本来预测分类 因为算法思想简单,你可以用很多方法实现它,这时效率就是我们需要慎重考虑的事情,最简单的自然是求出测试样本和训练集所有点的距原创 2013-11-13 12:31:40 · 24015 阅读 · 8 评论 -
【面向代码】学习 Deep Learning(二)Deep Belief Nets(DBNs)
==========================================================================================最近一直在看Deep Learning,各类博客、论文看得不少但是说实话,这样做有些疏于实现,一来呢自己的电脑也不是很好,二来呢我目前也没能力自己去写一个toolbox只是跟着Andrew Ng的原创 2013-07-24 11:50:07 · 67979 阅读 · 99 评论 -
新浪微博小爬虫
一直琢磨着写个爬虫玩,上学期都没实行,于是花了大概一天写了这个东西 其实半天就把程序调试好了,可是在往mysql数据库里保存数据的时候出了问题 python的中文编码实在是非常麻烦,不光如此,因为有些用户的简介里有一些特殊符号,®或者笑脸之类的,于是在这里纠结了很久,好歹最后是成功了(其实也就是过滤掉了那些特殊符号) 效率来说呢,开始的时候一原创 2013-03-08 13:21:50 · 27074 阅读 · 45 评论 -
SVM --从“原理”到实现
零. 本文所有代码均能在我 github上的 DML 找到,顺便求点Star一.引入 从一开始接触机器学习,就感觉SVM(支持向量机 Support Vector Machine)就是高端大气上档次的代名词啊,在深度学习出来之前一直都力压ANN一头,是应用得最好的算法了,本文借着实现DML的机会实现一下。二.原理 SVM的文章先不原创 2013-11-23 16:42:18 · 32493 阅读 · 4 评论 -
AdaBoost--从原理到实现
一.引入 对于Adaboost,可以说是久闻大名,据说在Deep Learning出来之前,SVM和Adaboost是效果最好的 两个算法,而Adaboost是提升树(boosting tree),所谓“提升树”就是把“弱学习算法”二.原理三.实现原创 2013-11-03 14:33:07 · 186636 阅读 · 56 评论 -
决策树--从原理到实现
================================================================================算算有相当一段时间没写blog了,主要是这学期作业比较多,而且我也没怎么学新的东西接下来打算实现一个小的toy lib:DML,同时也回顾一下以前学到的东西当然我只能保证代码的真确性,不能保证其效率啊~~~~~~之后我会陆续原创 2013-10-27 13:07:05 · 71514 阅读 · 7 评论 -
【面向代码】学习 Deep Learning(四) Stacked Auto-Encoders(SAE)
==========================================================================================最近一直在看Deep Learning,各类博客、论文看得不少但是说实话,这样做有些疏于实现,一来呢自己的电脑也不是很好,二来呢我目前也没能力自己去写一个toolbox只是跟着Andrew Ng的原创 2013-08-13 10:21:27 · 42801 阅读 · 15 评论 -
GBDT(Gradient Boosting Decision Tree) 没有实现只有原理
阿弥陀佛,好久没写文章,实在是受不了了,特来填坑,最近实习了(ting)解(shuo)到(le)很多工业界常用的算法,诸如GBDT,CRF,topic model的一些算法等,也看了不少东西,有时间可以详细写一下,而至于实现那真的是没时间没心情再做了,等回学校了再说吧。今天我们要说的就是GBDT(Gradient Boosting Decision Tree)原创 2014-05-03 10:23:18 · 140756 阅读 · 37 评论 -
理解机器学习算法的一点心得
然后用不同的方法来优化这个问题,得到尽量好的结果,给人的感觉就像是一个黑盒,实际使用中需要不断地调参实验,但倘若你能理解好算法,至少能让这个盒子透明一点,这也是机器学习算法确实需要使用者去理解算法的原因,举个例子:传统算法比如一些高效的数据结构,我只需要知道一些接口就可以使用,不需要进行太多的理解,了解传统算法更多的是理解算法的思想,开阔思路,增强能力;而机器学习算法,你即使知道接口,也至少要调一些参数来达到实际使用的目的。原创 2014-05-10 18:08:34 · 23383 阅读 · 7 评论 -
【面向代码】学习 Deep Learning(三)Convolution Neural Network(CNN)
==========================================================================================最近一直在看Deep Learning,各类博客、论文看得不少但是说实话,这样做有些疏于实现,一来呢自己的电脑也不是很好,二来呢我目前也没能力自己去写一个toolbox只是跟着Andrew Ng的原创 2013-07-26 15:01:06 · 77735 阅读 · 50 评论 -
采样方法(二)MCMC相关算法介绍及代码实现
0.引子书接前文,在采样方法(一)中我们讲到了拒绝采样、重要性采样一系列的蒙特卡洛采样方法,但这些方法在高维空间时都会遇到一些问题,因为很难找到非常合适的可采样Q分布,同时保证采样效率以及精准度。 本文将会介绍采样方法中最重要的一族算法,MCMC(Markov Chain Monte Carlo),在之前我们的蒙特卡洛模拟都是按照如下公式进行的:原创 2017-12-30 15:32:14 · 25996 阅读 · 3 评论 -
NE(Network Embedding)论文小览
NE(Network Embedding)论文小览自从word2vec横空出世,似乎一切东西都在被embedding,今天我们要关注的这个领域是Network Embedding,也就是基于一个Graph,将节点或者边投影到低维向量空间中,再用于后续的机器学习或者数据挖掘任务,对于复杂网络来说这是比较新的尝试,而且取得了一些效果。 本文大概梳理了最近几年流行的一些方法和论文,paper主要是来自t原创 2017-07-04 07:47:23 · 34853 阅读 · 4 评论 -
贝叶斯线性回归(Bayesian Linear Regression)
mlapp看到了第七章,跳了第六章没看,第七章主要是讲线性回归的,前面首先是最朴素的线性回归,接着是ridge线性回归(其实就是带惩罚参数的回归),然后就是本文要总结的贝叶斯线性回归。把prml和mlapp综合起来看了,效果还不错,有些东西互有详略,可以互做补充。1.引入 贝叶斯线性回归的引入主要是在最大似然估计中很难决定模型的复杂程度,ridge回归加入的惩罚参数其实也是解决这个原创 2013-01-31 11:01:37 · 43603 阅读 · 6 评论 -
序列的算法(一·b)隐马尔可夫模型
序言….. 本系列对算法的讲解都会从两篇部分予以呈现:a. 湿货部分要浅入浅出,形象生动,读得明白。 b. 干货部分要一文以蔽之,公式罗列,看得通透;下面是(一)的 b 部分内容UnigramUnigram模型认为序列中的每一项都是独立发生的,所以很自然,假设我们有N个序列,每个序列长度是MnM_n,那么整个序列的联合概率分布就是: P(X)=∏iN∏jMip(Xji) P(X) =原创 2017-03-19 12:42:53 · 11813 阅读 · 5 评论 -
序列的算法(一·a)马尔可夫模型
序列的世界(一.a)序言机器学习领域往往按照算法的应用分为各大领域,如NLP、CV、MT等等,一些算法往往也被打上各自应用的标签,但其实对于算法本身而言,只要你能按照他指定的格式输入数据,就能够产出相应的结果,并不是限定到某个领域,只要你能对问题抽象成算法需要的input,就可以在这个问题上发挥算法的价值。在这里我们会关注一系列输入是「序列」的算法,这里的序列包括但不限于「文本序列」、「时间序列」、原创 2017-03-11 14:50:29 · 18910 阅读 · 4 评论 -
自动求导的二三事
知乎上看到一个回答,说是自己学习神经网络的时候都是自己对公式求导,现在常见的DL库都可以自动求导了。这个想必实现过神经网络的同学都有体会,因为神经网络的back-propagation算法本质上就是求导链式法则的堆叠,所以学习这部分的时候就是推来推去,推导对了,那算法你也就掌握了。粗粗一想,只要能把所有操作用有向图构建出来,通过递归去实现自动求导似乎很简单,一时兴起写了一些代码,整理成博客记录一下。原创 2017-03-17 16:33:32 · 12751 阅读 · 3 评论 -
维度打击,机器学习中的降维算法:ISOMAP & MDS
降维是机器学习中很有意思的一部分,很多时候它是无监督的,能够更好地刻画数据,对模型效果提升也有帮助,同时在数据可视化中也有着举足轻重的作用。一说到降维,大家第一反应总是PCA,基本上每一本讲机器学习的书都会提到PCA,而除此之外其实还有很多很有意思的降维算法,其中就包括isomap,以及isomap中用到的MDS。ISOMAP是‘流形学习’中的一个经典算法,流形学习贡献了很多降维算法,其中一些与很多原创 2016-11-19 13:15:28 · 39420 阅读 · 17 评论 -
从PCA和SVD的关系拾遗
从PCA和SVD的关系拾遗最近突然看到一个问题,PCA和SVD有什么关系?隐约记得自己照猫画虎实现的时候PCA的时候明明用到了SVD啊,但SVD(奇异值分解)和PCA的(特征值分解)貌似差得相当远,由此钻下去搜集了一些资料,把我的一些收获总结一下,以免以后再忘记。PCA的简单推导PCA有两种通俗易懂的解释,1)是最大化投影后数据的方差(让数据更分散);2)是最小化投影造成的损失。这两个思路最后都能推原创 2016-11-13 19:38:27 · 41580 阅读 · 21 评论 -
RNN以及LSTM的介绍和公式梳理
前言好久没用正儿八经地写博客了,csdn居然也有了markdown的编辑器了,最近花了不少时间看RNN以及LSTM的论文,在组内『夜校』分享过了,再在这里总结一下发出来吧,按照我讲解的思路,理解RNN以及LSTM的算法流程并推导一遍应该是没有问题的。RNN最近做出了很多非常漂亮的成果,比如Alex Graves的手写文字生成、名声大振的『根据图片生成描述文字』、输出类似训练语料的文字等应用,都让人感原创 2015-07-25 16:32:32 · 294071 阅读 · 47 评论 -
【面向代码】学习 Deep Learning(一)Neural Network
==========================================================================================最近一直在看Deep Learning,各类博客、论文看得不少但是说实话,这样做有些疏于实现,一来呢自己的电脑也不是很好,二来呢我目前也没能力自己去写一个toolbox只是跟着Andrew Ng的UFLDL原创 2013-07-23 16:24:00 · 106405 阅读 · 124 评论 -
NLP 学习笔记 04 (Machine Translation)
all is based on the open course nlp on coursera.org week 5,week 6 lecture---------------------------------------------------------------------------------------------------------------------------原创 2013-04-09 19:39:51 · 11724 阅读 · 0 评论 -
UFLDL练习(PCA and Whitening && Softmax Regression)
softmax纠结了两天,原因是自己不小心改了主程序还是照例只是贴贴代码,如果你有需要的话可以去看UFLDL的教程至于效果和UFLDL都是一样的,我就不重复贴图了啊,ps:代码是matlab的,不是python的PCA and Whitening:pca_gen.m%%=====================================================原创 2013-03-14 13:03:57 · 8073 阅读 · 10 评论 -
机器学习 cs229学习笔记1
(all is based on the stanford open course cs229.Lecture 11.)regularization(正规化)防止过拟合:保留所有的参数贝叶斯学习方法:增加先验概率,常用为高斯分布N(0,λ),使算法更倾向于选择更小的参数体现在最大似然估计上就是增加惩罚项目,||Θ||^2///////////////////////////////原创 2012-11-11 11:40:07 · 4558 阅读 · 4 评论 -
机器学习-笔记7
第七周呢主要是对SVM的介绍ng首先从以前讲过的logistic regression入手将logistic regression的两个log(h(x))和log(1-h(x))改变成如下图的两个cost函数 650) this.width=650;" src="http://img1.51cto.com/attachment/201209/122228159.jpg" borde原创 2012-11-09 12:40:42 · 1404 阅读 · 0 评论 -
机器学习-笔记6
前面打了一坨字。。。。。被网页搞掉了,伤心ing 我就捡重要的说。。。。伤心ing 1.corss validation(交叉验证)和test(验证)的区别,因为andrew的视频里讲的有些模糊,后来baidu了一些资料加深了理解。cross validation比较好的方法是k-折交叉验证:将训练样本集随机地分成k个互不相交的子集,每个折的大小大致相等。利用k-1个训练子集,对给定的一组原创 2012-11-09 12:40:38 · 1814 阅读 · 2 评论 -
机器学习-笔记3
coursera上的Marchine Learning课程进展到了VII:Regullarization,目前一切轻松正常,学习群居然达到了80人,这个Group应该算是这个课程最大的Study Group了吧,九月就要开学了,可能就不会有像暑假那样充足的时间,况且另一门Statistics One也马上就要开课了,当然我以后的自我学习重心会偏向机器学习,书也基本到货,加油了! 最近几节课原创 2012-11-09 12:40:27 · 1596 阅读 · 0 评论 -
机器学习-笔记2
上一篇笔记其实是在看过网易公开课上的课程后写的,程序甚至数据等等都是自己在没有什么资料的情况下编出来的,现在转战coursera.org平台,同样的老师,几乎同样的课程,但毫无疑问coursera上的用户体验好多了,包括一个课程需要的quiz,exercise,wiki甚至一个小型的bbs,上面能发现来自世界各地的与你一起学习的人,建了一个QQ群,就汇集了来自许多地方的中国人,甚至包括来自HK,台原创 2012-11-09 12:40:21 · 2267 阅读 · 0 评论 -
机器学习-笔记9-总结
时间真快,10周的课程就已经结束了十周,8个programming exercise,18个quiz,感谢 看着长长地视频列表,心中有些小小的成就感,在此感谢coursera提供的课程,感谢Andrew教授的精彩课程,为我打开了机器学习这扇大门 还是先简单说说最后一周的内容吧,首先是Large Scale Machine Learning ,即讲机器学习算法如何应对大量的数据,总结下来原创 2012-11-09 12:40:46 · 2114 阅读 · 0 评论 -
机器学习-笔记4
开学第一周,感觉很累,课程进展不大,下午有点空,抽时间完成了exercise 3,上来做做笔记 可能我的笔记会比较频繁吧,因为没有具体的课本,而且有些重要的东西确实需要记下来,否则很容易忘,今天quiz就没全对。。 主要是regularization 的一个应用和neural Network的一点东西 exercise 3主要是手写数字的识别算法,很基础,但很神奇,仅仅靠l原创 2012-11-09 12:40:29 · 1964 阅读 · 0 评论 -
机器学习-笔记8
这是机器学习第8,9周内容的笔记,因为国庆的缘故有些耽误,所以两个部分放在一起总结归纳。 首先是聚类(Clustering),主要介绍的是K-Means算法,其实这个算法思想很简单,之前在《集体智慧编程》上面就了解过,这次补充学习了一些小细节。 算法的实质就是:(随机初始化聚点) 1、将样例的每个点分配给离它最近的那个聚点 2、统计所有同类点的中点,将聚点移原创 2012-11-09 12:40:44 · 2161 阅读 · 0 评论 -
机器学习-笔记5
时间有点空,就把还没updata的编程练习拿来做了(coursera上一期的课程作业)神经网络,确实不是很好理解,但是磕磕绊绊还是完成了,回头再看看《机器学习》上比较系统的定义以及《集体智慧编程》上搜索引擎章节的一个神经网络样例,我也算从门缝看了一眼屋内的精彩世界吧废话就不多说了样例还是上一个exercise的数字手写识别,不同的是这次用neural network来进行学习n原创 2012-11-09 12:40:34 · 1743 阅读 · 1 评论 -
机器学习 cs229学习笔记5 (ICA Independent components analysis)
(all is based on the stanford's open-course CS229 lecture 15)因为对ICA理解得不是很深刻在网上东搜西搜搜到一个牛人的bloghttp://www.cnblogs.com/jerrylead/他也写了cs229的学习笔记系列,和我的一比较顿时我就自惭形秽了,不过既然都差不多快写完了,我也就继续坚持着吧毕竟我的本意是给自己留原创 2012-11-26 21:11:35 · 5492 阅读 · 4 评论 -
机器学习 cs229学习笔记2 (k-means,EM & Mixture of Gaussians)
(all is based on stanford's opencourse cs229 lecture 12)首先介绍的是聚类算法中最简单的K-Means算法////////////////////////////////////////////////////////////////////////////////////////////////////////////////////原创 2012-11-14 09:31:01 · 5624 阅读 · 0 评论 -
关于多元正态分布的条件分布的证明
之前在机器学习 cs229学习笔记3 (EM alogrithm,Mixture of Gaussians revisited & Factor analysis )中直接给出了多元正态分布的条件概率正好今天上课讲了多元正态分布的内容,但没有涉及条件概率,所以下来baidu了一下,找到一个不错的ppt(ps:其实试着自己搞了一下。。。。没搞出来,所以说数学功底弱啊。。。。)下面是ppt转载 2012-11-20 23:03:17 · 25865 阅读 · 5 评论 -
NLP 学习笔记 01
coursera上MichaelCollins的课程nlp开始了,在读大部头(mlapp)学习ML的过程中看看nlp也着实不错,可以做一些实践 这个课程老师语速很慢,讲解思路十分清晰,推荐给大家。在学习中我可能会把两周的内容在我的blog做一个总结(也许是一周的,看内容的多少了,这第一周的内容太详实了,总结起来太费劲了),方便以后学习和查看--------------------原创 2013-02-28 18:37:48 · 13252 阅读 · 3 评论 -
NLP 学习笔记 02 (Tagging Problems, and Hidden Markov Models)
(all content based on the coursera course nlp)--------------------------------------------------------------------------------------------------------这一周的主要课程是tagging problems首先是简单介绍了一下supervise原创 2013-03-06 11:06:08 · 4781 阅读 · 0 评论 -
UFLDL练习(Sparse Autoencoder)
最近开始学习UFLDL,一个deep learning的教程这个练习的地址:http://deeplearning.stanford.edu/wiki/index.php/Exercise:Sparse_AutoencoderSparse Autoencoder是用神经网络进行feature learning的一个算法,详细的就见教程,我只是贴贴代码从早上十点多一直debug到下午原创 2013-03-03 18:24:46 · 23747 阅读 · 30 评论