我遇到一家做预测建模的公司,他们说:
由于我们的预测模型是根据您独特的业务需求和情况进行调整的,因此它们可以应用于各种预测活动,涵盖多种问题类型和领域。
我想知道预测模型是为每个任务单独编程的,还是只编程一次并在所有地方使用。我有点困惑。
回答:
情况各不相同:你可以拥有一个高度优化的预测模型,它通过利用数据中已知的特定信息,在处理特定数据集时表现非常出色。 例如,如果你正在分析 URL,并且每个 URL 都是一个字符串(最多 255 个字符),那么每个 (UTF 8) 字符是 8 位或 1 字节,因此你需要 255 字节来存储每个 URL。 你可以使用像 CityHash64 这样的哈希函数对每个 URL 进行哈希处理,这样你现在就可以用 8 个字节而不是 255 个字节来存储 URL。 可以将此构建到算法中,以使其使用更少的内存,从而使其能够将更多数据放入 RAM 中,并且会使计算更快,但是这种类型的优化不能用于旨在支持各种数据类型的系统。 在一般情况下,你没有足够的领域知识来进行此类优化。
另一方面,这家公司似乎就在做这种事情,你会提供一个通用系统,该系统以某种格式接收数据,并将预定义的算法应用于数据。 你可能有一些参数可以让你调整系统,以防你获得更多领域知识,但这远不及对 URL 进行哈希处理以将内存使用量减少 3000%。 提供此类服务的公司通常应用DRY 原则,他们编写一次代码,并尽可能多地重用该代码(以节省资金并最大程度地提高利润)。 他们可能会在其设置中进行一些小的优化或调整,但通常会避免仅为特定客户编写算法。
这绝不是对你所关注的公司正在做的事情的准确描述,但根据你的引言,这似乎是一个有效的假设。 只是为了让人们理解我没有妄下判断:如果该公司正在进行概括,这是完全有道理的,如果我的业务依赖于为尽可能多的客户提供服务,那么我也会进行概括。