kfcm算法matlab实现,KFCM算法分析

function [center, U, obj_fcn] = KFCMClust(data, cluster_n, kernel_b,options)

% FCMClust.m   采用模糊C均值对数据集data聚为cluster_n类

%

% 用法:

%   1.  [center,U,obj_fcn] = KFCMClust(Data,N_cluster,kernel_b,options);

%   2.  [center,U,obj_fcn] = KFCMClust(Data,N_cluster,kernel_b);

%   3.  [center,U,obj_fcn] = KFCMClust(Data,N_cluster);

%

% 输入:

%   data        ---- nxm矩阵,表示n个样本,每个样本具有m的维特征值

%   N_cluster   ---- 标量,表示聚合中心数目,即类别数

%   kernel_b    ---- 高斯核参数b                           (缺省值:150)

%   options     ---- 4x1矩阵,其中

%       options(1):  隶属度矩阵U的指数,>1                  (缺省值: 2.0)

%       options(2):  最大迭代次数                           (缺省值: 100)

%       options(3):  隶属度最小变化量,迭代终止条件           (缺省值: 1e-5)

%       options(4):  每次迭代是否输出信息标志                (缺省值: 1)

% 输出:

%   center      ---- 聚类中心

%   U           ---- 隶属度矩阵

%   obj_fcn     ---- 目标函数值

%   Example:

%       data = rand(100,2);

%       [center,U,obj_fcn] = KFCMClust(data,2);

%       plot(data(:,1), data(:,2),'o');

%       hold on;

%       maxU = max(U);

%       index1 = find(U(1,:) == maxU);

%       index2 = find(U(2,:) == maxU);

%       line(data(index1,1),data(index1,2),'marker','*','color','g');

%       line(data(index2,1),data(index2,2),'marker','*','color','r');

%       plot([center([1 2],1)],[center([1 2],2)],'*','color','k')

%       hold off;

%   Author: Genial

%   Date:   2005.5

%  一副图中显示多方图片:montage

error(nargchk(2,4,nargin));    % 检查输入参数个数

data_n = size(data, 1); % 求出data的第一维(rows)数,即样本个数

in_n = size(data, 2);   % 求出data的第二维(columns)数,即特征值长度,目前没有用

% 默认操作参数

default_b = 150;         % 高斯核函数参数

default_options = [2;        % 隶属度矩阵U的指数

100;                % 最大迭代次数

1e-5;               % 隶属度最小变化量,迭代终止条件

1];                 % 每次迭代是否输出信息标志

if nargin == 2,

kernel_b = default_b;

options = default_options;

elseif nargin == 3,

options = default_options;

else    % 分析有options做参数时候的情况

% 如果输入参数个数是3那么就调用默认的option;

% 如果用户给的opition数少于4个那么就将剩余的默认option加上;

if length(options) < 4,

tmp = default_options;

tmp(1:length(options)) = options;

options = tmp;

end

% 返回options中是数的值为0(如NaN),不是数时为1

nan_index = find(isnan(options)==1);

% 将denfault_options中对应位置的参数赋值给options中不是数的位置.

options(nan_index) = default_options(nan_index);

if options(1) <= 1,

% 如果options中的指数m不超过1报错

error('The exponent should be greater than 1!');

end

end

% 将options 中的分量分别赋值给四个变量;

expo = options(1);          % 隶属度矩阵U的指数

max_iter = options(2);                % 最大迭代次数

min_impro = options(3);                % 隶属度最小变化量,迭代终止条件

display = options(4);                % 每次迭代是否输出信息标志

obj_fcn = zeros(max_iter, 1);        % 初始化输出参数obj_fcn

U = initkfcm(cluster_n, data_n);        % 初始化模糊分配矩阵,使U满足列上相加为1

% 初始化聚类中心:从样本数据点中任意选取cluster_n个样本作为聚类中心。当然,

% 如果采用某些先验知识选取中心或许能够达到加快稳定的效果,但目前不具备这功能

index = randperm(data_n);   % 对样本序数随机排列

center_old = data(index(1:cluster_n),:);  % 选取随机排列的序数的前cluster_n个

% Main loop  主要循环

for i = 1:max_iter,

% 在第k步循环中改变聚类中心ceneter,和分配函数U的隶属度值;

[U, center, obj_fcn(i)] = stepkfcm(data,U,center_old, expo, kernel_b);

if display,

fprintf('KFCM:Iteration count = % d, obj. fcn = % f \n', i, obj_fcn(i));

end

center_old = center;    % 用新的聚类中心代替老的聚类中心

