简单使用:了解某个算法基本原理,应用领域,功能和局限。
a) 该算法的应用问题域是什么?(e.g. 分类、回归、聚类……)
b) 该算法的应用目标是什么?(e.g. 判别算法、生成算法……)
c) 该算法适合应用在怎样的数据集,它能对数据造成怎样的影响?(e.g. 适用少量高维稀疏数据……)
d) 能够主动获取该算法的函数库,调用该算法生成模型。
算法优化:对所采用算法和对应模型的数学公式有所了解。
a) 知道调用函数中各个参数的意义(e.g. 迭代次数,对应到公式中参数的含义……),能够通过调节这些参数达到优化结果的目的。
b) 能够通过加约束条件(e.g. L0, L1, L2 ……)来优化算法。
c) 了解在当前问题域,目标和输入数据确定的情况下,还可以用哪些其他模型可替换现有模型,并进行尝试。
d) 能够将多个弱模型加权组成强模型(e.g. adaboost)。
运行效率优化:对模型本身的数学推导过程和模型最优化方法有所掌握,对于各种最优化方法的特点、资源占用及消耗情况有所了解。
a) 了解算法在当前数据集上的运行效率(e.g. 需要进行哪些运算,是否易于被分布式等)。
b) 了解在其他语言、平台、框架的工具包中有否同等或近似功能但在当前应用场景下效率更高的算法。
c) 能够针对具体场景,通过转换模型的最优化方法(optimizer)来改进运行效率。