教你如何在机器学习竞赛中更胜一筹medsci

作者:TeamMachineLearning,这是一个机器学习爱好者团队,他们热衷于建立一个有希望在数据科学/机器学习方面建立事业的有抱负的年轻毕业生和专业人士的环境。

机器学习很复杂。你可能会遇到一个令你无从下手的数据集,特别是当你处于机器学习的初期。

在这个博客中,你将学到一些基本的关于建立机器学习模型的技巧,大多数人都从中获得经验。这些技巧由MariosMichailidis(a.k.aKazanova),KaggleGrandmaster在2016年3月5日现在排名第3位的在线研讨会上共享的。在线研讨会有三个方面:

3.问答——本博客列出所有参与者在研讨会所问的问题。

成功的关键是坚持不懈。

1.你解决ML问题的步骤是什么?请从头描述。

以下是解决任何ML问题时我所采取的步骤:

1.了解数据——下载数据后,开始探索功能。查看数据类型。检查变量类。创建一些单变量-双变量图来了解变量的性质。

2.了解度量优化——每个问题都有独特的评估指标。你必须理解它,特别是它如何随着目标变量的变化而变化。

3.确定交叉验证策略——为避免过拟合,确定你在初期阶段已经设置了交叉验证策略。一个很好的CV策略将帮助你在排行榜上获得可靠的得分。

4.启动超参数调整——一旦CV在位,尝试使用超参数调整来提高模型的精度。它还包括以下步骤:

2.你解决问题时所采用的模型选择和数据处理技术是什么?

一般来说,我尝试(几乎)一切的大多数问题。原则上:

对于其他一切,我使用渐变增压机(如XGBoost和LightGBM)和深入学习(如keras、Lasagne、caffe、Cxxnet)。我决定使用特征选择技术来保留/删除元模型的模型。我使用的一些特征选择技术包括:

每个问题的数据操作可能不同:

3.你能详细说明交叉验证策略吗?

交叉验证意味着从我的主集中随机地创建了2个集。我用第一个集建立(训练)我的算法(让我们称之为训练集),并用另一个评分(让我们称之为验证集)。我重复此过程多次,并始终检查我的模型在测试集上对于我要优化的度量执行的方式。

过程可能如下所示:

4.你能解释一些用于交叉验证的技术吗?

5.你如何提高机器学习的技能?你使用什么训练策略?

我在2做了资料的汇总。加上很多自己的研究。同时,编程和软件(java)和很多kaggling。

6.哪些是数据科学家最有用的python库?

以下是一些我发现最有用的解决问题的库:

7.当所有的变量本质上是明确的时,什么是有用的ML技术/策略来估算缺失值或预测分类标签。

估算缺失值是关键的一步。有时你可能会发现缺失值的趋势。以下是我使用的一些技巧:

到目前为止,我大多数使用自制解决方案(Java)。我的第一场比赛必须汇总三千万行的交易数据,所以我不得不解析数据,而且需要将内存使用率降至最低。

不过,从那时起,我做了一些很好的投资,成为排名第一。现在,我可以访问linux服务器的32个内核和256GBM内存。我也有一个geforce670机器(用于深度学习/gpu任务)。此外,我现在主要使用Python。但是,如果你真的有兴趣获得最高的收益,你也可以考虑使用亚马逊的AWS,因为如果你使用它很多,成本可能会很高。

10.人们如何通过改变超参数调整建立大约80个模型?

11.如何提高Kaggle排名?

这不是一个一夜之间的事情。你只需要继续学习。以下是我的一些建议:

12.你能告诉我们有关机器学习中使用的一些有用的工具吗?

以下是我最喜欢的工具的列表:

13.如何从机器学习开始?

另外,你应该去上AndrewNg的机器学习课程。除此之外,你可以浏览一些好的博客,如mlwave,fastml,analyticsvidhya。但最好的办法是亲自动手。做一些kaggle!先解决有“知识”标志的比赛,,然后开始解决一些主要的问题。尝试解决一些过去的。

14.在Kaggle和一般的大数据集上哪些技术最好?如何解决内存问题?

具有高基数的大数据集可以通过线性模型得到很好的解决。考虑稀疏模型。像vowpalwabbit这样的工具。FTRL、libfm、libffm、liblinear是python中的优秀的工具矩阵(像csr矩阵)。考虑在数据的较小部分集成(如结合)模型的训练。

15.涉及机器学习的项目的SDLC(软件开发生命周期)是什么?

16.你最喜欢的机器学习算法是哪一种?

