ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

如何用小样本训练高精度分类器?Small-Text二元文本分类主动学习实战教程

如何用小样本训练高精度分类器?Small-Text二元文本分类主动学习实战教程 如何用小样本训练高精度分类器Small-Text二元文本分类主动学习实战教程【免费下载链接】small-textActive Learning for Text Classification in Python项目地址: https://gitcode.com/gh_mirrors/smal/small-textSmall-Text 是一个用主动学习Active Learning做文本分类的 Python 库当你的标注数据只有几十、几百条时它能让分类器挑出最有价值的样本来标注从而用很少的小样本训练出高精度的二元文本分类器。本教程带你跑通 Small-Text 的完整主动学习流程无需 GPU 也能上手。 为什么主动学习适合小样本场景传统监督学习要求你先标注成千上万条数据而主动学习换个思路让模型从大量未标注数据中主动挑选最有信息量的样本交给人标注。上图展示了主动学习的威力横轴是已标注样本数纵轴是 Macro-F1 精度。曲线越陡说明每标注一条数据带来的提升越大——这正是小样本场景下主动学习优于随机标注的核心价值。Small-Text 把主动学习拆解为可自由组合的组件查询策略、初始化策略、停止条件全部预实现、开箱即用。 安装一条命令完成Small-Text 要求 Python 3.10纯 CPU 即可运行pip install small-text如果想接入 Hugging Face Transformers 等大模型做文本分类可加一个扩展pip install small-text[transformers] 二元分类实战完整四步流程官方提供了一个基于 20 Newsgroups 数据集baseball vs. hockey 两分类的完整示例入口在 binary_classification.py。数据准备用 TF-IDF 向量化构建训练/测试集见 example_data_binary.py。第 1 步创建分类器工厂分类器负责预测。示例使用带置信度增强的 LinearSVCConfidenceEnhancedLinearSVC再通过SklearnClassifierFactory包装成工厂供每轮迭代创建新模型。第 2 步选择查询策略查询策略Query Strategy决定标哪些样本。最简单的基线是随机采样RandomSampling稍后我们会介绍更强的策略。第 3 步初始化主动学习器把分类器工厂、查询策略、训练集三件套交给核心的PoolBasedActiveLearneractive_learner.py它会维护已标注池与未标注池两个互斥集合active_learner PoolBasedActiveLearner(clf_factory, query_strategy, train) active_learner.initialize(indices_initial) # 用少量初始样本冷启动第 4 步进入查询 → 标注 → 更新循环整个主动学习的精髓就是一个循环binary_classification.pyfor i in range(num_iterations): indices_queried active_learner.query(num_samples20) # 挑 20 条 y 人工标注(indices_queried) # 真实场景由标注员完成 active_learner.update(y) # 模型重新训练 evaluate(active_learner, train, test) # 评估精度运行 10 轮迭代共标注 200 条测试集 F1 通常就能达到很高的水平——对比随机标注 200 条的基线精度优势非常明显。 如何挑选更强的查询策略RandomSampling只是基线。Small-Text 预置了 19 种查询策略v2.0全部在 small_text/query_strategies/ 目录下。二元分类常用的有三种不确定性采样策略定义在 strategies.py策略挑选逻辑适用场景LeastConfidence选模型最不自信的样本通用首选小样本下表现稳定PredictionEntropy选预测概率分布最混乱的样本边界模糊的类别BreakingTies选两类预测概率差距最小的样本二元分类特化边界样本挖掘只需在构建PoolBasedActiveLearner时替换query_strategy参数即可其他代码零改动——这就是组件化设计的好处。 什么时候停止标注标注预算有限时需要知道何时收敛。Small-Text 在 small_text/stopping_criteria/ 下预置了 5 种停止条件例如MaxIterations固定迭代轮数最简单DeltaFScorebase.py验证集 F1 提升低于阈值即停止OverallUncertainty模型整体不确定性不再下降即停止 进阶路线换更强的分类器Small-Text 原生集成 PyTorch 与 Transformers可直接用 KimCNN、SetFit 等模型做主动学习示例见 examples/examplecode/ 目录下的多分类与多标签脚本交互体验官方提供 5 个 Jupyter Notebook含零样本冷启动、SetFit 集成位于 examples/notebooks/从入门到进阶覆盖完整工程化扩展v2.0 新增向量索引HNSW/KNN支持大规模未标注池实现在 small_text/vector_indexes/✅ 小结用 Small-Text 训练小样本高精度分类器的路径非常清晰pip install small-text一键安装三件套组装分类器工厂 查询策略 数据集initialize()冷启动后循环执行query()→ 标注 →update()用停止条件自动判断收敛省下标注预算核心关键词就一句话用主动学习把有限的标注预算花在刀刃上。想深入细节可阅读项目文档 docs/ 或可复现性说明 reproducibility_notes.rst。【免费下载链接】small-textActive Learning for Text Classification in Python项目地址: https://gitcode.com/gh_mirrors/smal/small-text创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表