抽时间做项目是最好的一种投资方式,在项目中你会享受学习、保持积极性并能获得更快的进展。没有任何理论可以代替实践,虽然教材和课程能让你掌握一些基本原理,但在尝试应用时,你会发现具体操作起来比较困难。
因此项目有助于提高应用机器学习的技巧,此外在找工作中也会给自己增添一些筹码。
以下将具体介绍这八个项目,每个项目都能在一个周末完成,如果你喜欢的话,可以对其进行相关的扩展。
本文目录
- 机器学习的角斗士
- 扮演“点球成金”
- 预测股票价格
- 教会神经网络阅读的笔迹
- 调查安然事件
- 从Scrath开始写机器学习算法
- 挖掘社交情绪
- 改善卫生保健
1.机器学习的角斗士
这个项目被称为“机器学习的角斗士”,但它不是新的。这是围绕机器学习建立实际直觉最快的一种方式。目标是将现成模型应用到不同的数据集。本项目主要有3个原因令人感叹:
首先,你会根据直觉为问题找到对应的模型。该模型是否对数据丢失具有鲁棒性、该模型适合处理种类别特征?这都可以通过挖掘教材找到答案,但如果通过实践的话能学习得更好。
其次,本项目将教会你快速设计初始模型的技能。在实际应用中,如果不简单尝试的话难以知道哪些模型表现最好。
最后,这个练习可以帮助你掌握建模的流程。例如:
- 导入数据
- 数据清洗
- 将数据集拆成训练/测试或交叉验证集
- 预处理
- 变换
- 特征工程
因为使用现成的模型,这导致你有更多的机会专注于学习上述的这些关键步骤。
通过以下教程可以练习回归、分类和聚类算法。
**教程
**
Python:sklearn——sklearn数据包官方教程
(http://suo.im/2soaN8)
Scikit Learn预测葡萄酒质量——用于训练机器学习模型的分步教程
(http://suo.im/4qWf3S)
R:插入符号——在线研讨会
(http://suo.im/28G7jk)
数据源
UCI机器学习库——350多个可检索数据集,几乎涵盖每一个主题。
(http://suo.im/2LAdKq)
Kaggle数据集——Kaggle社区上的100多个数据集。
(https://www.kaggle.com/datasets)
Data.gov——由美国政府发布的开放数据集。
(https://www.data.gov/)
2.扮演“点球成金”
在点球成金这本书中,奥克兰通过善于分析球员的球探,建立了一个有竞争力的阵容,但只需要支付只有1 / 3的纽约洋基队支付的工资。
首先,如果你还没读过这本书,你应该看看。
幸运的是,体育界有很多的数据可以玩,这些数据(球队、比赛、成绩和球员信息)都是可以免费获取。
有很多有趣的机器学习项目适合初学者。例如:
体育博彩——在每场球赛之前根据给出的数据预测得分;
人才搜索——利用高校统计数据预测哪些球员会拥有最好的职业生涯;
一般管理——基于球员各自的优势创建集群,建立一个全面的团队。
体育也是一个很好的实践数据可视化和探索性分析的领域,你可以使用这些技巧来帮助你决定在你的分析中应包含哪些类型的数据。
数据源
体育统计数据——体育运动和历史数据包含许多专业的体育比赛等,从网络上非常容易抓取这些信息。
(http://www.databasesports.com/)
体育参考——另一种体育统计数据库。更杂乱的界面,但个别表可以导出为CSV文件。
(http://www.sports-reference.com/)
cricsheet.org——国际棒球和IPL板球比赛的数据,IPL和T20国际比赛的CSV文件可以被获取。
(http://cricsheet.org/downloads/)
3.预测股票价格
股票市场对于任何数据科学家们都很感兴趣。
首先,你有很多类型的数据,比如价格、全球宏观经济指标、波动率指数等。
其次,数据是非常精细的。你可以很容易地花费很少时间就能得到每一个公司的数据,这允许你可以创造性地思考交易策略。
最后,金融市场普遍存在反馈周期短的特点。因此,可以快速验证新的数据。
一些对于初学者友好的机器学习项目如下所示:
- 定量的价值投资——根据公司的季度报告预测6个月的价格走势。
- 预言——对三角洲之间的隐含和实际波动率建立时间序列模型,甚至递归神经网络。
- 统计套利——基于价格变动及其它因素寻找相似的股票,并寻找价格分歧的时机。
- 免责声明:构建交易模型在实践中的机器学习是简单的,但使他们的盈利是非常困难的。入市需谨慎,投资有风险。
教程
Python:sklearn投资——将机器学习应用于投资的系列视频。
(http://suo.im/4CIIso)
R:R量化交易——对于R定量金融学详细的课堂笔记。
(http://www.rfortraders.com/)
数据源
Quandl——数据市场,提供免费的金融和经济数据。
(http://suo.im/vp6xq)
Quantopian——定量金融社区,开发交易算法提供了一个免费的平台。
(https://www.quantopian.com/data)
美国基础档案文件——5000多家美国公司5年的基本数据。
(http://usfundamentals.com/download)
4.教会神经网络阅读笔迹
神经网络和深度学习是现代人工智能的成功故事。他们导致了图像识别的重大进展,文本自动生成甚至自动驾驶汽车等。
MNIST手写体数字分类的挑战是经典的切入点,该数据集对于初学者是友好的,并且足够小以至于适合在大多数的计算机完成这个挑战。
首先,建议阅读下面的教程第一章。它会教你如何建立一个神经网络,并以高精度的结果完成MNIST挑战。
教程
神经网络和深度学习(在线书籍)——第1章如何从零开始使用Python编写神经网络完成MNIST数字分类。
(http://neuralnetworksanddeeplearning.com/)
数据源
MNIST——包含70000个标记的手写体数字图像。(http://yann.lecun.com/exdb/mnist/)
5.调查安然事件
安然事件造成有史以来最大的公司破产。在2000年度,安然是美国最大的能源公司,然而被揭露舞弊后,它在一年内就破产了。
幸运的是,我们已经有安然的电子邮件数据库,它包含150名前安然员工之间的50万封电子邮件,主要是高级管理人员。这也是唯一的大型公共的真实邮件数据库,这使得它更有价值。
事实上,数据科学家已经使用这个数据集进行多年的教育和研究。
初学者可以尝试的机器学习项目例子包括:
异常检测——按照小时发送和接收的电子邮件分布尝试检测异常行为导致公众丑闻的异常行为。
社交网络分析——建立员工之间的网络图模型来寻找关键人物。
自然语言处理——结合电子邮件元数据分析正文消息,并根据其目的对电子邮件进行分类。
数据源
安然邮件数据集——这是由CMU归档的安然的电子邮件。(http://www.cs.cmu.edu/~enron/)
安然数据描述(PDF)——安然电子邮件数据的探索性分析可以帮助你打好基础。
(http://suo.im/2bM571)
6.从Scratch开始写机器学习算法
从Scratch开始写机器学习算法的原因主要有两个:
首先,没有更好的办法来建立对其机制的真正理解。你将不得不考虑每一步,从而真正掌握这些机制。
其次,你将会学到如何数学指令工作翻译成公众代码。
开始时,建议你选择一种不太复杂的算法;在适应构建简单的算法后,尽量扩展他们以获得更多的功能;最后,如果你的算法不比那些现有的数据包快,不要气馁,因为这些数据包是多年的发展成果!
教程
Python:从Scratch开始Logistic回归
(http://suo.im/1sXPJR)
Python:从Scratch开始k-近邻法
(http://suo.im/2p1OPS)
R:从Scratch开始Logistic回归
(http://suo.im/3cPQSe)
7.挖掘社交情绪
由于大量用户生成的内容,社交化媒体已经几乎成为“大数据”的代名词。挖掘这些丰富的数据可以发现舆论、前沿和公众情绪的趋势。
脸谱网、推特、微信等一系列社交平台让人应接不暇。此外,每一代都比他们的前辈在社交媒体上花费更多的时间,这意味着社交媒体数据和市场营销、品牌及商业更相关。
虽然有许多流行的社交媒体平台,但推特是练习机器学习经典的切入点。
使用推特数据,你会得到一个有趣的混合数据(推特内容)和元数据(位置、标签、用户、转发等),因此有很多方式对其进行分析。
教程
Python:挖掘Twitter数据——如何在推特数据进行情感分析
(http://suo.im/tflKM)
R:机器学习的情感分析——短而甜蜜的情感分析教程
(http://suo.im/2rALk4)
数据源
推特API——推特API是流媒体数据的经典来源。
(http://suo.im/CKCiA)
Stock Twits API——Stock Twits是一个社交投资平台,类似于一个交易者和投资者之间的推特,可以通过将时间戳和股票代码符号加入到时间序列数据集中扩展此数据集。
(https://stocktwits.com/developers/docs)
8.改善卫生保健
由于机器学习而经历快速变化的另一个行业是全球健康与保健。
在大多数国家,成为一个医生需要多年的教育,这是一个要求很高的领域,长时间、高风险以及一个很高的门槛。
因此近年来,在机器学习的帮助下减轻了医生的工作量,提高了医疗系统的整体效率。
用例包括:
预防保健——预测对个人和社区层面的疾病爆发。
诊断服务——图像数据的自动分类,如扫描、X射线等。
保险——根据公开的风险因素调整保险费。
随着医院患者的病例现代化的发展,当我们收集更多的健康数据时,数据科学家将会有很大的可能去改善现存的医疗体系。
教程
R:为疾病预测建立有意义的机器学习模型
(http://suo.im/4qrHaJ)
卫生保健中的机器学习——微软研究院的优秀演讲
(http://suo.im/2wPFan)
数据源
大型健康数据集——大型健康数据集的收集
(http://suo.im/2VcIBhv)
data.gov/health——由美国政府提供的医疗保健相关的数据集。(http://suo.im/4wBUn5)
健康营养和人口统计——由世界银行提供的全球健康、营养和人口统计数据。
(http://suo.im/4dPW1I)