斯坦福CS229机器学习课程笔记四:GDA、朴素贝叶斯、多项事件模型

距离上一篇笔记竟然快要一个月了……希望这周能把cs229监督学习部分的知识搞定。

生成学习与判别学习

像逻辑回归,用hθ(x) = g(θTx) 直接地来建模 p(y|x; θ) ;或者像感知机,直接从输入空间映射到输出空间(0或1),它们都被称作判别学习(discriminative learning)
与之相对的是生成学习(generative learning),先对 p(x|y) 与 p(y) 建模,然后通过贝叶斯法则导出后验条件概率分布

分母的计算规则为全概率公式:p(x) = p(x|y = 1)p(y = 1) + p(x|y =0)p(y = 0)。
这一节介绍的三个算法GDA、朴素贝叶斯、多项事件模型,都属于生成学习的范畴。

GDA (Gaussian discriminant analysis)

1.多元正态分布

因为GDA要通过多元正态分布来对p(x|y)进行建模,所以先介绍一下多元正态:

其中两个参数:μ为均值向量,Σ为协方差矩阵。
接下来从比较容易可视化的二元正态分布图像入手,了解参数变化对概率分布变化的影响:

继续阅读斯坦福CS229机器学习课程笔记四:GDA、朴素贝叶斯、多项事件模型

斯坦福CS229机器学习课程笔记三:感知机、Softmax回归

为了给课程的前四讲画上一个句号,这里补充两个前四讲中NG大神提到过的模型。

The perceptron learning algorithm 感知机

模型:

从模型上来看感知机与逻辑回归十分相似,只不过逻辑回归的g函数是逻辑函数(又称sigmoid函数),它是一条从y值0到1的连续曲线。当z→∞,g(z)→1;当z → −∞,g(z)→0。
g(z) = 1/(1+e-z)

而感知机的g函数是分段函数,只输出0和1。
虽然和逻辑回归形式上相近,但是很难为感知机的预测加上概率解释,也很难说感知机算法是源于最大化似然函数, 继续阅读斯坦福CS229机器学习课程笔记三:感知机、Softmax回归

斯坦福CS229机器学习课程笔记二:GLM广义线性模型与Logistic回归

一直听闻Logistic Regression逻辑回归的大名,比如吴军博士在《数学之美》中提到,Google是利用逻辑回归预测搜索广告的点击率。因为自己一直对个性化广告感兴趣,于是疯狂google过逻辑回归的资料,但没有一个网页资料能很好地讲清到底逻辑回归是什么。幸好,在CS229第三节课介绍了逻辑回归,第四节课介绍了广义线性模型,综合起来总算让我对逻辑回归有了一定的理解。与课程的顺序相反,我认为应该先了解广义线性模型再来看逻辑回归,也许这也是为什么讲逻辑回归的网页资料总让人感觉云里雾里的原因吧。

Generalized Linear Model (GLM) 广义线性模型

这一段主要讲的是广义线性模型的定义和假设,为了看明白逻辑回归,大家要耐着性子看完。

1.The exponential family 指数分布族

因为广义线性模型是围绕指数分布族的,因此需要先介绍,用NG大神的话说就是,“虽然不是全部,但是我们见过的大多数分布都属于指数分布族,比如:Bernoulli伯努利分布、Gaussian高斯分布、multinomial多项分布、Poisson泊松分布、gamma分布、指数分布、Dirichlet分布……” 继续阅读斯坦福CS229机器学习课程笔记二:GLM广义线性模型与Logistic回归

斯坦福CS229机器学习课程笔记一:线性回归与梯度下降算法

应该是去年的这个时候,我开始接触机器学习的相关知识,当时的入门书籍是《数据挖掘导论》。囫囵吞枣般看完了各个知名的分类器:决策树、朴素贝叶斯、SVM、神经网络、随机森林等等;另外较为认真地复习了统计学,学习了线性回归,也得以通过orange、spss、R做一些分类预测工作。可是对外说自己是搞机器学习的还是不太自信,毕竟和科班出身的各位大牛相比自己对这些模型、算法的理解只能算是“知其然而不知其所以然”,用起来总感觉哪里不对劲。

