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

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如何使用Spring Boot RestTemplate解组json列表   计算机上C++ OpenCV项目转换为OpenCV Android的java步骤   Java Spring Telegraf数据表不工作   openurlconnection与connect之间的java差异?   java Solr字段搜索、通配符和转义字符   java如何使用DLFolderLocalServiceUtil类的getFolders()方法?   尝试用Java编写文件   java连续双缓冲解决方案不起作用   两个数组的Java乘积   java Jackson,如何正确编写自定义反序列化程序   java将布尔标志按一定顺序排列以获得更好的性能是否有意义   java Vaadin无缓冲网格无法关闭   java在MySQL中以同一用户身份同时从不同客户端登录安全吗?   java如何使用安卓asynchttp库   java无法在Android中使用AlarmManager停止服务   java在Hibernate的XML配置文件中指定默认值   Spring启动应用程序中的java内存SQLITE不工作   Java代码无法写入文本文件,