1 个不稳定版本
0.1.0 | 2022年3月5日 |
---|
#19 在 #prediction
9KB
174 行
上下文树权重(CTW)
CTW 是由 Frans Willems、Yuri Shtarkov 和 Tjalling Tjalkens 在 1995 年发现的一种轻量级、实用且性能良好的序列预测算法。
它具有良好的查询和更新性能(与上下文长度成线性关系)。
用法
以下示例演示了 Ctw 学习交替二进制序列 101010...
use ctw::CtwTree;
let mut rng = rand::thread_rng();
let mut tree = CtwTree::new(8); // context length is 8
let pattern = [true, false].into_iter().cycle().take(100); // true, false, true, ..
tree.update_batch(&Vec::from_iter(pattern));
let mut predictions = Vec::new();
for _ in 0..10 {
let prediction = tree.sample(&mut rng);
tree.update(prediction);
// convert bool to 1 and 0 for legibility
let bit = if prediction { 1 } else { 0 };
predictions.push(bit);
}
println!("predictions: {predictions:?}"); // --> "prediction: [1, 0, 1, 0, 1, 0, 1, 0, 1, 0]"
assert_eq!(predictions, vec![1,0,1,0,1,0,1,0,1,0]);
资源
依赖项
~315KB