在Matlab中进行时间序列的相似性搜索。可能吗?我找不到Matlab中的R树实现

我想在Matlab中实现相似性搜索。我想知道这是不是可能的?

我的计划是使用两种流行的相似性度量方法:欧几里得距离和动态时间规整。这两种方法都将应用于时间序列数据集。此时我的问题是,我如何评估这两种度量方法的性能和准确性?我看到一些文献说我应该使用K-NN算法。

然后,我计划对时间序列数据集进行降维处理。在降低数据集的维度后,我需要使用R树或任何可用的索引技术对数据集进行索引。

然而,我的难题在于,要做到这一点,我需要R树的Matlab代码,而我在互联网上几乎找不到任何相关代码…

我确实意识到,大多数相似性搜索的实现都是用C++、C和Java编写的…但我不熟悉这些语言。我希望能在Matlab中实现这些…有哪位大师能帮我解决这个问题吗?

另外,我可以进行哪些评估来评估每种算法的性能呢?

谢谢


回答:

最近(我认为是R2010a版本),MATLAB在统计工具箱中添加了新的函数,用于使用KD树(一种类似于R树的空间索引方法)进行k-最近邻(kNN)搜索。例如:

load fisheriris                            % 鸢尾花数据集Q = [6 3 4 1 ; 5 4 3 2];                   % 查询点% 构建kd树knnObj = createns(meas, 'NSMethod','kdtree', 'Distance','euclidean');% 查找Q的k=5个最近邻[idx Dist] = knnsearch(knnObj, Q, 'K',5);

请参考此页面以获取详细描述。

另外,如果你有图像处理工具箱,它包含了(已经很长时间了)kd树和kNN搜索的实现。不过它们是私有函数:

[matlabroot '\images\images\private\kdtree.m'][matlabroot '\images\images\private\nnsearch.m']

为了比较你的两种方法(动态时间规整欧几里得距离),你可以设计一个经典的分类问题;给定一组标记的训练/测试时间序列,任务是通过使用kNN找到最相似的序列来预测每个测试序列的标签,然后预测多数类别。要评估性能,可以使用分类标准度量,如准确率/错误率等。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注