雷锋网AI研习社按:随着硬件算力的上升、数据量的加大以及各种新算法的浮现,机器学习也变得一天比一天火热。不夸张的说,这是机器学习的时代。然而,机器学习虽然能够给出惊艳的结果,但其有限的解释性也常被人戏称为“黑箱”。而实践者在使用机器学习的过程中往往也会面临各种各样的选择。本文的目的就是帮助实践者在使用机器学习过程中做出正确的选择和判断。文章内容根据知乎人气答主阿萨姆在雷锋网AI研习社上直播分享整理而成。如您想直接看视频回放,可点击这里。
阿萨姆,普华永道高级数据科学家,负责统计学习模型开发。有丰富的工业及学术经验,擅长将理论知识应用于实践中。曾以第一作者发表过多篇不同领域的学术文章,如人机互动、智能系统等。研究兴趣包括异常检测、集成学习、跨领域机器学习。以笔名“阿萨姆”在知乎上创作了多篇机器学习相关的文章,曾数次被知乎及知乎日报收录。乐于技术分享,近期正在进行机器学习实践书籍创作。
以下是阿萨姆的直播分享内容:
机器学习无处不在的选择
数据如何清理?使用哪个模型?如何进行评估?如何发现过拟合与欠拟合?这些问题都还没有准确的答案,往往依赖于使用者的经验与直觉。在今天的分享课中,我们将会集中讨论在机器学习中所面临的选择,并给出一些实用的经验建议。
实际问题抽象化
机器学习和深度学习听起来非常酷炫,但不要为了使用模型而创造问题:机器学习的目标是解决问题。不要为了使用机器学习而创造问题。
机器学习可以预测很多东西,要学会确定“最小预测单元”,每当你把精度加深的时候,预测的难度就会加大。
切记盲目追求通过一个模型预测多个目标,尽量拆分问题。
确定最优框架,在可以使用监督学习,半监督学习,无监督学习,强化学习的情况下,优先使用监督学习
监督学习和无监督学习是”准确“和”探索“之间的平衡。
在了解了怎么定义一个最小单元,也知道选择什么样的框架后,下面需要考虑的问题是时间与空间上的依赖性。如果不考虑时空依赖性,问题会得到简化,但可能有严重偏差。如果需要考虑时间与空间上的依赖性,优先从简单的角度入手。
因为在实际生产中需要的是一个能用的模型,而不是要一个完美的模型,这是一个迭代的过程。
在了解了时空依赖性对于机器学习问题的意义,下一个问题谈的是回归和分类。
什么情况下是适合进行回归到分类的转化。
另外一个问题,数据质量往往不是连贯的。如果情况没有那么好,可以舍弃一部分数据或对数据切分。
小结
确定要预测的目标,找到项目痛点,不追求同事预测多个目标。
确定解决问题的框架,优先使用监督学习
结合已有的规则, 尝试融合机器学习模型和人为规则
如果可能,优先尝试分类任务,也可以尝试将回归转为分类
从易到难,确定尝试哪些机器学习模型
要解决的问题是否对于”时空“存在依赖性,如果可以回避依懒性,可以先试试简单模型
如果发现使用全部数据效果不好,可以尝试抛弃部分数据或分段处理。
如何选择并处理数据
首先,大家要知道,数据不是越多越好,要根据领域经验挑选相关特征。有一个误区就是信息越多越好。其实不然,无关信息可能与预测值存在某种巧合,导致对检测结果造成负面影响。所以只选择与预测值可能有关联的信息。
如何判断特征与结果之间的相关性
相关性分析的意义,可以发现数据中的问题,发现数据中有意思的部分,评估模型的能力。如果多个特征高度相关,那可能模型预测能力效果有限。
如果发现很多特征高度相关,是否应该移除?
总结来看,如果不存在特别严重的相关性,去相关性不是必要步骤。从理论和实验角度来看,去掉或者合并相关性特征不一定会提高模型的预测能力。
从实践角度来看,树模型对于相关性的鲁棒性强,如果可能,可以先使用未处理的特征在树模型进行尝试。
如果有必要移除相关性,下面是移除相关性的方法:
特征选择
设定阈值,去除高线性相关的特征组。
连续特征离散化
数据与特征工程小结
在处理数据上,数据并非越多越好,多余的无关特征会因为伪相关、巧合而影响模型。
对数据做相关性分析的时候,善用可视化可以一目了然发现问题。
对于高度相关的特征,移除或者合并前要三思,可能并不会提高模型能力。
如果选用了线性模型,可能需要对特征进行离散化
对于大部分模型来说,归一化或者标准化是必不可少的步骤,至少”无害“
如果问题较为复杂,尽量选择非线性的鲁棒性强的模型
模型选择与评估的小结
以下是我推荐的模型选择及评估流程:
根据要解决的问题和对数据的理解,大致决定出模型的搜索范围,如尝试SVM,逻辑回归,随机森林等。如资源允许,可扩大模型候选名单。
根据要解决的问题和对数据的理解,决定模型的评估标准。虽然建议选择单一的评估标准进行对比,但推荐计算所有可能的评估标准。
根据具体问题中的数据量大小,以及模型稳定性,决定是否使用交叉验证。
结合参数搜索、交叉验证方法,通过选定的评估标准从候选模型中找到表现最好的模型。
对上一步中的所选模型进行微调。
迭代以上步骤直到找到最优的模型。
如何调试机器学习模型
我们常常看到的一种调试方法是分析一个模型的泛化能力,主要看他的偏差与方差。
量化模型泛化能力-过拟合
量化模型泛化能力的诊断方式
模型问题诊断-高偏差和模型问题诊断-高方差
使用集成学习降低方差与偏差
机器学习模型调试小结
机器学习互动问答
更多精彩内容,请观看雷锋网AI慕课学院视频回放。