ALiPy 主动学习工具包使用教程
2024-08-10 03:25:48作者:秋泉律Samson
项目介绍
ALiPy 是一个基于 Python 实现的主动学习工具包,由南京航空航天大学计算机科学与技术学院模式分析与机器智能实验室开发并开源。该工具包内置了 20 余种主动学习算法,并提供了数据处理、结果可视化等工具。ALiPy 支持多种主动学习场景,如标注代价敏感、噪声标注者、多标记查询等,用户可以自由地组织自己的项目,不必继承任何接口来实现自己的算法与替换项目中的部件。
项目快速启动
安装 ALiPy
你可以通过 pip 安装 ALiPy:
pip install alipy
或者从源码安装:
git clone https://github.com/NUAA-AL/ALiPy.git
cd ALiPy
python setup.py install
基本使用示例
以下是一个简单的 ALiPy 使用示例,展示了如何加载数据、初始化模型和使用主动学习策略:
import alipy
from alipy import ToolBox
# 初始化工具箱
alibox = ToolBox(X=X_train, y=y_train, X_eval=X_test, y_eval=y_test)
# 划分初始训练集和未标记池
train_idx, unlab_idx = alibox.split_holdout(test_ratio=0.3)
# 初始化主动学习策略
strategy = alibox.get_query_strategy(strategy_name='QueryInstanceUncertainty')
# 初始化分类模型
model = alibox.get_default_model()
# 开始主动学习循环
for round in range(10):
# 选择样本
queried_idx = strategy.select(labeled_idx=train_idx, unlabeled_idx=unlab_idx, model=model)
# 更新训练集和未标记池
train_idx.update(queried_idx)
unlab_idx.difference_update(queried_idx)
# 训练模型
model.fit(X=alibox.X[train_idx], y=alibox.y[train_idx])
# 评估模型
performance = model.evaluate(X=alibox.X_eval, y=alibox.y_eval)
print(f'Round {round}: {performance}')
应用案例和最佳实践
案例一:噪声标注者环境下的主动学习
在噪声标注者环境下,ALiPy 提供了特定的策略来处理标注的不确定性。以下是一个示例代码:
# 初始化噪声标注者策略
strategy = alibox.get_query_strategy(strategy_name='QueryInstanceNoisyOracles')
# 其他步骤与基本示例相同
案例二:多标记查询
在多标记查询场景中,ALiPy 支持同时查询多个样本进行标注。以下是一个示例代码:
# 初始化多标记查询策略
strategy = alibox.get_query_strategy(strategy_name='QueryInstanceMultiLabel')
# 其他步骤与基本示例相同
典型生态项目
1. PyRelationAL
PyRelationAL 是一个高效构建主动学习管道的 Python 库,与 ALiPy 结合使用可以进一步提升主动学习的效率和灵活性。
2. sklearn
ALiPy 支持与 sklearn 中的分类模型无缝集成,用户可以使用 SVM、随机森林等模型进行主动学习实验。
3. TensorFlow
对于深度学习模型,ALiPy 也支持与 TensorFlow 集成,用户可以使用深度神经网络进行主动学习。
通过以上模块的介绍和示例代码,用户可以快速上手并深入了解 ALiPy 主动学习工具包的使用和应用场景。
登录后查看全文
热门项目推荐
相关项目推荐
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0231
GLM-5.2智谱开源 GLM-5.2,这是针对长文本任务的最新旗舰模型。相较于前代产品 GLM-5.1,它在长文本任务处理能力上实现了显著飞跃,并且首次在稳定的 100 万 token 上下文中提供这一能力。Jinja00
JoyAI-VL-Interaction-Preview京东开源首个开源、视觉驱动的实时交互模型——它能实时监控视频流,并自主决定何时发言、保持沉默或委托任务。Jinja00
cann-learning-hubCANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。Jupyter Notebook0150
kornia🐍 空间人工智能的几何计算机视觉库Python02
PaddleParallel Distributed Deep Learning: Machine Learning Framework from Industrial Practice (『飞桨』核心框架,深度学习&机器学习高性能单机、分布式训练和跨平台部署)C++02
项目优选
收起
暂无描述
Dockerfile
782
5.11 K
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
892
2.06 K
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
471
473
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
710
1.43 K
deepin linux kernel
C
32
16
Ascend Extension for PyTorch
Python
763
972
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
2.27 K
681
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.11 K
1.15 K
本仓库是 Flutter SDK 与 Flutter Engine 的 OpenHarmony 适配版本,由 CPF-Flutter 团队维护。开发者可使用熟悉的 Flutter 技术栈开发 OpenHarmony 应用,3.35.7 及以后的适配版本可基于本仓库源码构建支持 OpenHarmony 的 Flutter Engine。
Dart
1.04 K
272
Claude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed.
Get Started
Rust
2.18 K
231