台大《机器学习基石》课程感受和总结---Part 2 (转)
转自:http://blog.sina.com.cn/s/blog_641289eb0101e2ld.html
Part 2总结一下一个粗略的建模过程:
- 首先,弄清楚问题是什么,能不能用机器学习的思路去考虑:
- 是否有pattern?
- 是否规则不明确?
- 是否有数据?
- 如果可以用,那么考虑,问题的学习目标是什么,有多少feature,有多少数据,应该用什么error measure(Learning from data 有一节专门讲这个,客户能提供吗?如果不能,我们找一个能说服自己的,或者找一个容易做的。具体参考课件)
- 数据和feature之间的关系,practical来说是N大于等于10倍的自由度。
- 这个error measure或者说performance measure是否有个baseline我们可以比较呢?
- 选定算法,从简单的到复杂的都要考虑:
- 一般来说,如果有足够多的数据,简答的算法不一定比复杂的差。
- 要考虑用户的需求,是否需要最后的模型能够被人理解,还是说一个黑盒子就可以了。
- 分割数据为Training和Testing (这一点一定要在做任何数据处理前完成!处理,只应该在train上做,确定方案后在运用到test上去)
- 对train数据进行清理,分析什么的(重要Update: 这里的数据清理和分析必须是和数据中的class variable没有任何联系!如果有任何联系,都请放到Single Validation或者Cross validation里面去做!一个经常出现的错误就是在这一步进行特征选择,然后在选择完成后的数据集上进行Cross Validation,这样做通常会得到over-optimistic的结果。具体文献可以参考Statistical Learning里面的Cross Validation那一个小节)。
- 在Training上进行建模学习:
- 我们有很多Model可以选择,而一个Model下面又可以有很多参数可以调试,或者feature可以选择。这就需要我们通过Single Validation或者Cross Validation来看看这些Model在不同的参数下表现如何。
- 这样,我们从一个Model中选出其中Eval最好的那个组合,作为该模型的代表h。
- 对于另一个模型,重复第二步,直到全部模型都考虑了。
- 对比所有的这些代表,找出其中Ecv最好的那个h对应的Model M。
- 用所有的训练数据(Model Selection by Best Eval--Learning from Data),用M和它的最优参数训练一得到一个g*,最为最终的选择,同时我们做一下实验得到g*的training error--Etraiin。
- 在Testing上用g*进行测试。完成以后和baseline进行比较。如果好过baseline,那OK。继续试试更多算法看能不能提高。如果低于Baseline,那要进行以下考虑:
- 如果Etesting >> Etrain, 那么我们遇到了overfitting,那么我们可能需要:
- 更多的训练数据
- 或者更小的feature set
- 反之,如果Etesting于Etrain差别不大,那么我们遇到了underfitting,那么我们可能需要更多的feature(获取更多,或者在现有的基础上创建新的,比如polynomial features)
- 如果Etesting >> Etrain, 那么我们遇到了overfitting,那么我们可能需要:
- 调整后,重新建模,直到满足条件为止。
台大《机器学习基石》课程感受和总结---Part 2 (转)的更多相关文章
- Coursera台大机器学习基础课程学习笔记1 -- 机器学习定义及PLA算法
最近在跟台大的这个课程,觉得不错,想把学习笔记发出来跟大家分享下,有错误希望大家指正. 一机器学习是什么? 感觉和 Tom M. Mitchell的定义几乎一致, A computer program ...
- Coursera台大机器学习基础课程学习笔记2 -- 机器学习的分类
总体思路: 各种类型的机器学习分类 按照输出空间类型分Y 按照数据标记类型分yn 按照不同目标函数类型分f 按照不同的输入空间类型分X 按照输出空间类型Y,可以分为二元分类,多元分类,回归分析以及结构 ...
- Coursera台大机器学习基础课程1
Coursera台大机器学习基础课程学习笔记 -- 1 最近在跟台大的这个课程,觉得不错,想把学习笔记发出来跟大家分享下,有错误希望大家指正. 一 机器学习是什么? 感觉和 Tom M. Mitche ...
- Coursera台大机器学习技法课程笔记01-linear hard SVM
极其淡腾的一学期终于过去了,暑假打算学下台大的这门机器学习技法. 第一课是对SVM的介绍,虽然之前也学过,但听了一次感觉还是很有收获的.这位博主总结了个大概,具体细节还是 要听课:http://www ...
- Coursera台大机器学习技法课程笔记14-Radial Basis Function Network
将Radial Basis Function与Network相结合.实际上衡量两个点的相似性:距离越近,值越大. 将神经元换为与距离有关的函数,就是RBF Network: 可以用kernel和RBF ...
- Coursera台大机器学习技法课程笔记03-Kernel Support Vector Machine
这一节讲的是核化的SVM,Andrew Ng的那篇讲义也讲过,讲的也不错. 首先讲的是kernel trick,为了简化将低维特征映射高维特征后的计算,使用了核技巧.讲义中还讲了核函数的判定,即什么样 ...
- Coursera台大机器学习技法课程笔记11-Gradient Boosted Decision Tree
将Adaboost和decision tree相结合,需要注意的地主是,训练时adaboost需要改变资料的权重,如何将有权重的资 料和decision tree相结合呢?方法很类似于前面讲过的bag ...
- Coursera台大机器学习技法课程笔记10-Random forest
随机森林就是要将这我们之前学的两个算法进行结合:bagging能减少variance(通过g们投票),而decision tree的variance很大,资料不同,生成的树也不同. 为了得到不同的g, ...
- Coursera台大机器学习技法课程笔记04-Soft-Margin Support Vector Machine
之前的SVM非常的hard,要求每个点都要被正确的划分,这就有可能overfit,为此引入了Soft SVM,即允许存在被错分的点,将犯的错放在目 标函数中进行优化,非常类似于正则化. 将Soft S ...
- Coursera台大机器学习技法课程笔记02-Dual Support Vector Machine
这节课讲的是SVM的对偶问题,比较精彩的部分:为何要使用拉格朗日乘子以及如何进行对偶变换. 参考:http://www.cnblogs.com/bourneli/p/4199990.html http ...
随机推荐
- angularJS中-$route路由-$http(ajax)的使用
后台请求使用的是nodeJS驱动(后面帖代码),很简单的RESTFUL, 页面使用的是bottstarp3.0(懒人神器); 第一个例子: 在本地架设NODEJS, angular的所有请求都是请求本 ...
- oracle 简述
1.数据库有很多的管理工具,Sqlplus是最好的管理工具. 2.sql语句是学习中最难的部分,如何编写出高效的sql 语句是我们的目标 3.oracle的日常最终要的工作就是备份,永远是备份,有数据 ...
- CSS3中的counter和content属性,一些简单的内容显示就不需要JS去实现了
HTML的代码 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www ...
- jquery操作滚动条滚动到指定位置
<html><head><script type="text/javascript" src="/jquery/jquery.js" ...
- Python装饰器笔记
DRY(Don't Repeat Yourself)原则: 一般是指在写代码的时候尽量避免重复的实现.违反DRY原则导致的坏处很容易理解,例如维护困难,修改时一旦遗漏就会产生不易察觉的问题. 一.函数 ...
- insert 多个values
INSERT INTO `user_mail_attach` VALUES(, , , , , ), (, , , , , ); 这种比写多条insert语句效率高
- 弱键(Weak Key, ACM/ICPC Seoul 2004, UVa1618)
I think: 给出k(4≤k≤5000)个互不相同的整数组成的序列Ni,判断是否存在4个整数Np.Nq.Nr和Ns(1≤p<q<r<s≤k),使得Nq>Ns>Np&g ...
- 模拟创建类变量,static变量加类方法,单例
@interface Model + (int) value; + (void) setValue:(int)val; @end @implementation Model static int va ...
- WinsockExpert+NC抓包上传之拿WEBSHELL
知识补充: nc上传漏洞在原理上同动网上传漏洞一样,都是利用计算机在读取字符串时,遇到'\0'(00)时,认为字符串结束了,从而丢掉后面的字符串,正如unicode编码特性一样,可被人利用,尽管在这里 ...
- Database Password Hashes
SQL Server 2000:- SELECT password from master.dbo.sysxlogins where name=’sa’ 0×010034767D5C0CFA5FDCA ...