计算技术通常用来分析数据,而理解数据则依赖于机器学习。多年来,对于大多数开发者来说,机器学习却是非常遥远、一直是难以企及的。
这可能是现在收益最高,也是最受欢迎的一项技术之一。毫无疑问——作为开发人员,机器学习是一个能够大展身手的舞台。
图1:机器学习的构成
机器学习是简单数据检索与存储的合理扩展。通过开发各种组件,使计算机更加智能学习和发生行为。
机器学习使得挖掘历史数据和预测未来趋势成为可能。你可能还没意识到,但的确已经在使用机器学习,并受益颇多。与机器学习有关的例子很多,如搜索引擎产生结果、在线推荐、广告投放、欺诈检测以及垃圾邮件过滤等。
机器学习依赖数据进行决策。直觉虽然重要,但却也很难超越经验数据。
机器学习的各个方面
一旦你开始深入探索机器学习,你会遇到以下几个问题:
1. 有监督与无监督的学习
2. 分类
3. 马尔科夫模型、贝叶斯网络等
Mahout和Hadoop
Apache Mahout项目的目的是建立一个可扩展的机器学习库。
大数据分析与hadoop之间存在一定程度的重叠
与Hadoop一起,你可以免费获得整个机器学习开源项目。更多内容参见:
http://mahout.apache.org/
Mahout内置聚类、分类以及协同过滤等算法。除此之外还有:
1. 基于矩阵分解的推荐系统
2. K-均值,模糊k-均值聚类算法
3. 隐含狄利克雷分配算法
4. 奇异值分解
5. 逻辑回归分类器
6. (互补)朴素贝叶斯分类器
7. 随机森林分类器
我去过加利福尼亚大学伯克利分校,发现他们有很多不错的课程。
我希望能有更多的时间。我认真考虑过,决定开始参加MIT在线课程,地址如下:
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-867-machine-learning-fall-2006/index.htm
Azure是民主化的机器学习
机器学习曾经需要复杂的软件与高端的计算机,以及数据科学家。。而对于现在的机器学习,即预测分析来讲,所需要的是一个全管理的云服务。
欢迎使用ML Studio
通过使用拖拽(drag-and-drop)与一些数据流图就可以进行一些实验,就如写代码一般利用起高大上的算法。
数据科学家用R编写代码
对于统计与数据挖掘的来说,R是一个很受欢迎的开源项目。好消息是R能够很容易的集成到ML Studio中。我有很多朋友在使用机器学习的功能语言,如F#。但是很显然的,R在此领域仍占统治地位。
数据挖掘的测验与调查显示,近年来R受欢迎的程度逐渐增强。R是由新泽西的Auckland大学的Ross Ihaka 与Robert Gentleman发明的,目前由R核心开发组(R Development Core Team)负责研发,其中Chambers也是开发成员之一。R的命名主要是根据前两个R作者名字的首字母。R是一个GNU项目,主要是用C语言与Fortran写的。
数据分析
以下框架提供了理解机器学习预测的方法。总的来说就是当涉及到如何使用有限的资源,为增加收益或限制成本提供决策支持。包括预测消费模型、优化供应链等。
如何进行数据分析
理解机器学习的最好方法就是将分析分解为3个问题:
1. 发生了什么?
a) 从历史角度去看
2. 将发生什么?
a) 预测未来
3. 下一步应该怎么做?
a) 规范与指引
分析过程中大家扮演什么角色
1. 信息工作者
a) 通常使用自助服务工具Power BI:Office 365的Power BI是一种自我服务的事务智能解决途径,能够通过BI Excel 与Office 365给信息工作者提供数据分析与鉴别数据深层事务预测可视化的能力。
2. IT专家
a) 涉及数据转换、数据仓库、创建数据分析立方体及数据建模
3. 数据科学家
a) 深层次的技术与技能,包括编码、数学、统计以及概率
b) 能够通过一系列技术将概率用于预测(如未来18小时内价格上涨的概率为42%)
c) 如蒙特卡罗(Monte Carlo)模拟,模型参数化
d) 数据科学家应具备的素质
i. 领域知识
ii. 对于科学方法的清晰理解:目标、假设、验证、透明度
iii. 擅长数学与统计学
iv. 求知欲与极强的思考能力
v. 图形化描述与沟通能力
vi. 高级计算与数据管理能力
学术背景
如果你想进入学校,通过学习成为一个数据科学家,可选择的课程如下:
1. 应用数学
2. 计算机科学
3. 经济学
4. 统计学
5. 工程学
从数据科学中受益的行业包括:
1. 金融服务业
2. 电信业
3. 信息技术
4. 制造业
5. 公共事业
6. 公共卫生
7. 市场