将输入数据(特征)与目标变量(或者标签)之间关系建立模型的函数,是一个机器学习算法试图学习的对象。
当你对算法进行测试时,你总要找出一种方式来估量算法的表现。
比如你想对给定英文文本做词性标注,把每个单词标为名词、动词、代词等等,一个单词在不同文本中会有不同的词性(比如building)。
你以此训练了一个机器学习模型,算法的准确率是75%,但是你无法确定75%是否是一个满意的结果,除非你将你的准确率与别的参照进行比较。
在这里用于比较的就是着基线(baseline)。
总的来说,你希望你的算法表现比基线更好。
基线(baseline)的正式定义是一种使用简单的启发式探索,统计规则,随机规则或者该领域中先前常使用算法对已知问题及数据集进行预测的方法。
这些预测将用来评估基线算法的表现(比如准确率),并且作为标准来对比评估其他机器学习算法的表现。
它通常在在正式的工作之前进行,为后面的工作效果提供表现评估的支持。
有时选择一个简单的基线就足够,比如上面的例子,基线可以是用每个单词最常使用的词性来标注它。
或者可以针对这项任务的、现存的使用广泛的算法作为基线。
基线的选择是由你的目标决定的。
目标可以是超越基线,如果你的工作想提高准确率,或者可以是得到与基线相当的结果,但是在算法的其他方面实现改进(比如训练时长、预测时间、内存使用情况等等)。
比较典型的基线包括这些由sklearn支持的虚拟估计(scikit-learn's "dummy" estimators):用于分类问题的基线(Classification baselines):“stratified”: 考虑训练集的类分布来生成预测 。
“most_frequent”: 总是预测训练集中最频繁出现的标签。
“prior”:总是预测将优先类(class prior)最大化的类。
“uniform”: 生成随机均匀的预测。
“constant”: 总是预测由使用者提供的常数标签。
对评估非多数类很有用。
回归的基线(Regression baselines):“median”: 总是预测训练集的中值。
“quantile”: 总是预测训练集的、由百分位参数提供的特定的分位数。
“constant”: 总是预测由使用者提供的常量。
最后,如果在你在机器学习的特定领域进行工作(比如推荐系统),为了展现你的方法做得更好,一般选取现有技术作为基线。
例如你想要评测新的协同过滤算法,你也许会将它和矩阵分解作比较。
baseline这个概念是作为算法提升的参照物而存在的,相当于一个基础模型,可以以此为基准来比较对模型的改进是否有效。
通常在一些竞赛或项目中,baseline就是指能够顺利完成数据预处理、基础的特征工程、模型建立以及结果输出与评价,然后通过深入进行数据处理、特征提取、模型调参与模型提升或融合,使得baseline可以得到改进。
所以这个没有明确的指代,改进后的模型也可以作为后续模型的baseline。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)