提示:本文为记录学习聚类分析的一个过程,仅供参考,有不足之处还望提出
前言
本次样本中的片段数据涉及到多个故障原因,目的在于通过聚类的方式,将样本中为同一因素导致的故障数据筛选出来。
源码+测试样本
提示:以下是本篇文章正文内容,下面案例仅供参考
一、原始数据
数据的导入,利用Matlab导入Excel数据,生成操作性更高的脚本用于本次的测试。
在导入数据的过程中,筛选去掉不需要的冗余数据,生成对应的脚本文件
至此完成数据的初步导入
二、数据处理与结果输出
1.标准化与提取
数据提取与标准化逻辑
采取的是最大最小值标准化方式
标准化代码如下:
%% 函数区域
function [normalized_data] = normalize(source_data, kind)
% 数据的标准化(归一化)处理
% 参数 source_data 可用格式的源数据
% 参数 kind 代表何种归一化方式, 默认为1. 1代表Min-Max标准化,2代表Z-score标准化.
% 返回归一化后的数据
if nargin < 2 % 如果参数少于2,默认进行Min-Max标准化
kind = 1;
end
[m, n] = size(source_data);
normalized_data = zeros(m, n);
%% Min-Max标准化(Min=0,Max=1)
if kind == 1
for i = 1:n
ma = max( source_data(:, i) ); % Matlab中变量名不宜和函数名相同,所以不用max、min、mean等变量名
mi = min( source_data(:, i) );
normalized_data(:, i) = ( source_data(:, i)-mi ) / ( ma-mi );
end
end
%% Z-score标准化
if kind == 2
for i = 1:n
mea = mean( source_data(:, i) );
st = std( source_data(:, i) );
normalized_data(:, i) = ( source_data(:, i)-mea ) / st;
end
end
end
2.可视化
原始数据可视化
结果如下:
3.簇数判别
由于不确定数据可以划分的组数,利用Calinski-Harabasz指数,确定最佳的分类组数
确定最终组数为3
4.最终输出
对分类结果进行输出
下图所示为分类结果
总结
本文通过Kmeans的方法对故障类型进行一个简单的聚类,利用Calinski-Harabasz指数判断数据的最佳分类组数,并对最终的结果进行简单的可视化。
源码+测试样本
今天的文章Matlab聚类分析(Kmeans)分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/32448.html