紧凑预测树:一种精确序列预测的无损模型

cpt的Python项目详细描述


cpt

本项目是一个cython开源的紧凑预测树算法的多线程实现。

cpt是一种序列预测算法。它是一个高度可解释的模型,擅长用有限的字母表预测序列的下一个值。然而,给定一个序列,cpt不能预测这个序列中已经存在的元素。cpt需要一个tuning

此实现基于以下研究论文

http://www.philippe-fournier-viger.com/ADMA2013_Compact_Prediction_trees.pdf

http://www.philippe-fournier-viger.com/spmf/PAKDD2015_Compact_Prediction_tree+.pdf

安装

您只需使用pip install cpt

对于windows用户,这些源是预编译的。对于其他人,您需要安装cython

简单示例

您可以使用以下代码测试模型

fromcpt.cptimportCptmodel=Cpt()model.fit([['hello','world'],['hello','this','is','me'],['hello','me']])model.predict([['hello'],['hello','this']])# Output: ['me', 'is']

对于与sklearn兼容的示例,您应该检查documentation

功能

列车

模型可以用fit方法训练。

如果需要,可以用同样的方法重新训练模型。它将新序列添加到模型中,而不删除旧序列。

多线程

默认情况下,使用openmp的多线程启动预测。

也可以在单个线程中使用predict方法中的multithread=False选项启动预测。

通过设置以下环境变量OMP_NUM_THREADS,可以控制线程数。

酸洗

您可以对模型进行pickle以保存它,然后通过pickle库加载它。

fromcpt.cptimportCptimportpicklemodel=Cpt()model.fit([['hello','world']])dumped=pickle.dumps(model)unpickled_model=pickle.loads(dumped)print(model==unpickled_model)

可解释性

cpt类有几种方法来解释这些预测。

通过model.compute_noisy_items(noise_ratio),您可以看到哪些元素被认为是noise(序列中的低存在)。

您可以使用model.retrieve_sequence(id)检索经过训练的序列。

您可以使用find_similar_sequences(sequence)找到类似的序列。

您还不能使用降噪技术自动检索所有类似的序列。

调谐

cpt有3个需要调整的元参数。您可以在documentation中检查如何调整它们。要进行优化,可以使用sklearn中的model_selection模块,可以找到一个关于如何进行优化的示例here

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为什么程序显示空结果?   java应用程序在测试设备上调试时工作正常,但在发布版apk中没有,它没有获得post。来自firebase的类变量   java Android:从主活动按钮确定在listview中选中哪个复选框   在Spring中添加@OneToOne注释时启动ApplicationContext时发生java错误   用JAVA Android实现矩阵计算的最快方法   SpringJava语义有没有更好的编写方法?   java从hashmap中减去两个值后返回最小差值的键?   Java中的静态初始化顺序:Netty 4.0.7的例外   java如何检查用户输入是否为字符串   循环Java计数单词索引   java如何使用以下代码将视频流传输到Android异步Http服务器?   java如何在jtable的所有行中循环   java如何使用maven将unicode插入mysql   java使用安卓加速远程数据检索   java试图模拟麦克风(javax.sound.sampled)   swing SwingWorker从不归还任何东西?(爪哇)   首次在Android Studio上未加载java LibGDX文件   java如何在多个Mysql服务器上设置限制和偏移?   如何防止从java连接到mongodb时登录控制台?