Kaggle比赛:从何着手?

介绍

参加Kaggle比赛,我必须有哪些技能呢?

你有没有面对过这样的问题?最少在我大二的时候,我有过。过去我仅仅想象Kaggle比赛的困难度,我就感觉害怕。这种恐惧跟我怕水的感觉相似。怕水,让我无法参加一些游泳课程。然而,后来,我得到的教训是只要你不真的跨进水里,你就不知道水有多深。相同的哲学对Kaggle也一样适用。没有试过之前不要下结论。

Kaggle,数据科学的家园,为竞赛参与者,客户解决方案和招聘求职提供了一个全球性的平台。这是Kaggle的特殊吸引力,它提供的竞赛不仅让你站到不同的高度思考问题,还提供了可观的奖金。

然而,人们总是犹豫到底要不要参加竞赛。其中有以下几个原因:

1.他们小看了自己的技能,知识和掌握的技术的水平。

2.不管自己一连串技能的水平如何,他们都选择奖金最高的问题。

3.在问题的困难度水平上,他们没有充分发挥出自己的技能水平。

我估计,这个问题可能要归咎于Kaggle自身。Kaggle.com没有提供任何信息来帮助人们选择哪些是对于他们自身技能水平而言是最适合的比赛。结果就是对于新手或者中间水平的人来说,选择一个适合自己的问题来开始成为一个艰苦的工作。

你能从这篇文章中学到什么?

本文中,我们会解开根据自身技能,工具和技术组合来选择合适的Kaggle问题的死锁状态。这里我们会详细说明每个kaggle问题的困难度,以及要解决这些问题需要的技能水平。

在后面的部分,我们针对下面的一些情况,定义了正确的方法来选择kaggle问题:

Case 1:我有编程背景,但是是机器学习的初学者。

Case 2:我在数据分析行业以及有两年以上经营,但是不擅长R或者python。

Case 3:我擅长编码和机器学习,需要找一下有挑战的工作。

Case 4:我对于机器学习和编程语言都是新手,但是我想学。

Kaggle问题列表

1.泰坦尼克:机器从灾难中学习

目标:一个开始你的机器学习之旅的经典流行问题。给你一套在船上的乘客属性,让你来预测在船沉没后谁会生存下来。

困难度:

◆ 机器学习技巧:容易

◆ 编程技巧:容易

◆ 专业知识要求:容易

◆ 可用教程:完善

2.Julia初步

目标:这是一个用即将推出的工具Julia来识别谷歌街景图片中的人物的问题。

困难度:

◆ 机器学习技能:容易

◆ 编程技能:中

◆ 专业知识要求:容易

◆ 可用教程:完善

3.数字识别

目标:给你的是一个手写数字的像素数据(图片),你需要判断这是哪个数字。这是隐马尔可夫模型的经典问题。

各种属性的困难度:

◆ 机器学习技能:中

◆ 编程技能:中

◆ 专业知识需求:容易

◆ 可用教程:有但不是手把手教学

4.当词袋遇上爆米花袋

目标:给你一组影评,你需要在这些叙述中找出其中潜在的情感(情感分析问题)。这个问题的目标是向你介绍谷歌软件包——Word2Vec。

这是一个令人惊异的软件包,能帮助你将单词转换到有限维空间。用这种方法我们可以仅关注向量就能在词与词之间建立相似性。一个非常简单的例子就是你的算法可以找出相似性如:King – Male + Female结果是Queen。

困难度:

◆ 机器学习技能:难

◆ 编程技能:中

◆ 专业知识要求:容易

◆ 可用教程:有但是不是手把手教学

5.脏文件去噪声

目标:你可能知道一种技术叫OCR。这种技术简而言之就是将手写文档转换成电子文档。然而,这个技术并不完美。这里你的工作就是用机器学习方法让它的结果完美起来。

困难度:

◆ 机器学习技能:难

◆ 编程技能:难

