【影响因子高】【数据驱动】自组织方向感知数据分区算法研究(Matlab代码实现)

 欢迎来到本博客❤️❤️

博主优势:博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

本文目录如下:

目录

 ⛳️赠与读者

1 概述

2 运行结果

3 参考文献

4 Matlab代码、数据、文章


 ⛳️赠与读者

‍做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。当哲学课上老师问你什么是科学,什么是电的时候,不要觉得这些问题搞笑。哲学是科学之母,哲学就是追究终极问题,寻找那些不言自明只有小孩子会问的但是你却回答不出来的问题。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能让人胸中升起一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它居然给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。

     或许,雨过云收,神驰的天地更清朗.......

1 概述

参考文献:

【影响因子高】【数据驱动】自组织方向感知数据分区算法研究(Matlab代码实现)_第1张图片

自组织方向感知数据分区算法(SODA)

摘要:
本文提出了一种新颖的完全数据驱动算法,名为自组织方向感知(SODA)数据分区,并形成数据云。所提出的SODA算法利用基于余弦相似度的额外方向性组件与传统的距离度量配合工作,从而充分利用空间和角度差异的优势。利用非参数经验数据分析(EDA)运算符,该算法能够自动从实验观察到的数据样本中识别数据模式的主要模态,并将它们用作形成数据云的焦点。此外,还提出了SODA算法的流数据处理扩展。该扩展能够自动调整数据云的结构和参数,以跟随可能变化的数据模式和过程。作为概念验证的数值示例证明了该算法作为一种自主算法的实现,并展示了其高聚类性能和计算效率。

由于数据(流)的数量和复杂性显著增加,加上计算硬件能力的快速发展,现有的数据处理方法需要进行根本性的变革。开发具有自治元素并处理流数据的先进数据处理方法,现在对工业界和数据科学家而言变得越来越重要 [4], [11]。数据分区和聚类技术已广泛应用于经济和社会的不同领域 [3], [16], [35]。然而,尽管被视为无监督的机器学习形式,传统的聚类技术需要先验知识和手工操作。用户需要预先定义多个参数并进行假设,例如带宽 [16]、聚类数 [18], [25], [40]、半径 [15], [21], [28], [41]、网格大小 [31]、距离度量类型 [18], [26], [40]、核类型 [10]。

此外,需要预先定义的参数和阈值通常具有问题,有时还具有用户特定性,这不可避免地导致主观结果;通常忽视和忽略了将聚类和相关数据分区技术描述为无监督的现象。一般来说,聚类算法可能使用各种不同的距离来衡量数据样本之间的分离程度。然而,著名的欧氏距离和马哈alanobis距离度量是最常用的。在一些研究领域,比如自然语言处理(NLP)中,例如,余弦(不)相似性的导数,这是一种伪度量,也被用于机器学习算法进行聚类目的。然而,一旦做出决定,聚类算法只能使用一种类型的距离/不相似度。

Empirical Data Analytics (EDA) [5]-[7] 是一个最近引入的非参数化、不附带假设、完全数据驱动的方法论框架。与传统的概率论或统计学习方法不同,EDA 完全基于对数据的经验观察进行,而不需要任何先验假设和参数。需要强调的是,“非参数化” 的概念意味着我们的算法不受用户或问题特定参数以及对数据生成施加的假设模型的限制,但这并不意味着我们的算法没有元参数来实现数据处理。在本文中,我们介绍了一种名为自组织方向感知(SODA)数据划分的新的自主算法。与聚类不同,数据划分算法首先识别数据分布的峰值/模式,将它们用作焦点 [7],将其他点与它们关联起来形成类似于 Voronoi 镶嵌 [34] 的数据云 [8]。数据云 [8] 可以概括为一种特殊类型的聚类,但具有许多显著的区别。它们是非参数化的,形状没有被预先定义和确定,也不受所使用的距离度量类型的影响(例如,在传统聚类中,使用欧氏距离导出的聚类形状总是超球形的;使用马氏距离形成的聚类总是超椭圆形的,等等)。数据云直接代表了观察数据样本的局部集合特性。

SODA分区算法采用传统的距离度量和基于余弦相似性的角度组件。广泛使用的传统距离度量包括欧氏距离、马氏距离、闵可夫斯基距离,主要衡量向量之间的幅度差异。而余弦相似性则专注于方向上的相似性。提出的算法考虑到空间和角度的差异,深入理解数据集的整体特性。