因此,去年早早地就把网易公开课上Andrew大神的斯坦福CS229课程以及相应的讲义下载了下来,但每次一想学,看到每集1个多小时的内容就望而生却,感觉没有足够的整块的时间来学习。好在过年回家期间,实在没有其他借口不学了,于是才能有这篇学习笔记……截止今天下午,刚好学完了前四课,听Andrew Ng讲完了GLM广义线性模型的相关内容。真的是感觉相见恨晚。我要向所有看到本文的同学推荐这个课程(虽然是07年的)。

机器学习三要素

机器学习的三要素为:模型、策略、算法。
这些知识来自于李航写的《统计学习方法》。“外国的老师善于形象化地举例,中国的老师善于总结归纳”这句话还是很有道理的,适当的归纳有助于理清我们的思路,不知大家是否有和我类似的疑惑:“线性回归是模型还是算法?”,“SVM是模型还是算法?”接下来我会结合自己的思考,从模型、策略、算法的角度整理学习笔记。 继续阅读斯坦福CS229机器学习课程笔记一:线性回归与梯度下降算法

工作第二年(2014)小结

2013,给自己的评分是不及格;2014,总算是步入正轨。

1月,感谢老严

向老大提了不想做产品而想专心做数据的想法,非常幸运地被批准了。真的非常非常感谢老严,从此我得以开始拼命地学习。当然,一开始的时候是十分盲目的,比如这个月我从关联分析和聚类算法切入,开始研究数据挖掘。同时学习了一款叫orange的数据挖掘软件,就开始吭哧吭哧地结合业务数据想做出些成就了。结果当然挖掘出没什么意义的信息。

2月,尝到甜头

1月算是把数据挖掘中两个很难产出漂亮结果的两个坑给填了,2月开始研究了分类相关的算法。硬着头皮,半知半解地看完了决策树、朴素贝叶斯、人工神经网络、SVM和一些组合分类器(如:随机森林)给看了个遍。然后用了最简单的决策树做了一个游戏大户预测模型:利用用户进入游戏后前一周/前二周/前三周的表现,预测两个月后他的充值能否达到我们的大户标准。最终和业务人员深入沟通和自己仔细观察了数据特点后算了几个比较特别的feature,在测试集上用交叉验证准确率和召回率都能达到70%以上。对于一个自己鼓捣的菜鸟来说真是感觉美滋滋的,当然,我们公司的业务人员以及高层对数据和模型的认知不足,最后没能马上应用到游戏联运部门的日常工作中去。

对了,2月的前半个月我去了趟美帝,和金门大桥合影、逛了硅谷、在三藩市参加了一场hackthon、沿着1号公路从三藩市自驾到LA、在LA看了人生第一场NBA现场比赛(快船VS开拓者)。

3月,恶补统计学

虽然2月的研究小有成就,但很明显地感觉到自己欠债很多,半知半解地去用机器学习太危险了。再加上步子迈大了容易扯着蛋,业务人员比较容易接受的是“可解释”的研究成果。于是我开始恶补最基础的统计学,从最简单的描述性统计开始复习,一遍一遍地去理解区间估计和假设检验,接着看了著名的回归以及方差分析。同时,顺便也把SPSS给学习了一下,于是开始通过假设检验来更合理地对比我们电商部门的不同商品发布策略。 继续阅读工作第二年(2014)小结

2014知识补全计划

很幸运,我有一个开明的老大,跨年那天的抱怨文章转给他看之后便得到了尝试做纯数据工作的机会。

截止今天,看完了2本自认为很有用的入门读物《数据挖掘导论》《统计学》,学习了两个软件orange与spss,完成了三篇对公司业务情况的专题研究(游戏用户聚类;游戏大户预测;电商优惠信息发布策略),对了,年后还去了趟加州……

