✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,
代码获取、论文复现及科研仿真合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab完整代码及仿真定制内容点击👇
🔥 内容介绍
在数据分析和信号处理的领域中,检测信号异常值是一项重要的任务。异常值可能会对分析结果产生负面影响,因此准确地检测和处理异常值是至关重要的。本文将介绍一种常用的检测信号异常值的算法流程。
算法流程的第一步是数据预处理。在这一步中,我们需要对原始数据进行清洗和处理,以确保数据的准确性和一致性。这可能包括去除重复数据、填补缺失值、处理异常数据等。数据预处理是算法流程中的关键步骤,它可以提高后续异常值检测的准确性和可靠性。
接下来,我们需要选择一个合适的异常值检测方法。常用的方法包括基于统计学的方法、基于模型的方法和基于机器学习的方法。每种方法都有其优缺点,选择适合问题的方法是非常重要的。在这一步中,我们需要根据数据的特点和问题的需求来选择合适的方法。
一旦选择了异常值检测方法,我们就可以开始实施算法流程的核心步骤。首先,我们需要计算每个数据点的异常得分。异常得分是衡量数据点与正常数据之间差异的指标。常用的异常得分计算方法包括Z得分、百分位数得分和基于模型的得分等。异常得分越高,表示数据点越可能是异常值。
然后,我们需要设置一个阈值来判断数据点是否为异常值。阈值的选择是根据具体问题和需求来确定的。一般来说,我们可以根据异常得分的分布情况,选择一个合适的百分位数作为阈值。超过阈值的数据点将被标记为异常值。
最后,我们需要对异常值进行处理。处理异常值的方法取决于具体问题和数据的特点。常用的处理方法包括删除异常值、替换异常值、调整异常值等。处理异常值的目标是保持数据的准确性和一致性,同时不影响后续的数据分析和信号处理。
目前的代码是一个基于几种强大的统计假设检验技术的异常值(异常)检测的 Matlab 函数:
(1)赖特(莱伊特)准则
(2) Iglewicz-Hoaglin 修正 Z 分数
(3)Huber-Miller MAD规则
(4)图基准则
(5) 罗曼诺夫斯基准则
(6) 切比雪夫准则
总结一下,检测信号异常值是一项重要的任务,它可以帮助我们发现数据中的潜在问题并提高分析结果的准确性。本文介绍了一种常用的检测信号异常值的算法流程,包括数据预处理、选择异常值检测方法、计算异常得分、设置阈值和处理异常值等步骤。通过正确地应用这个算法流程,我们可以更好地处理信号异常值问题,并提高数据分析和信号处理的质量。
📣 部分代码
%% 清空环境变量
warning off % 关闭报警信息
close all % 关闭开启的图窗
clear % 清空变量
clc % 清空命令行
%% 导入数据
res = xlsread('数据集.xlsx');
%% 划分训练集和测试集
temp = randperm(357);
P_train = res(temp(1: 240), 1: 12)';
T_train = res(temp(1: 240), 13)';
M = size(P_train, 2);
P_test = res(temp(241: end), 1: 12)';
T_test = res(temp(241: end), 13)';
N = size(P_test, 2);
%% 数据归一化
[p_train, ps_input] = mapminmax(P_train, 0, 1);
p_test = mapminmax('apply', P_test, ps_input);
t_train = ind2vec(T_train);
t_test = ind2vec(T_test );
⛳️ 运行结果
🔗 参考文献
[1] S. Seo. A Review and Comparison of Methods for Detecting Outliers in Univariate Data Sets (Master's Thesis). Pittsburgh, University of Pittsburgh, 2006. (Unpublished)
[2] B. Iglewicz, D. Hoaglin. ASQC Basic References in Quality Control Vol. 16: How To Detect And Handle Outliers. Milwaukee, ASQC Quality Press, 1993.
[3] C. Leys, C. Ley, O. Klein, P. Bernard, L. Licata. “Detecting outliers: Do not use standard deviation around the mean, use absolute deviation around the median”. Journal of Experimental Social Psychology, Vol. 49, No. 4, pp. 764-766, 2013.[4] B. Amidan, T. Ferryman, S. Cooley. “Data outlier detection using the Chebyshev theorem”. IEEE Aerospace Conference, pp. 3814-3819, 2005.