利用EDA算子 [6], [7],SODA算法能够自主识别基于空间和角度差异的局部典型性的焦点(局部典型性的局部高峰),并基于它们揭示数据的整体特性和相互分布。能够逐步计算EDA量的可能性使我们提出了计算效率高的算法。

此外,还提出了一种针对流数据的SODA算法版本,能够基于初始数据集的离线处理持续处理数据流。这一版本使得SODA算法能够在初始化使用种子数据集后,灵活跟随数据模式的变化。本文的数值实例表明,所提出的自治算法始终优于现有方法,产生高质量的聚类结果并具有高计算效率。

本文的剩余部分组织如下:第2节介绍了所提方法和方法论的理论基础。第3节展示了所提SODA分区算法的主要步骤。第4节描述了流数据处理的扩展。第5节给出了数值实例和性能评估。第6节对本文进行了总结。详细文章见第4部分。

本文包含以下内容:
1. 最近引入的自组织方向感知数据分区算法(SODA);
2. 用于离线数据分区的演示程序;
3. 用于执行离线主要和进化扩展之间混合的演示程序。

SODA算法用于数据分区。

数据分区与聚类非常接近,但最终结果将是具有不规则形状的数据云,而不是具有特定形状的聚类。

【影响因子高】【数据驱动】自组织方向感知数据分区算法研究(Matlab代码实现)_第2张图片

【影响因子高】【数据驱动】自组织方向感知数据分区算法研究(Matlab代码实现)_第3张图片

【影响因子高】【数据驱动】自组织方向感知数据分区算法研究(Matlab代码实现)_第4张图片

2 运行结果

SODA_offline:

【影响因子高】【数据驱动】自组织方向感知数据分区算法研究(Matlab代码实现)_第5张图片

SODA_hybrid:

【影响因子高】【数据驱动】自组织方向感知数据分区算法研究(Matlab代码实现)_第6张图片

部分代码:

clear all
close all
clc
load exampledata
%% Self-organising Direction-Aware Data Partitioning (Hybrid)
%% Use the partitioning result obtained by the offline version as the prime and use the evolving extension to continue the process
%%
% % Seperate the offline training set (Data1) and the online training set (Data2)
Offline_percentage=0.75;
[L,W]=size(data);
L1=round(L*Offline_percentage);
Data1=data(1:1:L1,1:1:W);
L2=L-L1;
Data2=data(L1+1:1:L,1:1:W);
%%
input.GridSize=6; 
input.StaticData=Data1;
% % Input: StaticDat - input data;  GridSize - grid size
% % Use Self-Organising Direction Aware Data Partitioning Algorithm (Offline) as a prime
[output]=SelfOrganisedDirectionAwareDataPartitioning(input,'Offline');
%%
% % Use the Evolving Extension to continue the partitioning process
input.StreamingData=Data2;
input.AllData=data;
input.SystemParams=output.SystemParams;
[output]=SelfOrganisedDirectionAwareDataPartitioning(input,'Evolving');
% % Input: StreamingData       -  input data;  
% %        GridSize            -  grid size; 
% %        SystemParams        -  the offline prime; 
% %        AllData             -  the whole dataset, for creating the final results with the identified prototypes
% % Output:   C            -   Identified prototypes 
% %           IDX          -   Data cloud label (Clustering label, classes) of the data samples
% %           SystemParams -   Meta-parameters of the identified direction-aware planes, important for the subsequent processing with the evolving extension
%% Plot the partitioning result
figure
T=unique(output.IDX);
for i=1:1:length(T)
plot(data(output.IDX==T(i),1),data(output.IDX==T(i),2),'.','linewidth',2,'markersize',15)
hold on
end
hold on
grid on
xlabel('x-axis')
ylabel('y-axis')
set(gca, 'FontSize', 14)
plot(output.C(:,1),output.C(:,2),'k*','linewidth',2,'markersize',8)
hold off

3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

【影响因子高】【数据驱动】自组织方向感知数据分区算法研究(Matlab代码实现)_第7张图片

4 Matlab代码、数据、文章

资料获取,更多粉丝福利,MATLAB|Simulink|Python资源获取

                                                           在这里插入图片描述

你可能感兴趣的:(算法,matlab,人工智能)