基于 K 均值聚类的径向基RBF神经网络优化(Matlab代码实现)

简介: 基于 K 均值聚类的径向基RBF神经网络优化(Matlab代码实现)

💥1 概述

1.1 RBF神经网络模型

RBF神经网络是一种常见的三层结构神经网络,主要包括输入层、隐含层及输出层,如图1所示。RBF神经网络的作用原理,是将径向基函数(RBF)作为网络第二层隐含层的节点函数,以此构成隐含层空间。当数据被输入网络后,输入层会把数据传递给隐含层。经过隐含层节点函数计算之后,再将数据传递给输出层。通常而言,隐含层节点的计算函数是非线性的。当隐含层的节点数增加时,处理数据的次数也随之增加,使RBF网络得到的结果也就更加精确。但是,过多的节点数会减低网络的执行效率。第三层输出层的节点函数通常是线性的,其作用通常是对隐含层函数计算所得结果进行加权处理,将数据处理成方便输出,容易读懂的形式。


在 RBF神经网络中,设输入层节点个数为Ⅰ,隐含层节点数为M,输出层节点数为N,输入量为x.当x经输入到模型后,会经过Ⅰ次传递。因此定义x为Ⅰ维输入量。设输出量为y,同理y会经过N次输出,称y为N维输出量。一般来说,采用高斯激活函数作为隐含层节点的作用函数,该函数在RBF网络隐含层第i个节点输出为:


1.2 K-均值聚类算法

K均值聚类算法是目前应用最为广泛的划分聚类算法。其算法具有原理简单、模型清晰、操作方便、计算快速等特点,可以大规模同时对多种类型的数据进行聚类,快速挖掘出数据中隐含的关系和结构。


K均值聚类算法是判断基于数据到中心点的距离来区分数据的所属类别。其把N个对象划分)成k个簇,用簇中对象的均值表示每个簇的中心点(质心),利用合适的距离计算公式,计算出数据与聚类中心的距离,将其划分到合适的聚类中。当所有数据聚类结束后,检查聚类中心是否已收敛,如果收敛则终止,否则将继续迭代。


📚2 运行结果

部分代码:

function [C]=K_Means(X,M,D)
%% Function for Finding K-Means in the X data
% X is the Data Matrix
% M is the Number of Means Required (K)
temp=randperm(size(X,1));   % Random Permutation of Random index to pick data point
C=X(temp(1:M),:);           % Initial Guess for Centers is the random data point
J=[];                       % Cost Function to be minimized
k=1;                        % Iteration number
while(1)
    J(k)=0; 
    S=zeros(M,size(X,2));   % Sum of values fall in K Centers
    indeX=[];               % Index of the closest Center to the test data point
    for i=1:size(X,1)
        temp=0;             % temporary Variable for storing distance to centers
        for j =1:M
        temp(j)=(norm((X(i,:)-C(j,:))).^2);
        end
        [tmp,ind]=min(temp);  % Finding the closest Center for ith data point
        indeX=[indeX ind];  % Index of the closest Center to the test data point
        S(ind,:)=S(ind,:)+X(i,:);   % Sum of values fall in K Centers
        J(k)=J(k)+sum(temp); % Cost Function
    end
    for j=1:M
            N(j)=length(find(indeX==j)); % Number of Values closest to jth Center
    end
    Ctemp=[];   % Temporary Values for Center that will be updated only if different
    for l=1:size(X,2)
    Ctemp=[Ctemp S(:,l)./N'];
    end
    %% Check for update and stoping condition
    % Temporary Values for Center that will be updated only if different
    if(sum(sum(~(C==Ctemp)))~=0)
        C=Ctemp;
    else
        break
    end 
    %% Optional Animated Graph for Data only work if number of argument to function > 2
    % START
    if (nargin>2)
    scatter(X(:,1),X(:,2))
    hold on
    scatter(C(:,1),C(:,2),'filled')
    hold off
    pause(0.25)
    end
    % END
k=k+1;
end
%% Optional Graph for Cost only work if number of argument to function > 2
% START
if (nargin>2)
figure,plot(J)
xlabel('Iterations');
ylabel('Cost');
title('Cost Function');
end
% END

🎉3 参考文献

[1]张天逸,孙毅然,刘凡琪,梁悦祺,林永杰,马明辉.基于K均值聚类算法与RBF神经网络的交通流预测方法[J].智能计算机与应用,2020,10(08):148-151.

🌈4 Matlab代码实现


相关文章
|
3月前
|
机器学习/深度学习 算法 调度
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
384 0
|
3月前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
244 2
|
2月前
|
机器学习/深度学习 数据采集 存储
概率神经网络的分类预测--基于PNN的变压器故障诊断(Matlab代码实现)
概率神经网络的分类预测--基于PNN的变压器故障诊断(Matlab代码实现)
335 0
|
3月前
|
机器学习/深度学习 并行计算 算法
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
|
3月前
|
机器学习/深度学习 编解码 并行计算
【创新未发表!】基于BKA算法优化-BP、HO算法优化-BP、CP算法优化-BP、GOOSE算法优化-BP、NRBO算法优化-BP神经网络回归预测比较研究(Matlab代码)
【创新未发表!】基于BKA算法优化-BP、HO算法优化-BP、CP算法优化-BP、GOOSE算法优化-BP、NRBO算法优化-BP神经网络回归预测比较研究(Matlab代码)
204 0
|
4月前
|
机器学习/深度学习 数据采集 传感器
【故障诊断】基于matlab BP神经网络电机数据特征提取与故障诊断研究(Matlab代码实现)
【故障诊断】基于matlab BP神经网络电机数据特征提取与故障诊断研究(Matlab代码实现)
153 0
|
3月前
|
机器学习/深度学习 缓存 算法
2025年华为杯A题|通用神经网络处理器下的核内调度问题研究生数学建模|思路、代码、论文|持续更新中....
2025年华为杯A题|通用神经网络处理器下的核内调度问题研究生数学建模|思路、代码、论文|持续更新中....
448 1
|
3月前
|
机器学习/深度学习 传感器 算法
【表面粗糙度】基于粒子群PSO算法优化-BP神经网络的表面粗糙度研究(Matlab代码实现)
【表面粗糙度】基于粒子群PSO算法优化-BP神经网络的表面粗糙度研究(Matlab代码实现)
237 7
|
3月前
|
机器学习/深度学习 传感器 分布式计算
基于模糊RBF神经网络轨迹跟踪研究(Matlab代码实现)
基于模糊RBF神经网络轨迹跟踪研究(Matlab代码实现)
212 1
|
3月前
|
机器学习/深度学习 移动开发 编解码
基于人工神经网络的类噪声环境声音声学识别(Matlab代码实现)
基于人工神经网络的类噪声环境声音声学识别(Matlab代码实现)
125 1

热门文章

最新文章