机器学习

如何做仿真——检查自己算法的有效性???

本文主要是介绍如何做仿真——检查自己算法的有效性???,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

近期二郎在做一个项目,也写出来代码了,但是现有数据量不足,不能很好地验证算法是否成立,因此二郎要去做一个仿真,来验证算法地有效性。

仿真=解决问题的逆。
解决问题需要有输入,然后得到对应的输出

一般情况下,解决问题 :
利用真实的输入和输出,解出系统的未知参数。
仿真:
设定输入,设定未知参数,产生理想的输出。
为输入和输出添加随机噪声(添加一个按照精度设置的随机变量,用于表示测量的不确定性)。
然后,用解决问题的方法,求未知参数,看求出的未知参数和原设置的未知参数是否一致。

例如:

系统的方程:y=kx;
未知参数:k;

仿真

%matlab code
clear 
clc

x = (0:1:300);%设置输入
k = 6;%假定参数
y = k*x;%计算出输出

[~,num] = size(x);

x_noice = x + 0.1*rand(1,num);%为x添加噪声
y_noice = y + 0.1*rand(1,num);%为y添加噪声
 
k_noice = y_noice*x_noice'*inv(x_noice*x_noice');%矩阵形式的最小二乘法

结果
在这里插入图片描述
可以看到,我们求出的带噪声的k_noice是接近我们设定的真实值的,证明我们的方法是有效的。

这篇关于如何做仿真——检查自己算法的有效性???的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!