Interpretable-Machine-Learning

什么是机器学习

机器学习是计算机根据数据做出和改进预测或行为的一组方法。

例如,要预测一栋房子的价值,计算机会从过去的房屋销售情况中学习经验。本书的重点是有监督机器学习,它涵盖了所有预测问题。在这些预测问题中,我们基于一个已知的数据集和输出结果(如过去的房价)来学习和预测新数据的结果。在有监督学习之外的是聚类任务(=非监督学习)。在这些任务中,我们事先不了解特定的输出结果,但希望找到数据的聚类结果。同样被排除在外的还有强化学习(reinforcement learning),在这种学习中,agent通过在一个环境中执行策略来学习如何优化某个目标(例如在玩俄罗斯方块的电脑中)。监督学习的目标是学习一个预测模型,它将数据的特征(如房屋大小、位置、楼层类型等)映射到输出(如房价)。如果输出是多个类别,则该任务称为分类,如果输出是数值型数据,则称为回归。机器学习算法通过估计参数(如权重)或学习结构(如树)来学习模型。该算法以一个最小化的分数或损失函数作为目标函数。在房屋估价的例子中,该机器最小化了估计房价和预测房价之间的差异。一个经过充分训练的机器学习模型可以用来预测新的实例。

房价估算、产品推荐、路牌检测、信用违约预测、欺诈检测:这些例子都有一个共同点,都可以通过机器学习来解决。任务是不同的,但方法是一样的:

步骤1:数据收集。越多越好。数据必须包含希望预测的结果和用于预测的基础数据。对于街道标识检测器(“图像中是否有街道标识?”),需要收集街道图像并标记是否可见街道标识。对于信用违约预测模型,您需要关于实际贷款的过去数据、关于客户是否拖欠贷款的信息,以及能够帮助您做出预测的数据,例如收入、过去的信用违约等等。对于房屋价值评估模型,您可以从过去的房屋销售数据和有关房地产的信息(如大小、位置等)中收集数据。

步骤2:将此信息输入机器学习算法,该算法生成一个路牌检测模型、一个信用评级模型或一个房屋价值评估模型。

步骤3:在新数据中应用模型。将模型集成到产品或流程中,例如自动驾驶汽车、信用申请流程或房地产市场网站。

机器在很多任务上都超过了人类,比如下棋(或最近的围棋)或预测天气。即使机器和人类一样好,或者在某项任务上更差,在速度、重现性和可伸缩性方面仍然有很大的优势。一经实现的机器学习模型可以比人类更快地完成任务,可靠地交付一致的结果,并且可以无限地复制。在另一台机器上复制机器学习模型既快又便宜。训练一个人完成一项任务可能需要几十年的时间(尤其需要在他们还年轻的时候执行训练),而且成本很高。使用机器学习的一个主要缺点是对数据和机器解决任务方式的洞察隐藏在日益复杂的模型中。你需要数以百万计的参数来描述一个深度神经网络,而没有办法完全理解这个模型。其他模型,如随机森林,由数百棵决策树组成,这些决策树“投票”选出预测结果。要了解决策是如何做出的,您必须查看数百棵树中的每棵树的选票结果和结构。无论你多聪明,或者你的记忆力多好,这都不管用。性能最好的模型通常是几个不能解释的模型(也称为合集)的混合,即使每个模型都可以解释。如果只关注性能,就会自动得到越来越不透明的模型。只要看看kaggle.com机器学习竞赛平台上对获奖者的采访就知道了:获奖的模型大多是模型的集合,或者是非常复杂的模型,比如增强树或深度神经网络。