当然是梯度提升决策树。但在不同的任务中,所有可能都是好的。

17.哪种语言最适合深入学习,R或Python?

我更喜欢Python。我认为它更程序化。R也很好。

18.在数据科学中转行的人需要从技术技能中获得什么?因为我没有开发人员背景,个人项目是展示我的知识的最好方式吗?

将业务问题转化为机器学习的能力,并将其转化为可解决的问题。

19.你是否同意在一般特征中工程(探索和重组的预测)比改进预测模型在提高准确度上更有效?

原则上是。我认为模型的多样性比一些真正强大的模型要好。但这取决于问题。

20.是否需要Kaggle排行榜顶尖的技能,也是你作为数据科学家日常工作所需的技能?或者它们相交还是有些不同?我可以认为数据科学家的工作是基于Kaggle比赛吗?如果一个人在Kaggle上做得很好,那么她会在她的职业生涯中成为一名成功的数据科学家吗?

有一定比例的重叠,特别是在制作预测模型时,通过python/R处理数据并创建报告和可视化。Kaggle不提供(但你可以得到一些想法):

我认为在业界总是留有优秀的kagglers的空间。只是数据科学可以有许多可能的路线。例如,不是每个人都倾向于自己创业,或者是面对客户,而是解决非常特殊的(技术)任务。

21.哪些机器学习概念必须在Kaggle比赛中表现良好?.

22.你如何看待数据科学家工作的未来?自动化会扼杀这份工作吗?

23.如何在R和Python中使用整体建模来提高预测的准确性。请引用一些现实生活中的例子?

24.什么是最好的python深度学习库或文本分析框架?

我喜欢Keras(因为现在支持稀疏数据),Gensim(对于word2vec)。

25.在现实生活中,通过这些竞赛获得的知识有多大价值?我经常看到通过合并许多模型赢得的比赛…这是现实生活中的情况吗?还是在真实的制作系统中解释模型比这些庞大的组合更有价值?

26.我应该学习关于机器学习算法的核心,还是继续尝试形成对算法的理解并使用它们(在比赛中,并解决现实生活中的商业问题)?

你不需要核心。每天都有出现的新东西——有时很难跟踪它。这就是为什么你应该专注于任何算法的正确使用,而不是投资于一个。

27.哪些是不平衡数据的最佳机器学习技术?

我在这里不做特别的处理。这归功于优化正确的度量(对我来说)。用几句话来解释很难。有很多技术的抽样,但我从来没有使用过。有些人正在使用Smote。我认为试图更改目标变量的主分布是没有价值的。你只是最终得到增加或改变主要几率。如果你真的想要一个界限来决定你是否应该采取行动–你可以根据主要几率进行设置。

我可能不是最好的回答这个问题的人。我个人从来没有发现它(显著)有助于改变目标变量的分布或目标变量中的几率的感知。可能只是其他算法在处理这个任务时比其他算法更好(例如基于树的应用程序应该能够处理这个)。

28.通常,营销研究问题主要通过标准回归技术来处理–线性和逻辑回归,聚类,因子分析等。我的问题是机器学习和深度学习技巧/算法对营销研究或业务问题有用吗?例如,如何解释一个神经网络的输出到客户端是有用的?有什么资源可以参考吗?

它们在某种意义上是有用的,你可以很有可能提高准确度(在预测上我们说营销反应)与线性模型(如回归)。解释输出是很困难的,在我看来,这不是必要的,因为我们一般都会走向更多的黑盒子和复杂的解决方案。

作为数据科学家,你应该努力确保有一种方法来测试一些不可观察(测试)数据的结果有多好,而不是想了解为什么你得到的预测类型。我认为从复杂模型中解压缩信息是一个很好的话题(对研究有用),但是我不认为这是必要的。

29.如何在Kaggle建立合作团队?

30.我已经完成了基本的机器学习课程(理论)。现在我开始了我的实践历程。你刚刚推荐通过scikitlearn文档,现在人们都在说TENSORFLOW是下一个scikitlearn,所以我应该通过scikit还是TF是一个不错的选择?

我不同意这个“人们在说TENSORFLOW是下一个scikitlearn”的说法。Tensorflow是一个完成某些机器学习任务(如深入学习)的框架。我想你可以学习两者,但我会从scikit开始。我个人不知道TensorFlow,但是我使用的是基于张量流的工具(例如Keras)。

31.我在任何比赛中面临的主要挑战是清理数据,使其可用于预测模型。你如何克服呢?

32.如何在没有强大的机器的情况下计算大数据?

