遇见数据集

jonaskoenig/ML-Python-Code-Smells

收藏
Hugging Face2024-07-04 更新2024-07-06 收录
官方服务:

资源简介:

该数据集涉及Python代码中的机器学习代码异味(ML Code smells),主要用于文本分类和问答任务。数据集包含1K到10K之间的样本,适用于使用Python、TensorFlow、Pandas和Numpy等工具的研究和开发。

This dataset pertains to machine learning code smells in Python code, primarily used for text classification and question-answering tasks. It contains between 1K to 10K samples and is suitable for research and development using tools like Python, TensorFlow, Pandas, and Numpy.

提供机构:
jonaskoenig
原始信息汇总

数据集概述

许可证

  • MIT

任务类别

  • 文本分类
  • 问答

语言

  • 英语

标签

  • Python
  • TensorFlow
  • Pandas
  • NumPy

名称

  • ML Code smells in Python code

大小类别

  • 1K<n<10K
搜集汇总
数据集介绍
jonaskoenig/ML-Python-Code-Smells 数据集图片
构建方式
在机器学习与深度学习领域,代码质量对模型的可复现性与维护性至关重要。该数据集聚焦于Python语言中常见的代码异味(code smells),通过系统性地从开源项目中收集包含TensorFlow、Pandas、NumPy等库的代码片段,并经由专家标注与自动化工具辅助,构建了一个规模在1,000至10,000条之间的标注数据集。构建过程遵循严格的质量控制流程,确保每个样本均被准确分类至相应的文本分类或问答任务中。
特点
该数据集具有鲜明的领域针对性,专门面向机器学习与数据科学场景下的代码异味检测,覆盖了TensorFlow、Pandas及NumPy等主流框架的典型不良实践。其多任务标注结构同时支持文本分类与问答两种任务范式,为研究者提供了灵活的评估基准。此外,数据集采用MIT开源许可,便于学术界与工业界自由使用与扩展,促进了代码质量工具的研发与比较。
使用方法
使用者可直接通过Hugging Face Datasets库加载该数据集,例如使用`load_dataset("jonaskoenig/ML-Python-Code-Smells")`命令。数据集默认划分为训练集与测试集,适用于监督学习场景。对于文本分类任务,可基于代码片段内容预测异味类型;对于问答任务,则可设计模型回答关于代码缺陷的具体问题。建议在预处理时保留原始代码格式,以充分利用上下文信息提升模型性能。
背景与挑战
背景概述
在机器学习工程实践中,代码质量对模型的可复现性与可维护性具有深远影响。jonaskoenig/ML-Python-Code-Smells数据集诞生于对机器学习代码中常见不良设计模式(即“代码坏味”)的系统性关注。该数据集由研究者于近年构建,聚焦于Python语言编写的机器学习项目,涵盖TensorFlow、pandas、numpy等主流库的典型代码片段。其核心研究问题在于识别并分类机器学习代码中的结构性问题,如过度耦合、冗余计算或数据流混乱,从而推动自动化代码审查与重构工具的发展。作为首个专门针对机器学习代码坏味的数据集,它为代码质量评估、教学案例库构建以及静态分析模型训练提供了标准化基准,在软件工程与人工智能交叉领域具有重要启发性价值。
当前挑战
构建与使用该数据集面临多重挑战。首先,机器学习代码坏味的定义具有模糊性,不同开发者对“坏味”的感知存在主观差异,导致标注一致性难以保障,需通过多轮专家评审与迭代校准来缓解。其次,数据集规模介于1K至10K样本之间,覆盖有限,可能无法充分反映真实工业级项目中代码坏味的多样性与复杂性,如分布式训练或超大规模数据管道中的特有模式。此外,代码坏味往往与具体上下文紧密相关,例如同一段代码在原型阶段可接受,在生产环境中却构成风险,这种动态性增加了分类任务的难度。最后,构建过程中需要平衡隐私保护与数据代表性,避免从开源仓库中提取包含敏感信息的代码片段,进一步限制数据集的覆盖范围。
常用场景
经典使用场景
在机器学习代码质量评估领域,ML-Python-Code-Smells数据集为研究者提供了标注了代码异味(code smells)的Python代码样本,涵盖TensorFlow、pandas和numpy等主流库。其经典使用场景是训练文本分类模型,以自动识别代码中潜在的设计缺陷或反模式,如过长函数、重复逻辑或不当的API调用。该数据集通过细粒度的标签体系,支持多标签分类任务,赋能开发者构建静态分析工具,从而在代码审查或持续集成流程中预警质量风险。
实际应用
在实际工业场景中,该数据集可被集成至代码质量平台(如SonarQube的ML插件),辅助团队在开发阶段捕获性能隐患。例如,通过分析numpy数组的低效索引模式,工具可建议改用向量化操作;针对TensorFlow模型中的重复层定义,提示封装为函数。此外,教育机构可利用该数据集训练学生识别不良编程习惯,提升ML代码的健壮性与可维护性。初创公司也能基于此构建轻量级代码审查机器人,降低人工评审成本。
衍生相关工作
围绕此数据集已衍生出多项经典工作。例如,研究者基于其标签体系设计了ML-SmellDetector框架,结合图神经网络对代码抽象语法树进行异味分类;另有工作提出CodeSmell-Bench基准,扩展了该数据集的样本规模并引入跨语言支持。此外,预训练模型CodeBERT的微调版本在此数据集上取得了优异性能,推动了深度学习在代码质量分析中的应用。这些工作共同确立了ML代码异味检测作为软件工程与人工智能交叉领域的研究热点。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务