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

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


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

1.白鲸算法

白鲸算法原理请参考:https://blog.csdn.net/u011835903/article/details/127642354

2.投影寻踪模型

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

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

步骤 2: 构造投影指标函数。投影寻踪方法就是将 m 维数据 { x i j ∣ j = 1 , 2 , . . . , m } \{x_{ij}|j=1,2,...,m\} {xijj=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=1majxij(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)=σDzs.t.j=1maj2=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=1n(zizavg)2/(n1) (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=1nj=1n(Rrij)o(Rrij)(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代码

  • 28
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 白鲸多目标优化算法(MOA)是一种基于生物白鲸群体中个体行为的启发式算法。其主要思想是通过模拟白鲸的迁徙、通信和行为规律,来实现多目标优化问题的求解。 在白鲸MOA中,使用一群白鲸个体来表示潜在解集。个体的位置表示解向量,而个体的速度表示解向量在搜索过程中的变化趋势。算法的过程包括初始化个体位置和速度,根据适应度函数评估每个个体的适应度值,更新个体的速度和位置,以及更新整个群体中的最优解。 具体而言,白鲸MOA的算法步骤如下: 1. 设定问题的目标函数和约束条件。 2. 初始化种群中每个个体的位置和速度。位置和速度的取值范围根据问题的具体情况而定。 3. 使用适应度函数评估每个个体的适应度值。 4. 根据白鲸个体行为规律,更新个体的速度和位置。速度的更新包括个体自身学习和群体学习两个方面。 a. 个体自身学习:根据当前个体的速度和位置信息,通过一定的策略和公式更新个体的速度和位置。 b. 群体学习:根据整个群体中的最优解,通过一定的策略和公式更新个体的速度和位置。 5. 判断停止准则是否满足,若满足则跳至步骤7;否则跳至步骤3。 6. 输出最优解向量作为最优解近似值。 7. 算法结束。 在Python代码实现方面,可以利用NumPy等库进行矩阵和向量运算,以提高计算效率。具体代码实现可以参考CSDN等网站上的相关教程和代码分享,通过搜索关键词“白鲸多目标优化算法 Python代码”即可找到相关资源。 ### 回答2: 白鲸多目标优化算法是一种基于鲸群捕食行为的算法,它模拟了白鲸在寻找猎物过程中的行为,以解决多目标优化问题。 该算法的主要步骤包括:初始化群体,在每次迭代中计算适应度值并更新个体的位置和速度,根据适应度值进行筛选和选择,直到收敛或达到最大迭代次数。 在白鲸多目标优化算法中,个体的位置表示一个解,也即潜在的最优解,而个体的速度表示在搜索空间中的步长。每个个体根据自己的速度更新自己的位置,同时也会受到群体中最优解的吸引力的影响。 在每次迭代中,根据多个目标函数的值来评估个体的适应度值。然后,根据适应度值对个体进行筛选和选择操作,选择出最优解。 白鲸多目标优化算法的优势在于能够同时考虑多个目标函数,并找到一组近似最优解,而不是一个单一最优解。它适用于多目标优化问题,例如工程优化、金融投资组合优化等。 在CSDN上,可以找到许多用Python实现的白鲸多目标优化算法代码示例,这些代码通常会包括初始化群体、计算适应度值、更新位置和速度、筛选和选择等步骤的代码。可以通过搜索相关关键词来找到这些代码示例,以便更深入地了解算法的实现细节和应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智能算法研学社(Jack旭)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值