◆ 专业知识要求:难

◆ 可用教程:无

6.旧金山犯罪分类

目标:预测发生在湾区的犯罪的分类类型。

困难度:

◆ 机器学习技能:极难

◆ 编程技能:极难

◆ 专业知识要求:难

◆ 可用教程:无

7.出租车轨迹预测:时间/地点

目标:在同一个数据集上有两个问题。给你一个出租车的控制器,让你来预测出租车将要去哪或者完成一个旅程出租车要花费多少时间。

困难度:

◆ 机器学习技能:容易

◆ 编程技能:难

◆ 专业知识要求:中

◆ 可用教程:有一些可作为比较标准的代码(benchmark code)。

6.Facebook招聘——人还是机器人

目标:如果你有意愿要了解一个新的领域,你必须解决这个问题。给你一些投标数据,期望你能区分投标人到底是人还是机器人。这是当时Kaggle比赛中可以获得数据最丰富的一个数据集。

困难度:

◆ 机器学习技能:中

◆ 编程技能:中

◆ 专业知识要求:中

◆ 可用教程:因为是一个招聘竞赛,没有任何可资利用的支持。

注意:上述说明中没有涵盖提供了奖金的Kaggle竞赛,因为那些竞赛都跟某个领域密切相关。

我们来看看不同的人,拥有不同技术组合,处在人生的不同阶段如何正确选择一个适合自己的方式来开始Kaggle之旅。

Case 1:我有编程背景,但是是机器学习的初学者。

◆ 第一步:你应该参与第一个Kaggle题目是⑦出租车轨迹预测。原因是,这个问题有一个复杂的数据集,包括JSON格式,其中一列揭示出租车已经访问过的一系列坐标。如果你能解析这个信息,那么在目标目的地或时间上获得一些初步估计就不需要用到机器学习。这样,你可以凭借你的编程能力在工业界找到实现自己价值的机会。

◆ 第二步:你下一步应该做的是:①泰坦尼克。原因是,你现在应该已经明白如何操作一个复杂数据集。这样,现在正是搞一搞纯粹的机器学习的好时机了。有很丰富的解决方案和脚本可以利用,你应该能创建一个很好的解决方案。

◆ 第三步:你现在应该尝试大一点的东西了。试试Facebook招聘。这会帮助你意识到理解某个领域的知识如何在机器学习上帮助你得到最好的结果。

一旦你完成了上述所有的尝试,你尝试Kaggle上任何一个问题都没有问题可。

Case 2:我在数据分析行业以及有两年以上经营,但是不擅长R或者python。

◆ 第一步:你的第一个尝试应该是①泰塔尼克。原因是,你已经了解如何创建预测算法。你现在应该努力学习像R和Python这样的编程语言。有很丰富的解决方案和脚本可以利用的条件下,你应该能用R和Python完成不同的模型。这个问题也可以帮你了解一点更高级的机器学习算法。

◆ 第二步:下一步是Facebook招聘。原因是,给你简单的数据结构和丰富的数据内容,你将可以结合正确的表,在这个问题上给出预测算法。这会帮助你意识到理解某个领域的知识如何在机器学习上帮助你得到最好的结果。

建议:你现在要准备好离开你待得非常舒服的领域,尝试完全不同的东西。阅读一些问题,比如糖尿病视网膜病变检测,Avinto上下文广告点击,犯罪分类并找到你感兴趣的领域。现在尝试将你学到的任何知识都应用一下。

现在是时候尝试一下对更复杂的东西编程了。试一下出租车轨迹预测问题或者脏文件去噪声问题。一旦你各项准备都齐全了,你可以尝试Kaggle上的任何问题。

Case 3:我擅长编码和机器学习,需要找一下有挑战的工作。

◆ 第一步:你在Kaggle上有很多选择。首选是掌握一种新语言比如Julia。你可以开始迈出Julia的第一步。原因是,这将在Python和R之外显示Julia的强大之处。