作为半路出家的data engineer,自然关注了一批奋战在一线的数据工作者。看完他们的博客,真的会对数据肃然起敬,知其然而不知其所以然的话,可能连自己都没法说服更不用说要让老板和业务方信服了。对自己和这些硕士博士的差距深感焦虑的同时,理所当然地,定下了14年的目标——补全基础知识: 继续阅读2014知识补全计划

工作第一年(2013)小结

2013,给自己的评分是不及格。

7月,好像玩得比工作多

入职第一周各种叙旧(3月份实习过一个多月),各种找状态,七月很快就结束了。这时我也大概得知了在公司的两个主要工作:数据分析平台DACE与比赛中心。

8月和DACE的“亲密”接触

DACE和比赛中心都算是大项目,不过DACE是探索性的数据产品且需要和公司各业务部门深度联系,而前辈对比赛中心的评价则是“只要不出错就好了”,因此我毫不犹豫地将精力全部投入了DACE。这个真是混乱而压力巨大的一个月:1.需要花大量的时间在与业务部门负责人的沟通上;2.当时嫌麻烦不想学axure直接用ps来画原型图没想到造成了更多的麻烦; 继续阅读工作第一年(2013)小结

做产品时的心境,一定会被用户看到

正式工作快要两个月了,博客也几乎停了两个月。之前计划的NBA数据挖掘系列与帝国时代编年史系列看起来一时半会是难以继续了。原因很简单:连周末都在填平时工作的坑,难得有空的时候宁愿看几集《银魂》。

既然说到银魂,那就以此说说最近感触最深的几点吧:

1.真羡慕空知猩猩啊(银魂的作者)。抱着随时可能被《JUMP》腰斩的心态,创作了一部极其“随意”、极其无节操、极其个人化的作品,获得了如此多的脑残粉。前面刚让你笑,马上就可以让你哭;即使只是吐槽生活中的琐事也能让人乐此不疲;没有什么事物是不能恶搞的……看似随意其实十分认真,我也想做出这样的产品阿鲁。

万事屋

2.美好的感受真的会长驻于心。 继续阅读做产品时的心境,一定会被用户看到

python+django+BeautifulSoup抓取nba数据并持久化

其实,激发起写博客冲动的是帝国时代2高清版的上市,最近在重温这款经典游戏使得我很想整理一下帝国里兵种相克关系与那些帝国的真实历史。不过,这个博客的初衷始终是技术博客,所以先压一压欲望,把之前欠的文章先发一发吧:

毕业论文我选择的主题是《基于数据挖掘的NBA球队建队方案研究》,期间我将basketballreference82games两个NBA数据网站的数据抓取到本地的数据库中进行研究;使用了scikit-learen库对球队数据进行基本的数据挖掘(聚类与分类);贯穿始末的则是django框架:model用于数据持久化,view用于操作数据,template用于展示结果(借助了google chart)。以上的工作都是基于python的,也可以看出python的强大了吧。接下来我会以一个系列的形式讲解整个过程是如何实现的,本文是系列的第一篇:数据抓取与持久化。 继续阅读python+django+BeautifulSoup抓取nba数据并持久化

开篇——python,nba 还有我的生活

筹划了很久的博客终于要开始了。

这里会是一个“杂”的地方:我会把平常写python的一些心得整理上来;会写一些基于数据挖掘的NBA球队建设或者球员交易方案;会写工作后的生活;甚至会写儿时最喜欢的帝国时代2兵种相克关系研究与各个帝国的真实历史。

我觉得杂没有什么不好的(这里借用一下about me中的图片)。现在越来越多的工作只有杂交才能胜任了,具备多种能力后能够完成少数人才能胜任的工作也是一种享受吧。

其实,作为一个python语言的簇拥 继续阅读开篇——python,nba 还有我的生活