尽管机器学习能够提供多种好处,但是在使用过程中也有可能导致严重问题。初学者需要理解所输入数据、项目范围和目标,以及工作中使用的机器学习算法。
机器学习是很多大数据项目背后的重要推动力量,但是即便IT部门投入大量精力,在具体实施过程当中事情也有可能朝着错误的方向发展。
不幸的是,如果你没有牢固掌握所输入数据的质量和准确性、实际的业务目标以及真实环境限制,那么预测模型很有可能具有严重的潜在风险(比如无法避免黑天鹅效应)。
对于机器学习和大数据初学者来说,很容易编写出效率低下的复杂模型或者对特定数据进行重复分析(学习过多训练数据细节,然而这些并不会得到广泛应用)。事实上,在将这种“广义”模型应用到生产环境之前,很难判定哪种才算是最佳方式。
另外一种挑战是成功的定义会随着不同的使用情况而出现巨大差异。针对特定测试数据,可以使用数十种指标来描述模型数据输出结果的质量和准确性。即便对于IT专家来说,其至少需要熟悉机器学习输出结果的相关指标,并且了解各种象限知识,比如真正(True Positive)被模型预测为正的正样本、真负(True Negative)被模型预测为负的负样本、假正(False Positive )被模型预测为正的负样本、假负(False Negative)被模型预测为负的正样本等。
在机器学习和大数据领域,许多关键指标都是根据这四种基本测量结果推导而来。比如,通常会使用正确标记(真正+真负)的实例数量除以总实例数量来定义整体准确性。如果想要了解究竟有多少个正确的正实例,敏感性(或者召回率)就是真正的数量除以实际正数量(真正+假正)所得到的比例。
通常精确度也是十分重要的,也就是真正(True Positive)的数量除以所有被标记为正(真正+假正)的项目之和。将所有都标记为正的简化模型将会有100%的召回率,但是精确度和准确性会非常差——这种模型能够找到一切,但是却不能将小麦从谷壳当中挑选出来。因此通常需要从这些指标当中进行抉择以寻找最佳平衡点。
在一些基于机器学习的大数据应用领域当中,比如针对性营销,相比于随机选择目标客户这种传统方式来说能够提高20%的效率(在拉斯维加斯,房地产只需要增长1%就能够保持繁荣发展)。在其他领域当中,比如对100万人进行癌症检查时,即便是99%的准确率也会导致极其严重的后果:假设癌症的发病率非常低,那么这1%当中的大部分就是假正,从而导致需要对将近1万人进行不必要的治疗。
这种情况促使我们开始思考机器学习对于IT领域的影响。首先,主机存储和计算平台应该和尝试学习的种类相匹配。有时候应该进行离线学习,将结果模型应用在生产环境的简单计算步骤当中。而在其他时间学习是持续或者反复出现的(比如强化学习),需要更加靠近当前的数据流。
相比于使用其他大数据扩展集群(比如Apache Mahout、MLlib和Madlib)的可分区库来说,一些机器学习算法能够实现更好可扩展性,然而其他方式可能需要更高速的计算互联通道以及读写事务存储架构以提高计算效率。
可以使用一些内存工具来完成大型交付式数据挖掘或者预测工作,并且降低延迟。还有一些根据生产环境当中API调用情况进行收费的云主机机器学习服务,对于存储在云中的数据来说这种方式能提升成本效率。
如果你已经拥有固定的程序业务领域, 只是想要随意探索一下或者刚刚开始研究机器学习,那么可以使用Python和其他语言当中提供的相关免费包。你甚至可以在微软Azure当中注册一个免费开发、基于云的主机学习工作室。这些产品当中的大多数都可以运行在本地主机的小型数据集合上,或者针对生产环境扩展为大型数据集合。这是一个十分热门的领域,每天我们都能听到厂商保证自己的特定产品能够简化平均业务分析过程。
所有这些预测模型都不具有人工智能。是的,通过寻找和探索数据方面的更深层次模型,其能够提供真实和多种业务优势,但是通过这种方式建立的一切都是相关性。就像学校经常告诉我们的一样,相关性不代表明确的因果关系。
但是,考虑到现在应用机器学习技术已经变得非常容易——只需要研究感兴趣的数据集合,因此所有IT部门都可以学习自己的内部专业知识——收集和清除数据、制定开发流程、协助模型效果等,并且应用在生产环境当中。在数据科学方面的专业知识是非常宝贵和难得的,但是考虑到这个领域正在发生的快速变化,企业应该马上开始研究工作,不要期望获得成熟的科学家团队来顺利完成这样任务。