◆ 第二步:第二个现在就是发展另一个领域的技能。你可以尝试Avito竞赛、搜索相关或者Facebook——人vs机器人

Case 4:我对于机器学习和编程语言都是新手,但是我想学。

◆ 第一步:你应该用①泰塔尼克来作为你Kaggle之旅的开始。原因是,你的第一步应该是学习编程语言如R和Python。有很多可资利用的解决方案和脚本的情况下,你应该能用R和Python建立不同的模型。这个问题也帮助你了解一些机器学习算法。

◆ 第二步:然后你应该着手的是:Facebook招聘。原因是,给你简单的数据结构和丰富的数据内容,你将可以结合正确的表,在这个问题上给出预测算法。这会帮助你意识到理解某个领域的知识如何在机器学习上帮助你得到最好的结果。

一旦你完成了这些,你应该在Kaggle选择任何一个你感兴趣的问题了。

Kaggle上公平竞争中的一些骇客方法

这不是一个骇客方法的完全列表,只不过想要给你一个好的起点。完全的列表值得另开一个帖子来说明。

1.确认你在最后期限之前提交了一个解决方案(即使最简单的提交也算完成任务),如果你未来还希望继续参加这个竞赛的话。

2.在你处理数据之前,了解该领域的专业知识。例如,在机器人vs人的比赛中,开始你的数据之旅前,你需要了解在线竞标平台的知识。

3.自己做一个模拟Kaggle竞赛评分标准的评估算法。一个简单的10折交叉验证通常就可以很好的工作。

4.从训练数据中切割出尽可能多的特征——特征工程通常能将你的成绩从40%的位置推升到前10%。

5.单纯一个模型通常不能把你推升到前10.你需要做很多很多模型,然后将他们集成起来。可以是许多不同模型的集成,也可以是同一算法的不同变量集。

结束语

在参加Kaggle比赛后,我意识到很多好处。我已经习惯了R和python。我相信这是学习编程语言方面最好的方式。另外,在论坛中给人们交互会帮助你加深对机器学习和领域知识的理解。

在本文中,我们介绍了各种Kaggle问题,将他们的基本属性按照难度水平做了区分。我们也列举了真实生活中的各种情形,阐述了参加Kaggle比赛的各种方法。

你怎么参加Kaggle比赛呢?你能否看到参加的各种巨大益处呢?有什么想法,欢迎在之后评论。

作者:

TAVISH SRIVASTAVA

链接:

https://www.analyticsvidhya.com/blog/2015/06/start-journey-kaggle/

作者:马力_Panotech
链接:https://www.jianshu.com/p/f648de991d51
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

原文地址:https://www.cnblogs.com/invisible2/p/10651616.html

时间: 2024-10-10 04:04:11

Kaggle比赛:从何着手?的相关文章

Kaggle比赛总结

做完 Kaggle 比赛已经快五个月了,今天来总结一下,为秋招做个准备. 题目要求:根据主办方提供的超过 4 天约 2 亿次的点击数据,建立预测模型预测用户是否会在点击移动应用广告后下载应用程序. 数据集特点: 数据量很大,有 2 亿条之多 数据是不平衡的,点击下载的数量远远小于没有点击下载的数量 不平衡数据集的处理思路: 一般对样本进行 上采样 和 下采样,顾名思义就是 多的样本少采一点,少的样本多采一点.极端情况下,就是样本太多的时候,就可以做增强学习,就是我给我的少样本增加噪音.但是由于我

记一次失败的kaggle比赛(3):失败在什么地方,贪心筛选特征、交叉验证、blending

今天这个比赛结束了,结果可以看:https://www.kaggle.com/c/santander-customer-satisfaction/leaderboard public结果: private结果: 首先对比private和public的结果,可以发现: 1)几乎所有的人都overfitting了:或者说private的另一半测试数据比public的那一半测试数据更不规律. 2)private的前十名有5个是在public中排不进前几百,有四个甚至排在1000名到2000名之间:说明

