1.2.1 算法——如何构建数据分析模型
人们总是津津乐道各种时髦的算法,感叹算法的发展使得人工智能有了长足的进展。比如,人们看到机器可以精准地识别人脸、机器可以作诗、机器可以识别图片内容并“说出”符合其内容的文字描述,也热衷于紧跟最新的技术发展来做一些新颖的应用。这是一个非常好的趋势,可以促进人工智能的相关产业发展。然而,人类已经发明的算法远不仅仅如此。若读者一直在从事数据分析的相关工作,会发现其实能够解决实际业务问题的算法非常多,有很多也是简单直接的。比如,找到潜在的价值客户,既可以通过响应预测的模型,也可以通过聚类分析的模型,还可以通过社交网络分析的模型来找到。构建这些模型所需要的相关知识也需要体系化地学习、不断积累才能真正满足实际的业务需求。
在很多数据挖掘的资料中都会把算法分为有监督的学习、无监督的学习等类别,每个类别下各自的算法又有不同。比如聚类算法属于无监督的学习范畴,而能够做类别判断或回归的算法都属于有监督的学习范畴。在实际使用时,需要针对需求灵活应用,如可以先用决策树算法生成预测模型,然后分析决策树的分支来细分客群。只有对这些算法有一个体系化的学习,才能达到灵活应用的目的。
超参数(Hyperparameter)是在给定数据集的情况下,确定一组参数组合能使得模型性能、泛化能力达到较优。每个算法在调试超参数的过程中,都有一些与算法特征相关的普遍规律,如随机森林算法中决策树的个数、决策树的深度等,一般是需要预先被设定和关注的。基于随机森林中每棵树应当是一个弱分类器的原理,决策树的深度应该很小才能避免过拟合。目前有Grid Search等工具能够在不同参数组合下尝试找出一个合适的超参数,替代人们不断进行手工尝试的过程。但是不论如何,设置算法参数时总有一些经验总结可以在后来的应用中被复用。
在深刻了解算法原理、算法体系的基础上,掌握参数调优的技能是一个数据科学家的基本能力。不论是对初学者还是有一定经验的从业者来说,这都是一个需要不断学习和积累的基本任务。