讲个找数据科学工作的捷径 aka 刷Kaggle题迅速入门data scient (转载)# DataSciences - 数据科学
c*z
1 楼
【 以下文字转载自 JobHunting 讨论区 】
发信人: phunter (程式猎人:LA摸机会资深成员), 信区: JobHunting
标 题: 讲个找数据科学工作的捷径 aka 刷Kaggle题迅速入门data scient
发信站: BBS 未名空间站 (Mon Apr 27 18:26:38 2015, 美东)
贡献一个我之前写的贴,刷Kaggle的题是快速成为data scientist的捷径之一,这和什
么山寨leetcode不一样,那个刷200题对实际工作毫无帮助(对面试也几乎无帮助),
刷Kaggle只要刷一俩题,差不多花三个月的业余时间,智力正常的理工科大学毕业生都
能对data science这个东西有个初步但是全面的了解,在数据清理,数据操作,建立模
型,评价模型和结果这些方面都有实际深入的了解,不会再出现“面试官问overfit了
怎么办,我说了Cross Validation,面试官看起来不高兴”然后下面回帖帮楼主的都是
不知所云楼主看了也是云里雾里这样的惨剧。你要是学好了就会发现,其实那个面试官
自己也不太懂就知道个概念才会问那个的问题,照着这个教程来,分分钟和面试官对L1
和L2 regularization 对稀疏feature的表现谈笑风生,如果搞的深入点把深度学习顺
道也会了,说个“其实dropout也是regularization什么什么的”,保证面试官立刻给
你跪舔,再也不敢上来卖弄概念自寻羞辱。
看我辛苦写这么多教学的份上,请允许我宣传一下我们的白宫投票
http://wh.gov/iZAhc
现在老印每个人提交个三四份H1b霸占了签证市场,搞的老中的工作机会都没了。我们
老中辛苦读书,刷题,准备面试,好不容易过五关斩六将得到个offer还要被老印这样
抢H1b,这真的很让人伤心。不管今年抽不抽H1b,抽没抽中,都请到这个投票链接注册
投票(并在email里确认投票),为了同胞能有平等的工作机会不被老印欺负,请投票
。如果想知道老印ICC的恶行以及对我们的危害,请到
http://stoph1bvisafraud.org/
下面是从我的blog转载的 http://phunters.lofter.com/post/86d56_66dd375 正文这里开始:
怎样快糙猛的开始搞Kaggle比赛
本文写给想开始搞Kaggle比赛又害怕无从下手的小朋友们。
最近比较多人问我怎么快速成为数据科学家可以挣钱多干活少整天猎头追跳槽涨一倍。
我一般的答案是,没有这好事,但是搞搞Kaggle的比赛有助于快速成为数据科学家,之
后挣钱多少看个人。关于Kaggle比赛是什么,限于篇幅关系,请自行谷歌。
我不是专业机器学习的人,但是我见的太多了。对于有一定数理基础的人来说,快速起
步搞起来个Kaggle比赛并且获得不错的名次,难度并非难于成为王思聪的官方老婆。这
里有三个部分的知识需要强化:
1. 数理基础。基本上高考数学不错的理工科学生,学过了大一大二的数学基础课程(
包括微积分、数理统计、数理方程、集合论等),不存在任何问题。如果想测试一下自
己,那就看看这个题目:
如果一个妹子喜欢我可能因为我帅或者我有钱,因为我既帅又有钱的概率是0.1,只是
因为我有钱的概率是0.5,问,如果妹子喜欢我只是因为我就是帅的概率是多少?
如果能不费力气(心算更好)的解答这个问题,基本上这部分知识是足够了。
2. 机器学习。Kaggle比赛多依靠机器来自动处理,机器学习几乎是必须要的技能。开
始搞Kaggle需要的机器学习技能并不深入,只是需要对于机器学习的常见几个方法有基
本了解即可,比如说对于一个问题,你可以认识到它是个classification的问题啊还是
regression的问题啊,为什么机器可以根据你输入的一个矩阵来算出来分类结果啊。推
荐Coursera上Andrew Ng的机器学习课程 https://www.coursera.org/course/ml 一个
捷径就是,如果你时间紧的话,只要知道什么叫做Supervised learning并且会自己实
现一个Logistic Regression,差不多就够了。
顺便,scikit learn有个极快速的入门,请自行前往观看(请不要私信问我作业面试题之
类的,作业和面试题都要自己写啊,我只能婉拒)
http://scikit-learn.org/stable/tutorial/statistical_inference/s
3. Coding。限于篇幅只介绍Python。我可没有说什么钦定Python,你问我支持不支持
,我用python我当然支持。基本的python编程得熟练,如果不熟练可以先学习 Learn
Python the Hard Way。会了python之后,把scikit-learn的基本教程的
classification的部分练练,你会发现在Andrew Ng课上学的知识,在python里面实际
跑跑简单数据,能对课上的知识深刻的理解。同时,如果有富余时间的话,可以顺道看
看numpy和pandas的一些基础操作,这些是用来数据处理好工具。
上面三点对一个数理基础不错的人来说,差不多几周的空余时间就可以了,如果是在校
学生可能更快。
开始搞Kaggle的时候,建议选个入门容易的比赛。如何选择,简单来说就选个参赛人多
的就好了,基本上认真搞搞结果还不会差呢。如果一个比赛还有自带Tutorial 就更好
了。比如我们可以选泰坦尼克号的比赛,根据乘客的信息来判断他是不是可能在沉船中
遇难。地址是 https://www.kaggle.com/c/titanic-gettingStarted
这个比赛有个很好的tutorial,第一次参加比赛的,可以在比赛过程里遇到但是不限于
如下的问题:
1. 数据怎么读取
2. 有missing value怎么办
3. 一等舱二等舱之类的feature为什么得当作categorial feature
4. 。。。。
等等等等之类的问题。这些问题都是在数据科学领域的实际工作每天都能遇到的。最好
的学习方法就是针对这个问题,你看Discuss Forum和Tutorial里面教你怎么解决,自
己google一下看别人写好的代码怎么解决这些问题。这阶段我建议靠自己的力量搜索答
案而不是去论坛上问一些伸手党类的SB问题,即使问了也没关系有人会替你解答的但是
这不是慢嘛。
然后你会开始训练你的模型,又会遇到但是不限于以下的问题
1. 啥叫random forest,咋用,为什么我调了这几个参数不灵呢
2. 怎么我本地结果很好,但是提交名次掉成狗
3. 原来我要Cross Validation啊(Andrew Ng的课里说到的那些看起来很无聊的曲线现
在知道是为什么了吧)
4. 。。。。。。
等等之类的。这些问题也是实际工作每天都能遇到的。你就看人家怎么调你就跟着模仿
,然后体会思考一下不同调法对结果有什么区别。这比在@七月问答 上面问“如果某某
情况我的随机森林的参数该怎么调才能避免这个情况”之类,对问题领悟的更深刻。折
磨过几波模型调参,你就差不多知道这些模型的套路是什么了。
然后你开始刷名次,又会遇到但是不限于以下的问题:
1. 怎么CV的结果挺好但是上去还是比不过呢
2. 那谁说用Vowel Wabbit对每个分类做优化怎么搞啊
3. 组合模型这概念我知道,但是实际怎么组合呢
4. 。。。。。。
经过这些,你差不多就知道解决一个实际的机器学习问题需要做什么事情了。对的,这
就是数据科学家几乎每天的工作,各部分比重不一样,但是理解问题、数据清理、模型
调参、评估结果这些循环反复的动作,基本上就是数据科学家需要做的。
在这个摸索挨打的过程中,你可以快速学会数据科学的常用工具(numpy scipy pandas
scikit等等),也会在别人的带动下发现新工具(比如@陈天奇怪 的xgboost,vowpal
wabbit之类的),也会学会新技能(比如深度学习以及如何用深度学习去解决实际的
问题)。这个学习速度远超过于看书看blog,在挨打的过程里,回想一下从可可老师那
里看到的每天十条数据科学经验,会不会觉得理解的更深入了呢?
在有实际工业界工作经验之前,搞搞Kaggle比赛几乎是最有效的跨过”数据科学家“门
槛的方法。有了实际工作经验,搞搞Kaggle比赛也能扩大视野,也能把前沿研究的第一
手结果用到实际问题里。大家加油,跳槽就翻倍的高薪工作指日可待(我没有保证能高
薪啊,不要到时候把我拉出来批判一番)
最后插入广告,欢迎组队 https://www.kaggle.com/users/110702/phunter 你看我搞
的很凑合但是排名还行啊对吧。
发信人: phunter (程式猎人:LA摸机会资深成员), 信区: JobHunting
标 题: 讲个找数据科学工作的捷径 aka 刷Kaggle题迅速入门data scient
发信站: BBS 未名空间站 (Mon Apr 27 18:26:38 2015, 美东)
贡献一个我之前写的贴,刷Kaggle的题是快速成为data scientist的捷径之一,这和什
么山寨leetcode不一样,那个刷200题对实际工作毫无帮助(对面试也几乎无帮助),
刷Kaggle只要刷一俩题,差不多花三个月的业余时间,智力正常的理工科大学毕业生都
能对data science这个东西有个初步但是全面的了解,在数据清理,数据操作,建立模
型,评价模型和结果这些方面都有实际深入的了解,不会再出现“面试官问overfit了
怎么办,我说了Cross Validation,面试官看起来不高兴”然后下面回帖帮楼主的都是
不知所云楼主看了也是云里雾里这样的惨剧。你要是学好了就会发现,其实那个面试官
自己也不太懂就知道个概念才会问那个的问题,照着这个教程来,分分钟和面试官对L1
和L2 regularization 对稀疏feature的表现谈笑风生,如果搞的深入点把深度学习顺
道也会了,说个“其实dropout也是regularization什么什么的”,保证面试官立刻给
你跪舔,再也不敢上来卖弄概念自寻羞辱。
看我辛苦写这么多教学的份上,请允许我宣传一下我们的白宫投票
http://wh.gov/iZAhc
现在老印每个人提交个三四份H1b霸占了签证市场,搞的老中的工作机会都没了。我们
老中辛苦读书,刷题,准备面试,好不容易过五关斩六将得到个offer还要被老印这样
抢H1b,这真的很让人伤心。不管今年抽不抽H1b,抽没抽中,都请到这个投票链接注册
投票(并在email里确认投票),为了同胞能有平等的工作机会不被老印欺负,请投票
。如果想知道老印ICC的恶行以及对我们的危害,请到
http://stoph1bvisafraud.org/
下面是从我的blog转载的 http://phunters.lofter.com/post/86d56_66dd375 正文这里开始:
怎样快糙猛的开始搞Kaggle比赛
本文写给想开始搞Kaggle比赛又害怕无从下手的小朋友们。
最近比较多人问我怎么快速成为数据科学家可以挣钱多干活少整天猎头追跳槽涨一倍。
我一般的答案是,没有这好事,但是搞搞Kaggle的比赛有助于快速成为数据科学家,之
后挣钱多少看个人。关于Kaggle比赛是什么,限于篇幅关系,请自行谷歌。
我不是专业机器学习的人,但是我见的太多了。对于有一定数理基础的人来说,快速起
步搞起来个Kaggle比赛并且获得不错的名次,难度并非难于成为王思聪的官方老婆。这
里有三个部分的知识需要强化:
1. 数理基础。基本上高考数学不错的理工科学生,学过了大一大二的数学基础课程(
包括微积分、数理统计、数理方程、集合论等),不存在任何问题。如果想测试一下自
己,那就看看这个题目:
如果一个妹子喜欢我可能因为我帅或者我有钱,因为我既帅又有钱的概率是0.1,只是
因为我有钱的概率是0.5,问,如果妹子喜欢我只是因为我就是帅的概率是多少?
如果能不费力气(心算更好)的解答这个问题,基本上这部分知识是足够了。
2. 机器学习。Kaggle比赛多依靠机器来自动处理,机器学习几乎是必须要的技能。开
始搞Kaggle需要的机器学习技能并不深入,只是需要对于机器学习的常见几个方法有基
本了解即可,比如说对于一个问题,你可以认识到它是个classification的问题啊还是
regression的问题啊,为什么机器可以根据你输入的一个矩阵来算出来分类结果啊。推
荐Coursera上Andrew Ng的机器学习课程 https://www.coursera.org/course/ml 一个
捷径就是,如果你时间紧的话,只要知道什么叫做Supervised learning并且会自己实
现一个Logistic Regression,差不多就够了。
顺便,scikit learn有个极快速的入门,请自行前往观看(请不要私信问我作业面试题之
类的,作业和面试题都要自己写啊,我只能婉拒)
http://scikit-learn.org/stable/tutorial/statistical_inference/s
3. Coding。限于篇幅只介绍Python。我可没有说什么钦定Python,你问我支持不支持
,我用python我当然支持。基本的python编程得熟练,如果不熟练可以先学习 Learn
Python the Hard Way。会了python之后,把scikit-learn的基本教程的
classification的部分练练,你会发现在Andrew Ng课上学的知识,在python里面实际
跑跑简单数据,能对课上的知识深刻的理解。同时,如果有富余时间的话,可以顺道看
看numpy和pandas的一些基础操作,这些是用来数据处理好工具。
上面三点对一个数理基础不错的人来说,差不多几周的空余时间就可以了,如果是在校
学生可能更快。
开始搞Kaggle的时候,建议选个入门容易的比赛。如何选择,简单来说就选个参赛人多
的就好了,基本上认真搞搞结果还不会差呢。如果一个比赛还有自带Tutorial 就更好
了。比如我们可以选泰坦尼克号的比赛,根据乘客的信息来判断他是不是可能在沉船中
遇难。地址是 https://www.kaggle.com/c/titanic-gettingStarted
这个比赛有个很好的tutorial,第一次参加比赛的,可以在比赛过程里遇到但是不限于
如下的问题:
1. 数据怎么读取
2. 有missing value怎么办
3. 一等舱二等舱之类的feature为什么得当作categorial feature
4. 。。。。
等等等等之类的问题。这些问题都是在数据科学领域的实际工作每天都能遇到的。最好
的学习方法就是针对这个问题,你看Discuss Forum和Tutorial里面教你怎么解决,自
己google一下看别人写好的代码怎么解决这些问题。这阶段我建议靠自己的力量搜索答
案而不是去论坛上问一些伸手党类的SB问题,即使问了也没关系有人会替你解答的但是
这不是慢嘛。
然后你会开始训练你的模型,又会遇到但是不限于以下的问题
1. 啥叫random forest,咋用,为什么我调了这几个参数不灵呢
2. 怎么我本地结果很好,但是提交名次掉成狗
3. 原来我要Cross Validation啊(Andrew Ng的课里说到的那些看起来很无聊的曲线现
在知道是为什么了吧)
4. 。。。。。。
等等之类的。这些问题也是实际工作每天都能遇到的。你就看人家怎么调你就跟着模仿
,然后体会思考一下不同调法对结果有什么区别。这比在@七月问答 上面问“如果某某
情况我的随机森林的参数该怎么调才能避免这个情况”之类,对问题领悟的更深刻。折
磨过几波模型调参,你就差不多知道这些模型的套路是什么了。
然后你开始刷名次,又会遇到但是不限于以下的问题:
1. 怎么CV的结果挺好但是上去还是比不过呢
2. 那谁说用Vowel Wabbit对每个分类做优化怎么搞啊
3. 组合模型这概念我知道,但是实际怎么组合呢
4. 。。。。。。
经过这些,你差不多就知道解决一个实际的机器学习问题需要做什么事情了。对的,这
就是数据科学家几乎每天的工作,各部分比重不一样,但是理解问题、数据清理、模型
调参、评估结果这些循环反复的动作,基本上就是数据科学家需要做的。
在这个摸索挨打的过程中,你可以快速学会数据科学的常用工具(numpy scipy pandas
scikit等等),也会在别人的带动下发现新工具(比如@陈天奇怪 的xgboost,vowpal
wabbit之类的),也会学会新技能(比如深度学习以及如何用深度学习去解决实际的
问题)。这个学习速度远超过于看书看blog,在挨打的过程里,回想一下从可可老师那
里看到的每天十条数据科学经验,会不会觉得理解的更深入了呢?
在有实际工业界工作经验之前,搞搞Kaggle比赛几乎是最有效的跨过”数据科学家“门
槛的方法。有了实际工作经验,搞搞Kaggle比赛也能扩大视野,也能把前沿研究的第一
手结果用到实际问题里。大家加油,跳槽就翻倍的高薪工作指日可待(我没有保证能高
薪啊,不要到时候把我拉出来批判一番)
最后插入广告,欢迎组队 https://www.kaggle.com/users/110702/phunter 你看我搞
的很凑合但是排名还行啊对吧。