跳转到主要内容

napkinXC是一个用于极端多类和多层次分类的极其简单且快速的库。

项目描述

napkinXC

C++ build Python build Documentation Status PyPI version

napkinXC是一个用于极端多类和多层次分类的极其简单且快速的库,专注于实现概率标签树的各种方法。它允许使用最少的资源,仅用几行代码就训练非常大型数据集的分类器。

目前,napkinXC在Python和C++中实现了以下功能

  • 概率标签树(PLT)和层次softmax(HSM),
  • 不同类型的推理方法(top-k,给定阈值以上等),
  • 带有标签权重的快速预测,例如倾向得分,
  • 高效的在线F-measure优化(OFO)过程,
  • 不同的树构建方法,包括层次k-means聚类方法,
  • 树节点的训练
  • 支持自定义树结构和节点权重,
  • XML仓库下载和加载数据的帮助器,
  • 性能测量帮助器(precision@k,recall@k,nDCG@k,倾向得分精度@k等)。

请注意,此库仍在开发中,也用作实验的基础。API可能在不同版本之间不兼容,一些实验性功能可能未进行文档说明。如有任何疑问或问题,请毫不犹豫地提出问题!

napkinXC遵循MIT许可协议。欢迎对项目的所有贡献!

Python 快速入门和文档

通过pip安装

pip install napkinxc

我们为许多Linux发行版、macOS和Windows提供了预编译的轮子,适用于Python 3.7及以上版本。如果没有适用于您的操作系统(os)的轮子,它将从源代码快速编译。从源代码编译需要现代C++17编译器、CMake、Git和Python 3.7+已安装。

最新(master)版本可以直接从GitHub仓库安装(不推荐)

pip install git+https://github.com/mwydmuch/napkinXC.git

使用示例

from napkinxc.datasets import load_dataset
from napkinxc.models import PLT
from napkinxc.measures import precision_at_k

X_train, Y_train = load_dataset("eurlex-4k", "train")
X_test, Y_test = load_dataset("eurlex-4k", "test")
plt = PLT("eurlex-model")
plt.fit(X_train, Y_train)
Y_pred = plt.predict(X_test, top_k=1)
print(precision_at_k(Y_test, Y_pred, k=1)) 

更多示例可以在python/examples目录下找到,napkinXC的文档可在https://napkinxc.readthedocs.io查看。

可执行文件

napkinXC还可以用作可执行文件,用于使用LIBSVM格式的数据进行模型训练和评估。有关更多详细信息,请参阅文档

参考文献和致谢

此库实现了以下论文中的方法(有关复现结果的脚本,请参阅experiments目录)

PLT模型的另一种实现可在extremeText库中找到,该库实现了在NeurIPS论文中描述的方法。

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

napkinxc-0.6.2.tar.gz (43.6 MB 查看散列值)

上传时间

构建的分布

napkinxc-0.6.2-cp310-cp310-win_amd64.whl (324.0 kB 查看散列值)

上传时间 CPython 3.10 Windows x86-64

napkinxc-0.6.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (540.3 kB 查看散列值)

上传时间 CPython 3.10 manylinux: glibc 2.17+ x86-64

napkinxc-0.6.2-cp310-cp310-macosx_12_0_x86_64.whl (334.8 kB 查看散列值)

上传时间 CPython 3.10 macOS 12.0+ x86-64

napkinxc-0.6.2-cp310-cp310-macosx_11_0_x86_64.whl (344.7 kB 查看哈希值)

上传时间 CPython 3.10 macOS 11.0+ x86-64

napkinxc-0.6.2-cp310-cp310-macosx_10_15_x86_64.whl (349.0 kB 查看哈希值)

上传时间 CPython 3.10 macOS 10.15+ x86-64

napkinxc-0.6.2-cp39-cp39-win_amd64.whl (324.1 kB 查看哈希值)

上传时间 CPython 3.9 Windows x86-64

napkinxc-0.6.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (540.2 kB 查看哈希值)

上传时间 CPython 3.9 manylinux: glibc 2.17+ x86-64

napkinxc-0.6.2-cp39-cp39-macosx_12_0_x86_64.whl (334.9 kB 查看哈希值)

上传时间 CPython 3.9 macOS 12.0+ x86-64

napkinxc-0.6.2-cp39-cp39-macosx_11_0_x86_64.whl (344.8 kB 查看哈希值)

上传时间 CPython 3.9 macOS 11.0+ x86-64

napkinxc-0.6.2-cp39-cp39-macosx_10_15_x86_64.whl (349.0 kB 查看哈希值)

上传时间 CPython 3.9 macOS 10.15+ x86-64

napkinxc-0.6.2-cp38-cp38-win_amd64.whl (324.0 kB 查看哈希值)

上传时间 CPython 3.8 Windows x86-64

napkinxc-0.6.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (540.4 kB 查看哈希值)

上传时间 CPython 3.8 manylinux: glibc 2.17+ x86-64

napkinxc-0.6.2-cp38-cp38-macosx_12_0_x86_64.whl (334.9 kB 查看哈希值)

上传时间 CPython 3.8 macOS 12.0+ x86-64

napkinxc-0.6.2-cp38-cp38-macosx_11_0_x86_64.whl (344.8 kB 查看哈希值)

上传于 CPython 3.8 macOS 11.0+ x86-64

napkinxc-0.6.2-cp38-cp38-macosx_10_15_x86_64.whl (349.0 kB 查看哈希值)

上传于 CPython 3.8 macOS 10.15+ x86-64

napkinxc-0.6.2-cp37-cp37m-win_amd64.whl (325.7 kB 查看哈希值)

上传于 CPython 3.7m Windows x86-64

napkinxc-0.6.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (542.9 kB 查看哈希值)

上传于 CPython 3.7m manylinux: glibc 2.17+ x86-64

napkinxc-0.6.2-cp37-cp37m-macosx_12_0_x86_64.whl (332.3 kB 查看哈希值)

上传于 CPython 3.7m macOS 12.0+ x86-64

napkinxc-0.6.2-cp37-cp37m-macosx_11_0_x86_64.whl (342.4 kB 查看哈希值)

上传于 CPython 3.7m macOS 11.0+ x86-64

napkinxc-0.6.2-cp37-cp37m-macosx_10_15_x86_64.whl (346.2 kB 查看哈希值)

上传于 CPython 3.7m macOS 10.15+ x86-64

支持