👨🎓个人主页:研学社的博客
💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
📚2 运行结果
🎉3 参考文献
💥1 概述
小波变换是从20世纪80年代起逐渐发展成熟的一项数学应用技术,具有对时间—频率的双重分析和多分辨率分析能力,目前已经广泛应用于图像处理、模式识别等多个领域。小波变换的窗口大小固定但形状可改变,因此能够满足时域—频域局部化分析要求。离散小波变换比连续小波变换的去噪效果更好,更适用于实际应用。
小波变换首先通过分解信号,使信号的能量集中在一些大的小波系数中,而噪声的能量分布于整个小波域内;然后通过阈值降噪,选择合适的阈值将有用信号的系数保留,将噪声信号的系数置零,从而去除噪声;最后再对经过阈值降噪后的系数进行重构,得到去除噪声后的信号。
常用的小波基函数有Meyer小波、Coiflet(coif N)小波、Daubechies(db N)小波等。为得到较好的去噪效果,所选取的小波基函数在对心电信号进行分解时,应尽量保留心电信号中的有用分量,同时使噪声分解对应的小波系数差异尽可能大。Coiflet4小波基与心电信号的波形最为相似,同时与输出信号具有良好的相关性,重构后的信号信噪比大、均方误差小,因此本文选用Coiflet4小波基进行小波分解。
📚2 运行结果
部分代码:
% Practicum, Task #3, 'Compositions of algorithms'.
%
% FUNCTION:
% [prediction, err] = gradient_boosting_predict (model, X, y)
%
% DESCRIPTION:
% This function use the composition of algorithms, trained with gradient
% boosting method, for prediction.
%
% INPUT:
% X --- matrix of objects, N x K double matrix, N --- number of objects,
% K --- number of features.
% y --- vector of answers, N x 1 double vector, N --- number of objects. y
% can have only two values --- +1 and -1.
% model --- trained composition.
%
% OUTPUT:
% prediction --- vector of predicted answers, N x 1 double vector.
% error --- the ratio of number of correct answers to number of objects on
% each iteration, num_iterations x 1 vector
%
% AUTHOR:
% Murat Apishev (great-mel@yandex.ru)
%function [prediction, err] = gradient_boosting_predict (model, X, y)
num_iterations = length(model.weights);
no_objects = length(y);
pred_prediction = zeros([no_objects num_iterations]); for alg = 1 : num_iterations
value = zeros([no_objects 1]) + model.b_0;
for i = 1 : alg
if strcmp(model.algorithm, 'epsilon_svr')
value = value + svmpredict(y, X, model.models{i}) * model.weights(i);
elseif strcmp(model.algorithm, 'regression_tree')
value = value + predict(model.models{i}, X) * model.weights(i);
end
end
pred_prediction(:,alg) = value;
end
prediction = pred_prediction(:,end);
err = zeros([num_iterations 1]);
if strcmp(model.loss, 'absolute')
temp = (bsxfun(@minus, pred_prediction, y));
err = abs(sum(temp)) / no_objects;
elseif strcmp(model.loss, 'logistic')
prediction = sign(prediction);
temp = (bsxfun(@eq, sign(pred_prediction), y));
err = sum(temp == 0) / no_objects;
end
if size(err, 1) == 1
err = err';
end
end
🎉3 参考文献
部分理论来源于网络,如有侵权请联系删除。
[1]赵薇. 基于图卷积的运动想象脑电信号分类技术研究[D].河北师范大学,2022.DOI:10.27110/d.cnki.ghsfu.2022.000058.