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

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

时间:2024-07-09 20:58:18浏览次数:13  
标签:JAYA 投影 算法 寻踪 最优 高维

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

文章目录


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

1.JAYA算法

JAYA算法原理请参考:https://blog.csdn.net/u011835903/article/details/115572600

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.JAYA算法结合投影寻踪

从2节中可以知道,参数a为我们要寻优的对象,于是设置JAYA的维度为样本组数。适应度函数为投影寻踪目标函数 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 ];

JAYA参数设置如下:
在这里插入图片描述

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代码

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

相关文章

  • 基于供需算法的投影寻踪模型 - 附代码
    基于供需算法的投影寻踪模型-附代码文章目录基于供需算法的投影寻踪模型-附代码1.供需算法2.投影寻踪模型3.供需算法结合投影寻踪4.测试结果5.参考文献6.Matlab代码摘要:投影寻踪(projectionpursuit,PP)是处理和分析高维数据的一类新兴统计方法,其基本思想是将高......
  • Unity Shader技巧:实现带投影机效果,有效避免边缘拉伸问题
    这个是原始的projector投影组件,边缘会有拉伸经过修改shader后边缘就没有拉伸了(实现代码在文章最后)这个着色器通过检查每个像素的UV坐标是否在定义的边界内,来确定是否应用黑色边框。如果UV坐标处于边缘区域,那么像素颜色会被强制设为黑色,从而在投影图像周围形成一个黑色......
  • Johnson-Lindenstrauss Lemma 随即投影
    michael 作者忘忧草不是大佬。我感觉我说的挺具体的了,一共就两行代码,一行构建随机矩阵,一行做矩阵乘法。你会python的话可以这么写:g_matrix=numpy.random.normal(size=(n,m))output=numpy.matmul(input,g_matrix)2021-12-08​回复​1mic......
  • webgis 之 地图投影
    地图投影什么是地图投影目的种类等角投影的分类墨卡托投影Web墨卡托投影参考小结为了更好地展示地球上的数据,需要将地球投影到一个平面上。地图投影是一个数学问题,按照一定的几何关系,将地球上的经纬度坐标映射到一个平面上的坐标。地球投影有很多种,每种投影都有自......
  • 透视投影矩阵的推导
    透视投影矩阵的推导本文完全copy自透视投影矩阵的推导-bluebean-博客园(cnblogs.com)只是用markdown将公式全部又打了一遍图1:ViewFrustumPerspectiveProjectionMatrix的任务就是把位于视锥体内的物体的顶点(x,y,z)坐标映射到[-1,1]范围。(如果是DX可......
  • BEV投影
    opencv对于取图上像素的at()操作,编译器自解释:inlinecv::Vec3b&cv::Mat::at<cv::Vec3b>(introw,intcol) for(intcol{0};col<pic_cam.cols;col++){for(introw{0};row<pic_cam.rows;row++){cv::Matpoint_mat=(cv::Mat_<double>(3,......
  • 计算机图形学入门05:投影变换
    1.投影变换    上一章已经介绍了投影变换,就是将三维图像投影到二维平面上,而投影变换又分为正交投影(OrthographicProjection)和透视投影(Perspective Projection)。如下图:正交投影        没有近大远小的现象,无论图形与视点距离是远是近,图形多大画出来的......
  • MongoDB CRUD操作:投影Project详解
    MongoDBCRUD操作:投影Project详解文章目录MongoDBCRUD操作:投影Project详解返回文档的全部字段返回指定的字段和_id字段不输出_id字段指定排除的字段返回内嵌文档中的指定字段禁止内嵌文档中的特定字段数组中内嵌文档的投影聚合表达式的投影字段默认情况下,MongoDB查......
  • 为什么在相机进行投影变换前要进行齐次操作?
    https://blog.csdn.net/zhuiqiuzhuoyue583/article/details/95230246#:~:text=这就是引入齐次坐标的作用,把各种变换都统一了起来,即把缩放,旋转,平移等变换都统一起来,都表示成一连串的矩阵相乘的形式。保证了形式上的线性一致性。简短的解释:齐次坐标就是将一个原本是n维的向量......
  • TextMeshPro - 材质参数 - 描边,投影,外发光,内发光
    有点类似photoshop中的图层样式,利用好也能制作出不错的艺术字效果。 Face: 文字外观 color: 文字颜色softness: 羽化程度 dilate: 外扩(变粗)或内收(变细)Texture: 贴图填充在字形内SpeedX: 贴图在x方向移动  Outline: 居中描边color: 描边颜色T......