arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 2408.05129cs.SE
收藏

拆解1+2个数据科学库中的默认参数破坏性变更

Unboxing Default Argument Breaking Changes in 1 + 2 Data Science Libraries

João Eduardo Montandon, Luciana Lourdes Silva, Cristiano Politowski, Daniel Prates, Arthur de Brito Bonifácio, Ghizlane El Boussaidi

AI总结:

本研究针对Scikit Learn、NumPy和Pandas三个数据科学库,发现93个默认参数破坏性变更(DABC),分析其对超50万客户端的影响差异,揭示DABC主因及管理重要性,为开发者提供减轻影响的见解。

摘要:

数据科学(DS)已成为现代软件的基石,能通过数据驱动决策改善企业服务。数据科学家遵循现代软件开发实践,使用第三方库辅助任务。由于这些工具提供的API常需大量参数配置,数据科学家依赖默认值简化使用。但默认值会随时间变化,导致一种特定的破坏性变更——默认参数破坏性变更(DABC)。本研究在Scikit Learn、NumPy、Pandas这三个常用Python数据科学库中发现93个DABC,分析其对超50万客户端应用的潜在影响:不同库的DABC发生率差异显著,35%的Scikit Learn客户端受影响,仅0.13%的NumPy客户端受影响。引入DABC的主因是提升API可维护性,但常改变函数行为。研究探讨了管理第三方DS库中DABC的重要性,并为开发者提供减轻其潜在影响的见解。

英文摘要:

Data Science (DS) has become a cornerstone for modern software, enabling data-driven decisions to improve companies services. Following modern software development practices, data scientists use third-party libraries to support their tasks. As the APIs provided by these tools often require an extensive list of arguments to be set up, data scientists rely on default values to simplify their usage. It turns out that these default values can change over time, leading to a specific type of breaking change, defined as Default Argument Breaking Change (DABC). This work reveals 93 DABCs in three Python libraries frequently used in Data Science tasks -- Scikit Learn, NumPy, and Pandas -- studying their potential impact on more than 500K client applications. We find out that the occurrence of DABCs varies significantly depending on the library; 35% of Scikit Learn clients are affected, while only 0.13% of NumPy clients are impacted. The main reason for introducing DABCs is to enhance API maintainability, but they often change the function's behavior. We discuss the importance of managing DABCs in third-party DS libraries and provide insights for developers to mitigate the potential impact of these changes in their applications.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