% 终止条件判别

if i > 1,

if abs(obj_fcn(i) - obj_fcn(i-1)) < min_impro, break; end,

end

end

iter_n = i;        % 实际迭代次数

obj_fcn(iter_n+1:max_iter) = [];

% 子函数

function U = initkfcm(cluster_n, data_n)

% 初始化fcm的隶属度函数矩阵

% 输入:

%   cluster_n   ---- 聚类中心个数

%   data_n      ---- 样本点数

% 输出:

%   U           ---- 初始化的隶属度矩阵

U = rand(cluster_n, data_n);

col_sum = sum(U);

U = U./col_sum(ones(cluster_n, 1), :);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/529825.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matlab中的terminator模块,2.2 Ground 及 Terminator模块

课时&#xff1a;117节课时长&#xff1a;20.1小时课级&#xff1a;中级提高simulink是matlab中的一种可视化仿真工具&#xff0c; 是一种基于matlab的框图设计环境&#xff0c;是实现动态系统建模、仿真和分析的一个软件包&#xff0c;被广泛应用于线性系统、非线性系统、数字…

matlab 柯西黎曼方程,【判断题】柯西-黎曼方程成立是函数解析的必要条件.

参考答案如下判断【判断题】核糖体的沉降系数等于大小亚基沉降系数的总和。题柯【其它】We ______________________________________ (投入到各项校园课外活动中) on campus.西黎【单选题】起动机与蓄电池的连接线蓄电池与车架的搭铁线则采用( )。 (2.0分)曼方【简答题】作业选…

取整函数php,php取整函数三个例子

本节内容&#xff1a;php取整函数用法1&#xff0c;php取整函数 ceil -- 取最大整数float ceil ( float value )返回不小于 value 的下一个整数&#xff0c;value 如果有小数部分则进一位。ceil() 返回的类型仍然是 float&#xff0c;因为 float 值的范围通常比 integer 要大。…

python执行过程打印,如何在pytest运行过程中看到正常的打印输出?

乔在接受的答案中提出了一个评论 &#xff0c;他问道&#xff1a;有没有办法打印到控制台并捕获输出&#xff0c;以便它显示在junit报告中&#xff1f;在UNIX中&#xff0c;这通常被称为开球 。 理想情况下&#xff0c;开球而不是捕捉将是py.test默认。 非理想情况下&#xff0…

cfar恒虚警matlab实现,一种用于距离副瓣抑制的自适应恒虚警方法与流程

本发明涉及脉冲压缩雷达数字信号处理技术领域。背景技术&#xff1a;在传统的真空管体制雷达中&#xff0c;由于发射占空比受限&#xff0c;通过设计较低的雷达重复发射频率实现远距离的目标探测&#xff0c;但由于发射的是简单的脉冲调制波形&#xff0c;重复频率降低和脉宽加…

修改oracle数据连接数据库,如何修改oracle数据库的连接数

如何修改oracle数据库的连接数查询数据库当前进程的连接数&#xff1a;select count(*) from v$process;查看数据库当前会话的连接数&#xff1a;elect count(*) from v$session;查看数据库的并发连接数&#xff1a;select count(*) from v$session where statusACTIVE;查看当前…

oracle导出中文utf8乱码,ORACLE导入导出后发生中文乱码的原因及解决办法

从数据库服务器上使用exp导出时显示如下&#xff1a;[oraclekf15-1]:/users/oracle>$ exp username/passwdkf15-1/i1000 tablestable_name filetable_name_unix.dmp satisticsnone buffer1000000Export: Release 10.2.0.4.0 - Production on 星期四 8月 26 16:37:08 2010Cop…

基于matlab的图解粒度参数计算,基于MATLAB的图解粒度参数计算

摘要粒度特征是沉积物的基本特征之一。计算沉积物粒度参数的方法主要有矩法和图解法两种&#xff0c;其中图解法必须通过手工作图求累积曲线&#xff0c;是一项相当繁杂的劳动&#xff0c;不利于计算大量样品。文中提出的方法将图解求沉积物样品的累积曲线百分位数的过程转化为…

oracle判断数据出现交叉,Oracle!你必须要知道的Knowledge points(一)

一、入门oracle有四个用户&#xff0c;分别为sys、system、sysman和scott,其中sys是oracle权限最高的用户&#xff0c;类似于Linux系统的root&#xff0c;scott是示例用户&#xff0c;上课就以这个用户里的三张员工表empno、dept、salgrade作为示例来授课。启动服务1. 快捷键ct…

php上传中文图片,用PHP处理图片文件的上传