你应该考虑一些如vowpalwabbit和在线解决方案的工具,可以逐一解析所有内容。你需要在编程方面投入更多资源。

33.什么是特征工程?

简而言之,特征工程可以理解为:

34.哪些数学技能在机器学习中很重要?

一些基本概率以及线性代数(例如向量)。然后一些统计数据也有帮助。像平均值、频率、标准偏差等。

看一些代码和一些没有(只是一般的方法)。

37.你可以推荐一些知识竞赛吗,不一定在水平上竞争如kaggle但是可以为你的技能打基础?

38.你对于使用Weka或R和Python来学习机器学习有什么看法?

我喜欢Weka。它有一个很好的文档——特别是如果你想学习算法。不过我不得不承认,它不像R和Python的一些实现一样有效。它有很好的覆盖。Weka也有一些很好的可视化——特别是对于一些基于树的算法。我可能会建议你把重点放在R和Python,除非你的背景完全是使用Java。

THE END
1.算法竞赛学习指南(分阶段)算法竞赛进阶指南一定要有善于看题解的习惯,对于不会的题,一个最好的办法就是看题解,如果题解看不懂,可以换一篇。如果是知识点不知道,那就去查阅相关算法知识。 这一阶段我强烈建议购买算法竞赛的书籍,因为只有书籍可以带你系统地学习算法竞赛 推荐书籍 这本书是所有的书里面最好的(上交大acm教练写的),如果不想买太多,可以只https://blog.csdn.net/weixin_74229477/article/details/134594920
2.机器学习算法竞赛实战数据探索腾讯云开发者社区本文是《机器学习算法竞赛实战》的读书笔记2:在进行建模之前如何进行数据探索,了解数据的基本情况。通过系统的探索加深对数据的理解。 <!--MORE--> 数据探索 分析思路是什么 最好使用多种思路和方法来探索每个变量并比较结果。 分析方法有哪些 单变量可视化分析 多变量可视化分析 降维分析 明确分析目的 如果跳过数据探https://cloud.tencent.com/developer/article/2221606
3.编程竞赛宝典C++语言和算法入门编程竞赛的优胜者更是微软、谷歌、百度、Facebook等全球知名IT公司争相高薪招募的对象。因此,除了各类参加编程竞赛的选手外,很多不参加此类竞赛的研究工作者和从事IT行业的人士,也都希望能获得这方面的专业训练并从中得到一定的收获。 为什么要学习算法 经常有人说:“我不学算法也照样可以编程开发软件。”那么,为什么https://www.epubit.com/bookDetails?id=UB77a9ce8133887
4.ACM金牌学长,算法竞赛经验分享51CTO博客不少读者问我: 本科打算法竞赛,你如何训练的呀?有什么经验么? 于是小熊写一篇ACM算法竞赛入门和进阶指南,分享一下经验和学习方法。 也许你可能不参加算法竞赛,但知道厉害的人如何学习、训练、一步步变强,也是可以借鉴和学习的。 如果有一天你根据这个指南训练,拿了大厂offer、ACM奖牌,记得和小熊来说一声,哈哈。 https://blog.51cto.com/godweiyang/5516880
5.信息学竞赛全攻略3:信息学竞赛考什么说到底,在信息学竞赛中,语言本身只是为了解决算法问题而使用的工具,即使是我们钦点的C++,实际上我们能用到的语言特性也只是C++中的一部分(我们经常笑称我们学的实际上是C with STL)。所以我们需要学习C++语言,但是我们并不需要精通它(实际上也做不到)。因此学习算法竞赛的错误入门姿势是阅读砖头厚的《C++ Primer https://www.luogu.com.cn/blog/kkksc03/oi-descption3
6.机器学习高频面试题(41道)问题13:什么是深度学习,它与机器学习算法之间有什么联系? 深度学习是与神经网络有关的机器学习的一个子集:如何使用反向传播和神经科学中的某些原理来更精确地建模大量未标记或半结构化数据。从这个意义上说,深度学习是一种无监督的学习算法,它通过使用神经网络来学习数据的表示。 https://www.jianshu.com/p/2b375a770f6e
7.《2020科技趋势报告》:AI和中国,成为未来科技世界关键词程序员使用特殊的深度学习算法,同时使用大量的数据,通常是数兆字节的文本、图像、视频、语音等,系统被训练成独立学习。虽然概念上的深度学习并不是什么新鲜事,但最近发生的变化是计算量和可用的数据量。实际上,这意味着越来越多的人工过程将被自动化,包括软件的编写,计算机很快就会开始自己编写。 https://www.tmtpost.com/4274113.html
8.天池大数据竞赛天池大赛天池大数据竞赛,是由阿里巴巴集团主办,面向全球科研工作者的高端算法竞赛。通过开放海量数据和分布式计算资源,大赛让所有参与者有机会运用其设计的算法解决各类社会问题或业务问题。欢迎来大家来天池参与天池大数据竞赛,进行真实业务场景演练,参与天池大赛还有机会获得百万https://tianchi.aliyun.com/competition/introduction.htm
9.清华大学出版社图书详情本书是算法竞赛的入门和进阶教材,包括算法思路、模板代码、知识体系、赛事相关等内容。本书把竞赛常用的知识点和竞赛题结合起来,讲解清晰、透彻,帮助初学者建立自信心,快速从实际问题入手,模仿经典代码解决问题,进入中级学习阶段。全书分为12章,覆盖了目前算法竞赛中的主要内容,包括算法竞赛概述、算法复杂度、STL和基本http://www.tup.tsinghua.edu.cn/booksCenter/book_08163901.html
10.刘汝佳的《算法竞赛入门经典》该怎么学?根据实际情况选择学习顺序,至少把每一章的前几节掌握,最好把例题重新做一遍,习题要看,要有思路,选择几题打成代码。(时间充裕的话可以全写),可以再买本训练指南,这两本书的主要内容掌握了,noip提高组就基本没问题了。介绍:《算法竞赛入门经典(第2版)》是一本算法竞赛的入门与提高教材,把chttps://zhidao.baidu.com/question/1890565253338062908.html
11.《阿里云天池大赛赛题解析——机器学习篇(算法竞赛之利器)》(天池当当网图书频道在线销售正版《阿里云天池大赛赛题解析——机器学习篇(算法竞赛之利器)》,作者:天池平台,出版社:电子工业出版社。最新《阿里云天池大赛赛题解析——机器学习篇(算法竞赛之利器)》简介、书评、试读、价格、图片等相关信息,尽在DangDang.com,网购《阿http://product.dangdang.com/29115965.html
12.算法竞赛简介编程语言:使用 C/C++/Pascal 语言。因为是算法竞赛,所以不需要学习类和类库的用法。 编程要求:每道题会有题目要求、输入输出格式和范例。你需要根据题目要求编程,严格按要求从文件中读取数据,进行处理,并严格按照要求输出答案。你需要按照要求将程序代码保存到电脑的指定路径。 https://upclinux.github.io/intro/04/acm/
13.信息学奥赛(NOIP)必看经典书目汇总!刘汝佳著,《算法竞赛入门经典》的重要补充 提高篇 1、《算法导论》(推荐指数:5颗星) 这是OI学习的必备教材。 2、《算法艺术与信息学竞赛》(推荐指数:5颗星) 刘汝佳著,传说中的黑书。 3、《学习指导》(推荐指数:5颗星) 刘汝佳著,《算法艺术与信息学竞赛》的辅导书。(PS:仅可在网上搜到,格式为PDF)。 https://www.zizzs.com/c/201512/11049.html
14.GitHub全新排版修订的《算法竞赛进阶指南》已经上线啦,请大家认准大象出版社和新的封面,出版社的官方网店是:https://item.jd.com/10067239761146.html 视频课 Videos 本书官方的视频教材正在陆续上线,大家可以前往 AcWing 学习。 0x50 动态规划(20 小时): https://www.acwing.com/activity/content/35/ 0x60 图论(30 https://github.com/lydrainbowcat/tedukuri
15.编程竞赛宝典:C++语言和算法入门.pdf张新华2021年版编程竞赛宝典:C++语言和算法入门.pdf-张新华 -2021年版-人民邮电出版社,编程类竞赛活动受各级各类学校重视,受青少年学生欢迎。本书以Dev-C++为C++语言的开发环境,首先带领读者入门C++语言,然后循序渐进、由浅入深地讲解C++语言的基本结构、数组、函数、指针、结构体、https://max.book118.com/html/2021/1129/7064142166004053.shtm
16.信息学奥赛几岁开始学比较好?一般来说,参加竞赛都必须做一个一年至三年的计划。以信息学奥赛来说,至少要 10 个月的时间才能保证参赛能力,如果要参加省选、国赛等高级别的赛事,需要更长的学习时间。 这些时间一般用来上课、刷题、消化课程内容,用几个月时间拿到一等奖也是有很多的,那么如何快速入门信息学参加奥赛呢? https://www.youkee.com/wenda/15055.html