跳转到主要内容

用Python和Cython编写的隐藏(状态)条件随机字段(HCRF)实现。

项目描述

pyhcrf

用Python和Cython编写的隐藏(状态)条件随机字段(HCRF)。

TravisCI AppVeyor Coverage License PyPI Wheel Python Versions Python Implementations Source GitHub issues Changelog

此包是原版pyhcrf的分支,由Dirko Coetsee编写,增加了Python 3和Windows支持,并由Martin Larralde维护了一个更干净的代码库。

概述

pyhcrf实现了一个HCRF模型,具有类似于sklearn的接口。该模型根据潜在状态序列对序列进行分类。此包提供了从示例序列中学习参数以及对新序列进行分类的方法。请参阅Wang等人撰写的论文和Dirko Coetsee撰写的报告

状态

每个状态编号为 0, 1, ..., num_states - 1。状态机从 state 0 开始,以 num_states - 1 结束。当前状态转换受限于,在每个输入序列元素上,状态机要么保持在当前状态,要么前进到表示为下一个数字的状态。此默认值可以通过设置 transitions 和相应的 transition_parameters 属性来更改。

依赖关系

pyhcrf 依赖于 numpyscipy(用于 LM-BFGS 优化器和 scipy.sparse),并且构建源代码还需要 cython

示例

X = [array([[ 1. , -0.82683403,  2.48881337],
            [ 1. , -1.07491808,  1.55848197],
            [ 1. ,  6.7814359 ,  4.01074595]]),
     array([[ 1. , -3.01165932, -2.15972362],
            [ 1. , -3.41449473, -2.2668825 ]]),
     array([[ 1. , -2.64921323, -1.20159641],
            [ 1. ,  0.31139394,  1.58841159]]),
     array([[ 1. ,  5.85226017,  2.43317499],
            [ 1. , -1.57598266, -2.07585778]]),
     array([[ 1. , -0.32999744, -2.70695361],
            [ 1. ,  0.44311988,  0.36400733]]),
     array([[ 1. , -0.05301562,  3.95424435],
            [ 1. ,  3.04540498, -3.25040276]]),
     array([[ 1. , -4.29117715,  0.9167861 ],
            [ 1. , -3.22775884,  1.83277224]]),
     array([[ 1. , -2.80856491,  1.95630489],
            [ 1. ,  1.62290542, -0.7457237 ]]),
     array([[ 1. , -2.32682366,  2.60844469],
            [ 1. ,  2.12320609,  1.04483217]]),
     array([[ 1. , -4.17616178,  4.09969658],
            [ 1. ,  0.67287935, -5.67652159]])]

y = [0, 1, 0, 1, 1, 0, 1, 0, 0, 0]

Training examples

>>> from pyhcrf import HCRF
>>> from sklearn.metrics import confusion_matrix

>>> model = HCRF(num_states=3, random_seed=3, optimizer_kwargs={'maxfun':200})
>>> model.fit(X, y)
>>> pred = model.predict(X)
>>> confusion_matrix(y, pred)
array([[12,  0],
      [ 0,  8]])

安装

下载/克隆并运行

python setup.py build_ext --inplace
python setup.py install

许可

原始代码以及在此分支中随后做出的所有贡献均使用 BSD-2-Clause 许可。

项目详情


下载文件

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

源代码分发

pyhcrf-0.1.0.tar.gz (15.2 kB 查看哈希)

上传时间 源代码

构建版本

pyhcrf-0.1.0-pp36-pypy36_pp73-manylinux2010_x86_64.whl (113.3 kB 查看哈希)

上传时间 PyPy manylinux: glibc 2.12+ x86-64

pyhcrf-0.1.0-pp36-pypy36_pp73-manylinux1_x86_64.whl (113.3 kB 查看哈希)

上传时间 PyPy

pyhcrf-0.1.0-cp38-cp38-win_amd64.whl (265.2 kB 查看哈希)

上传时间 CPython 3.8 Windows x86-64

pyhcrf-0.1.0-cp38-cp38-manylinux2010_x86_64.whl (573.4 kB 查看哈希)

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

pyhcrf-0.1.0-cp38-cp38-manylinux1_x86_64.whl (573.4 kB 查看哈希)

上传时间 CPython 3.8

pyhcrf-0.1.0-cp38-cp38-macosx_10_13_x86_64.whl (118.4 kB 查看哈希)

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

pyhcrf-0.1.0-cp37-cp37m-win_amd64.whl (263.0 kB 查看哈希)

上传于 CPython 3.7m Windows x86-64

pyhcrf-0.1.0-cp37-cp37m-manylinux2010_x86_64.whl (509.4 kB 查看哈希值)

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

pyhcrf-0.1.0-cp37-cp37m-manylinux1_x86_64.whl (509.4 kB 查看哈希值)

上传于 CPython 3.7m

pyhcrf-0.1.0-cp37-cp37m-macosx_10_13_x86_64.whl (116.8 kB 查看哈希值)

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

pyhcrf-0.1.0-cp36-cp36m-win_amd64.whl (263.0 kB 查看哈希值)

上传于 CPython 3.6m Windows x86-64

pyhcrf-0.1.0-cp36-cp36m-manylinux2010_x86_64.whl (509.7 kB 查看哈希值)

上传于 CPython 3.6m manylinux: glibc 2.12+ x86-64

pyhcrf-0.1.0-cp36-cp36m-manylinux1_x86_64.whl (509.7 kB 查看哈希值)

上传于 CPython 3.6m

pyhcrf-0.1.0-cp36-cp36m-macosx_10_13_x86_64.whl (118.5 kB 查看哈希值)

上传于 CPython 3.6m macOS 10.13+ x86-64

pyhcrf-0.1.0-cp35-cp35m-win_amd64.whl (261.8 kB 查看哈希值)

上传于 CPython 3.5m Windows x86-64

pyhcrf-0.1.0-cp35-cp35m-manylinux2010_x86_64.whl (504.9 kB 查看哈希值)

上传于 CPython 3.5m manylinux: glibc 2.12+ x86-64

pyhcrf-0.1.0-cp35-cp35m-manylinux1_x86_64.whl (504.9 kB 查看哈希值)

上传于 CPython 3.5m

pyhcrf-0.1.0-cp35-cp35m-macosx_10_13_x86_64.whl (116.3 kB 查看哈希值)

上传于 CPython 3.5m macOS 10.13+ x86-64