这篇文章主要介绍了关于用PHP处理图片文件的上传&#xff0c;有着一定的参考价值&#xff0c;现在分享给大家&#xff0c;有需要的朋友可以参考一下1.html文件form表单注意。enctype属性代码&#xff1a;<?php require(../../public/common/config.php);$sqlClass "s…

nodejs+php+aes加密解密,php,crypto_php与nodejs的加密数据互通,php,crypto,node.js - phpStudy...

php与nodejs的加密数据互通nodejs的加密解密代码示例如下&#xff1a;#!/usr/bin/env nodevar crypto require(crypto);//解密function decode(cryptkey, iv, secretdata) {vardecipher crypto.createDecipheriv(aes-256-cbc, cryptkey, iv),decoded decipher.update(secret…

360 php offer,审批终于通过了,从面试到拿到奇虎360的offer已经失…

审批终于通过了&#xff0c;从面试到拿到奇虎360的offer已经失业两周了( •͈ᴗ⁃͈)ᓂ- - -♡&#xfeff;小运营大太阳&#xff1a;沾沾喜气程序猿.南兰&#xff1a;沾沾喜气360员工&#xff1a;欢迎来到酒仙桥第一养老院美团点评员工&#xff1a;[害羞]沾沾喜气盗圣白展堂&a…

linux中的进程权限是,Linux中权限,进程,服务的简单操作

1.权限存在意义- rw-r-r-r-- 1 root root 216 May 12 2017 /mnt/rht[1] [2] [3] [4] [5] [6] [7] [8][1] 文件类型-普通文件d目录l软链接ssocketc文件权限[2] 文件权限rw-|r--|r--u g ouuserggroupoo…

linux 中断 进程,linux中断分上下部分原因

中断处理程序在处理中断时起到了关键作用&#xff0c;也是一个中断程序必不可少的部分。不过&#xff0c;现如今的中断处理流程都会分为两部分&#xff1a;上半部分(top half)和下半部分(bottom half)。为什么要将一个中断分为如此两部分&#xff1f;下面的几个经典原因可以很好…

linux 运行eclipse,解决Linux下Eclipse启动错误

下载Eclipse后一打开就报错&#xff1a;JVM terminated. Exit code-1-Xms40m-Xmx256m-XX:MaxPermSize256m-Djava.class.path/usr/local/eclipse/plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar-os linux-ws gtk-arch x86-showsplash /usr/local/eclipse//pl…

linux家庭云服务器,linux服务器云(linux家用云服务器)

可以。注&#xff1a;云服务器有Linux版本&#xff0c;实际上就是Linux在本地环境放到了云上公网环境中&#xff0c;其它操作都是一样的。云主机是集群服务器开发出的虚拟的机器&#xff0c;所以&#xff0c;这个因素不用考虑就问题不大。需要linux系统直接在预装系统安装就可以…

linux13位时间戳,Kotlin 处理Linux时间戳

思路1. 获取时间可以采用的方式有直接获取系统时间System.currentTimeMillis()或者使用Calendar类获取时间2. 处理时间在使用Calendar时&#xff0c;可以直接由Calendar的set方法对于时间进行设置由于Calendar的时间格式并不是我们希望得到的Linux时间戳格式&#xff0c;所以我…

linux脚本done报错,linux – 如何在shell脚本中处理错误/异常?

下面是我在bash中执行的脚本.它工作正常.fileexist0for i in $( ls /data/read-only/clv/daily/Finished-HADOOP_EXPORT_&processDate#.done); domv /data/read-only/clv/daily/Finished-HADOOP_EXPORT_&processDate#.done /data/read-only/clv/daily/archieve-wip/fil…

linux 建立交叉编译环境变量,ARM-Linux-gcc-4.4.3交叉编译环境终于搭建

Linux交叉编译环境终于搭建完成具体步骤&#xff1a;0、软件请到友善之臂的官网下载1、解压tar zxvf arm-linux-gcc-4.4.3-20100728.tar.gz-C/(别make了&#xff0c;直接解压后就可以)2、设置环境变量&#xff1a;首先vi ~/.bashrc然后在最后加上exportPATH$PATH:/opt/Friendly…

查询linux版本信息 sp,查看Linux系统版本和内核信息

Linux查看Linux系统版本信息1. 查看内核版本1) 方法一&#xff1a;登录到linux执行cat /proc/version[[email protected]_32bit_ip12 ~]$ cat /proc/versionLinux version 2.6.18-194.el5 ([email protected]) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-48)) #1 SMP Fri Apr…