首页 > 编程语言 >基于供需算法的投影寻踪模型 - 附代码

基于供需算法的投影寻踪模型 - 附代码

时间:2024-07-09 20:58:03浏览次数:14  
标签:投影 算法 供需 寻踪 最优 高维

基于供需算法的投影寻踪模型 - 附代码

文章目录


摘要:投影寻踪(projection pursuit,PP)是处理和分析高维数据的一类新兴统计方法,其基本思想是将高维数据投影到低维子空间上,并在该子空间上寻找出能够反映原高维数据结构或特征的投影,从而达到研究和分析高维数据的目的 ,在克服“维数祸根”以及解决小样本、超高维等问题中具有明显优势。在实际应用中,投影寻踪模型最佳投影方向 a 的选取对于投影寻踪模型的评估精度及评估结果有着关键性影响。本文利用供需算法来对最佳投影方向a进行参数寻优。

1.供需算法

供需算法原理请参考:https://blog.csdn.net/u011835903/article/details/118800934

2.投影寻踪模型

投影寻踪模型的基本原理是将高维数据通过某种组合投影到低维子空间上,通过极小化投影指标来反映原高维数据结构或特征,并在低维空间上对数据结构进行分析,以达到研究和分析高维数据的
目的,其简要算法过程如下:

步骤 1: 数据预处理。对评估数据集进行归一化处理。

步骤 2: 构造投影指标函数。投影寻踪方法就是将 m 维数据 { x i j ∣ j = 1 , 2 , . . . , m } \{x_{ij}|j=1,2,...,m\} {xij​∣j=1,2,...,m}综合乘以 a = ( a 1 , a 2 , . . . , a m ) a=(a_1,a_2,...,a_m) a=(a1​,a2​,...,am​)为投影方向的一维投影值 z i z_i zi​:
z i = ∑ j = 1 m a j x i j (1) z_i=\sum_{j=1}^ma_jx_{ij}\tag{1} zi​=j=1∑m​aj​xij​(1)
式中 x i j x_{ij} xij​ 为第 i i i组第 j j j个评估指标值; a a a为单位向量。

