作者 | Pranay DaveCDA 数据分析师原创作品,转载需授权
毫无疑问,Kaggle 是非常适合学习数据科学的平台。许多数据科学家在 Kaggle 上投入了大量时间。
但同时,你不应该只依靠 Kaggle 来学习数据科学技能。
以下就是当中的原因:
1. 数据科学不仅仅是预测
Kaggle 主要针对预测相关的问题。然而许多现实问题是与预测无关的。
例如,许多公司都想知道用户流失的最常见途径。这些类型的问题需要了解不同的数据类型和用户接触点,例如 web 导航、计费、客服中心交互、商店访问等问题。同时还需要识别重要事件,例如超额计费或导航错误。在确定所有事件后,你需要应用路径算法来了解导致用户流失的常见路径。解决这类问题不能仅靠预测算法,而需要能够根据事件构建时间线的算法。
同样,解决许多其他问题也需要预测之外的技能。能够解决预测性问题是很强大的,但作为数据科学家你需要解决多种类型的问题。现实情况中有更多类型的问题需要解决,因此你不能仅局限于 Kaggle,还需要用其他技能解决现实的数据科学挑战。
2. 无法提高图算法方面的技能
社交网络分析、影响预测、社区分析、欺诈网络分析等,这些有趣的分析问题都是数据科学家需要解决。解决这类问题需要有关图形算法的知识,如 Pagerank、Modularity、ShortestPath、EigenVectorCentrality 等等。
网络或社区类型问题在 Kaggle 中很少见。解决图形和网络方面问题需要节点和链接相关数据,而 Kaggle 中大多数数据并不是这种形式的。
当然,你可以将问题转换为使用图算法,但这种情况很少。Kaggle 上缺少这类的比赛,这也表明了于数据科学家日常需要解决问题的巨大差距。
3. 无法提高算法可解释性
算法的可解释性越来越重要。你可以使用高大上的方法和最复杂的算法,但如果无法解释算法是怎样得到预测的,在企业中这将是一个大问题。这种说不清缘由的算法被称为“黑匣子”算法。
使用黑盒算法存在一定的隐患,而且也可能造成法律方面的问题。假设,你开发了一种非常精确的算法集合来预测信用风险。在投入生产时,它将用于预测信贷风险。其中有些人的信用得分会很低,被拒绝贷款的人有权知道他们申请被拒的原因。如果算法无法提供解释,则可能会产生法律问题。
在 Kaggle 比赛中,获胜者是基于准确性,而不是基于可解释性。这意味着比赛中数据科学家可以使用复杂的算法来保证高准确性,而不必关心可解释性。这种方法能够赢得比赛,但在企业的数据科学项目中就行不通了。
4. 缺少投资回报率的分析环节
公司正在加大数据科学技能方面的投入。他们希望数据科学项目能够提供投资回报率。通常,成功的分析项目需要数据科学算法与投资回报率紧密相关。
其中一个例子是预测性维护,其中能够对设备故障进行预测。假设设备的故障率为 10%,那么你需要派维护人员去进行检查吗?可能并不需要。但如果故障率为 95%,那是肯定需要的。
然而在实际情况中,故障率通常为 55%,63%等,这时就不确定了。如果公司派维护人员检查所有这些设备,则可能产生巨大的成本。如果不派人检查,则会有很大的设备故障风险。
那么故障率的阈值应该是多少呢?这时就需要计算投资回报率了。因此非常需要数据科学家给出当中的阈值,从而帮助公司确定相关决策。
Kaggle 并不涉及这方面的分析,而只专注预测,并不考虑如何把数据科学结果应用于投资回报率。
5. 不会涉及到模拟和优化问题
关于模拟和优化算法,比如系统动态仿真、基于代理模拟或蒙特卡罗模拟等应该是所有数据科学家的必备技能。金融优化、路线优化、定价等许多问题都是数据科学家需要解决的问题。
以价格预测为例,你可以使用机器学习,根据季节、日期、地点、竞争对手价格等数据来预测产品价格。但机器学习算法预测的价格是否是最优价格?也许不是。为了确定最优价格,你首先要确定优化目标。
优化目标可以设为利润优化。在这种情况下,你需要确定提供最佳利润的价格范围。为了留住用户,这样的价格不能设太高。同时,为了保持良好的利润率,也不应该太低。
因此,你需要通过优化算法来确定最佳价格范围。如果预测价格在价格范围内,那么机器学习的结果是可以接受的,否则应被拒绝。
在 Kaggle 上,通常不会给出利润优化等优化目标。因此,当中涉及的问题仍然局限于机器学习,而并没有探索优化方面的问题。
6. 无法体验模型部署和操作
假设你的模型在 Kaggle 排行榜位居前列。然而部署模型是完全另外一回事,这是在 Kaggle 上无法体验的。
生产部署模型会涉及到 docker、kubernetes 等技术。虽然数据科学家并不需要成为 docker 和 kubernetes 方面的专家,但至少要能够熟练使用。很多情况下,数据科学家需要用 docker 创建评分管道。
操作和部署还包括定期监控模型性能,并在必要时采取改进措施。假设有一个产品推荐模型。你在某个时间点观察到,由于推荐而导致销售额下降。那么问题是出在模型上吗?还是其他方面呢?
数据科学家需要参与到模型部署环节,从而获得获得真实而丰富的体验。
结语
数据科学家需要涉及算法可解释性、投资回报率评估、优化等技能。在这一系列问题中,你将解决各种有趣的现实问题,从而更全面的提高数据科学相关技能。
对于数据科学家而言,不要仅局限于 Kaggle,而是要从其他角度解决不同类型的数据科学问题。