Kaggle比赛(二)House Prices: Advanced Regression Techniques

房价预测是我入门Kaggle的第二个比赛,参考学习了他人的一篇优秀教程:https://www.kaggle.com/serigne/stacked-regressions-top-4-on-leaderboard 通过Serigne的这篇notebook,我学习到了关于数据分析.特征工程.集成学习等等很多有用的知识,在这里感谢一下这位大佬. 本篇文章立足于Serigne的教程,将他的大部分代码实现了一遍,修正了个别小错误,也加入了自己的一些视角和思考,做了一些自认为reasonable的"改进

我的第一个 Kaggle 比赛学习 - Titanic

背景 Titanic: Machine Learning from Disaster - Kaggle 2 年前就被推荐照着这个比赛做一下,结果我打开这个页面便蒙了,完全不知道该如何下手. 两年后,再次打开这个页面,看到清清楚楚的Titanic Tutorial - Kaggle,完全傻瓜式的照着做就能做下来.当年是什么蒙蔽了我的眼睛~ Target use machine learning to create a model that predicts which passengers sur

收集几个打算做的kaggle比赛

1.  Display Advertising Challenge 目测是关于广告CTR预估的. .新实习看起来是做广告的,恶补一个. 2. Quora Question Pairs 美丽的小姐姐给我推荐的比赛,判断两个quora上的问题是否是一样的.一颗赛艇.

kaggle比赛流程

一.比赛概述 不同比赛有不同的任务,分类.回归.推荐.排序等.比赛开始后训练集和测试集就会开放下载. 比赛通常持续 2 ~ 3 个月,每个队伍每天可以提交的次数有限,通常为 5 次. 比赛结束前一周是一个 Deadline,在这之后不能再组队,也不能再新加入比赛.所以想要参加比赛请务必在这一 Deadline 之前有过至少一次有效的提交. 一般情况下在提交后会立刻得到得分的反馈.不同比赛会采取不同的评分基准,可以在分数栏最上方看到使用的评分方法. 反馈的分数是基于测试集的一部分计算的,剩下的另一

Kaggle比赛之『旧金山犯罪分类预测』 demo

import pandas as pd import numpy as np #用pandas载入csv训练数据,并解析第一列为日期格式 train=pd.read_csv('../input/train.csv', parse_dates = ['Dates']) test=pd.read_csv('../input/test.csv', parse_dates = ['Dates']) train import pandas as pd import numpy as np from skl

Kaggle 数据挖掘比赛经验分享

1.Kaggle 基本介绍 Kaggle 于 2010 年创立,专注数据科学,机器学习竞赛的举办,是全球最大的数据科学社区和数据竞赛平台.在 Kaggle 上,企业或者研究机构发布商业和科研难题,悬赏吸引全球的数据科学家,通过众包的方式解决建模问题.而参赛者可以接触到丰富的真实数据,解决实际问题,角逐名次,赢取奖金.诸如 Google,Facebook,Microsoft 等知名科技公司均在 Kaggle 上面举办过数据挖掘比赛.2017年3月,Kaggle 被 Google CloudNext

【Kaggle】用随机森林分类算法解决Biologial Response问题

Kaggle搞起来 Kaggle比赛多依靠机器来自动处理,机器学习几乎是必须要的技能.开始搞Kaggle需要的机器学习技能并不深入,只是需要对于机器学习的常见几个方法有基本了解即可,比如说对于一个问题,你可以认识到它是个classification的问题啊还是regression的问题啊,为什么机器可以根据你输入的一个矩阵来算出来分类结果啊. 其实有时候真的在于是不是愿意踏出那一步,一旦踏出了那一步,做与不做真的是天壤之别. hacker的方式就是通过不断的尝试来学习,所以,搞机器学习,不实践,