步骤 3: 优化投影指标函数。当投影指标函数取得最大值时,所对应的$a 方向为最能反映数据特征的最优投影方向。因此搜寻最优投影方向问题就转化为非线性最优求解问题,其目标函数 方向为最能反映数据特征的最优投影方向。因此搜寻最优投影方向问题就 转化为非线性最优求解问题,其目标函数 方向为最能反映数据特征的最优投影方向。因此搜寻最优投影方向问题就转化为非线性最优求解问题,其目标函数Q(a)$及约束条件为:
{ m a x Q ( a ) = σ D z s . t . ∑ j = 1 m a j 2 = 1 , a j ∈ [ 0 , 1 ] (2) \begin{cases} maxQ(a)=\sigma D_z\\ s.t.\sum_{j=1}^m a_j^2=1,a_j\in[0,1] \end{cases}\tag{2} {maxQ(a)=σDz​s.t.∑j=1m​aj2​=1,aj​∈[0,1]​(2)
其中:
σ = ∑ i = 1 n ( z i − z a v g ) 2 / ( n − 1 ) (3) \sigma = \sqrt{\sum_{i=1}^n(z_i-z_{avg})^2/(n-1)}\tag{3} σ=i=1∑n​(zi​−zavg​)2/(n−1) ​(3)

D z = ∑ i = 1 n ∑ j = 1 n ( R − r i j ) o ( R − r i j ) (4) D_z=\sum_{i=1}^n\sum_{j=1}^n(R-r_{ij})o(R-r_{ij})\tag{4} Dz​=i=1∑n​j=1∑n​(R−rij​)o(R−rij​)(4)

式中: σ σ σ、 D z D_z Dz​ 分别为投影值 z i z_i zi​的标准差和局部密度; z a v g z_{avg} zavg​为序列 z i z_i zi​?的平均值; R R R为局部密度的窗口半径; r i j r_{ij} rij​ 为样本之间的距离; o ( τ ) o(τ) o(τ)?为单位阶跃函数,当 τ ≥ 0 τ≥0 τ≥0 时,其值为 1, τ < 0 τ<0 τ<0 时,其值为 0; n n n 为评估样本总数。

3.供需算法结合投影寻踪

从2节中可以知道,参数a为我们要寻优的对象,于是设置供需的维度为样本组数。适应度函数为投影寻踪目标函数 Q ( a ) Q(a) Q(a).
f i t n e s s = Q ( a ) (5) fitness = Q(a) \tag{5} fitness=Q(a)(5)

4.测试结果

设置一组[0,1]之间的案例数据如下:

%导入数据,每列为指标,每行为样本数据,计算每个样本投影评价值
data =[0.71   0.00   0.37   0.01   0.15   0.00   0.37 
0.14   0.59   0.00   1.08   1.00   0.59   0.97 
0.57   0.43   0.11   0.98   0.01   0.73   0.83 
1.00   0.40   0.69   0.80   0.28   1.00   0.40 
0.73   0.66   1.00   0.00   0.88   0.90   0.53 
0.00   0.74   0.29   0.12   0.75   0.06   0.00 
0.84   0.86   0.86   0.61   0.97   0.64   0.50 
0.11   1.00   0.37   0.08   0.49   0.50   0.73 
0.27   0.09   0.49   0.39   0.94   0.86   0.40 
0.70   0.36   0.49   0.58   0.18   0.45   1.00 ];

供需参数设置如下:

SearchAgents_no=30; %种群数量
Max_iteration = 2000;%最大迭代次数
dim = size(data,2);
lb = 0.01;%下边界
ub = 1;%上边界
fobj = @(a) fun(data,a);
[Best_score,Best_pos,SSA_curve]=SSA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj); %开始优化

投影寻踪结果如下:

在这里插入图片描述

5.参考文献

[1]崔东文.鸡群优化算法-投影寻踪洪旱灾害评估模型[J].水利水电科技进展,2016,36(02):16-23+41.

6.Matlab代码

标签:投影,算法,供需,寻踪,最优,高维
From: https://blog.csdn.net/u011835903/article/details/140279088

相关文章

  • 了解Adam和RMSprop优化算法
    优化算法是机器学习和深度学习模型训练中至关重要的部分。本文将详细介绍Adam(AdaptiveMomentEstimation)和RMSprop(RootMeanSquarePropagation)这两种常用的优化算法,包括它们的原理、公式和具体代码示例。RMSprop算法RMSprop算法由GeoffHinton提出,是一种自适应学习率的方......
  • 代码随想录算法训练营第六十三天 | prim算法、kruskal算法、复习
    53.寻宝—prim算法题目链接:https://kamacoder.com/problempage.php?pid=1053文档讲解:https://programmercarl.com/kamacoder/0053.%E5%AF%BB%E5%AE%9D-prim.html思路本题是最小生成树的模板题,最小生成树可以使用prim算法,也可以使用kruskal算法计算出来。prim算......
  • 比较两种计算1到n的累加和的算法的执行效率,理解算法的时间复杂度分析和代码性能优化
    一、实验目的:通过这个实验,旨在比较两种计算1到n的累加和的算法的执行效率,进一步理解算法的时间复杂度分析和代码性能优化。    二、实验内容:1.编写两个函数Sum1和Sum2,分别用于计算1到n的累加和;2.在主函数中调用这两个函数,并通过循环计算1到n的各个累加和;3.使用cloc......
  • 回溯算法-以学生就业管理系统为例
    1.回溯算法介绍1.来源回溯算法也叫试探法,它是一种系统地搜索问题的解的方法。用回溯算法解决问题的一般步骤:1、针对所给问题,定义问题的解空间,它至少包含问题的一个(最优)解。2、确定易于搜索的解空间结构,使得能用回溯法方便地搜索整个解空间。3、以深度优先的方式搜索......
  • Dotnet算法与数据结构:Hashset, List对比
    哈希集A是存储唯一元素的集合。它通过在内部使用哈希表来实现这一点,该哈希表为基本操作(如添加、删除和包含)提供恒定时间平均复杂度(O(1))。此外,不允许重复元素,使其成为唯一性至关重要的场景的理想选择。另一方面,表示按顺序存储元素的动态数组。它允许重复元素并提供对元素的索引......
  • 匈牙利算法——棋盘覆盖
    题目描述棋盘覆盖给定一个N行N列的棋盘,已知某些格子禁止放置。求最多能往棋盘上放多少块的长度为2、宽度为1的骨牌,骨牌的边界与格线重合(骨牌占用两个格子),并且任意两张骨牌都不重叠。输入格式第一行包含两个整数N和t,其中t为禁止放置的格子的数量。接下来t行每行包含两个整数x......
  • 【TCN-BiGRU-Attention回归预测】基于被囊群优化算法TSA优化时间卷积双向门控循环单元
        ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。......
  • 【TCN-BiGRU-Attention回归预测】基于斑马优化算法ZOA优化时间卷积双向门控循环单元融
        ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。......
  • SAP CPI 之使用国密算法实现SM系列算法加解密
    先将国密算法项目打成jar包gmsm-java:国密算法-JAVA版。包含非对称算法SM2、对称算法SM4、摘要算法SM3。还包含传输加解密(SM2+SM3+SM4)、数据库加解密(SM3+SM4)、配置文件加解密(SM3+SM4)的组合使用。(gitee.com)在CPIScriptCollection中导入jar包,选择Upload,选中导入的jar包......
  • 代码随想录算法训练营第7天 | 哈希表和双指针结合、三数和四数之和
    2024年7月9日题454.四数相加II使用哈希表,分为两块,前两个数组找出各种情况,统计次数,时间复杂度为O($n^2$),后两个数组在找到各种情况的时候直接用哈希表去处前两个数组符合的相应次数即可。classSolution{publicintfourSumCount(int[]nums1,int[]nums2,int[]nums3,......