如何获得最佳的一组向量的线性扩展因素

1视图(30天)
我想确定一组最优线性比例因子向量,这样比例的均值接近一个参考或目标向量。下面的数据集是一个例子。
所有的数据都使用相同的 x 纵坐标。我有一个参考向量 y_ref 。我有三个原始数据向量: y_raw1 , y_raw2 , y_raw3
我想确定一个线性比例因子 y_raw吗? 向量,这样的均方误差(MSE)之间 这三个的平均值 y_raw吗? 向量 y_ref 在每一个最小化 x 价值。
这是一个普遍需要Matlab具有一个内置的功能呢?如果不是,有什么技巧开始在自己的函数?我用谷歌搜索了一点,但我不能使用正确的术语,因为我找不到任何方程或指导开始。谢谢你!
使用Matlab R2018a (9.4 v)。我有航天工具箱(2.21 v)和统计和机器学习工具箱(11.3 v)。
% % %定义输入数据
x = [0, 0.7, 1.1, 1.61, 2.02, 2.31, 2.71,, 3.22, 3.41,
3.69,3.92,4.32,4.61,5.02,5.3,5.71,6,6.22,
6.62、6.91);
y_ref = (4.08, 4.14, 4.03, 4.62, 4.47, 4.26, 4.12, 4.11,
4.16,4.24,4.39,4.71,5.74,6.15,5.72,5.15,
4.59,4.65,4.4,4.28,4.28);
y_raw1 = (4.66, 6.67, 5.36, 5.91, 3.12, 4.46, 4.3, 5.57,
3.52,5.22,6.02,5.05,6.86,6.64,4.99,4.06,
3.16,6.9,5.13,6.17,5.47);
y_raw2 = (5.55, 3.24, 3.05, 6.89, 5.32, 4.97, 3.54, 5.78,
4.92,5.46,6.35,6.88,5.17,7.04,6.92,4.16,
6.07,4.55,6.46,4.91,5.65);
y_raw3 = (3.8, 5.51, 4.76, 6.09, 4.39, 5.14, 6.92, 4.36,
3.83,6.13,6.4,4.17,6.57,8.73,5.35,5.48,
4.59,5.02,4.99,4.62,5.46);
% % %可视化输入数据
情节(x, y_ref,“k”,“线宽”2,“DisplayName的”,“Refernce”)
持有
情节(x, y_raw1,“b”,“DisplayName的”,“# 1”)
情节(x, y_raw2,‘g’,“DisplayName的”,“2号”)
情节(x, y_raw3,“米”,“DisplayName的”,“# 3”)
包含(“x”)
ylabel (“x”)
传奇(“位置”,“最佳”)
2的评论

登录置评。

接受的答案

马特·J
马特·J 2021年9月17日
编辑:马特·J 2021年9月17日
我想确定一个线性比例因子为每个y_raw吗?向量,这样的均方误差(MSE)的平均值之间的所有三个y_raw ?在每个x值向量和y_ref最小化。
如果只有一个比例因子为每个向量,你不能独立在每个x值最小化均方误差,但最低L2-norm区别了,
scale_factors = ((y_raw1; y_raw2 y_raw3]。“\ y_ref (:)) * 3;%编辑
2的评论
马特·J
马特·J 2021年9月17日
编辑:马特·J 2021年9月17日
@Image分析师 你是对的。它应该是
scaleFactors = ([y_raw1;y_raw2;y_raw3]。“\ y_ref (:)) * 3
scaleFactors = 3×1
0.4329 1.0392 1.0817
yEstimated =意味着([scaleFactors (1) * y_raw1;
scaleFactors (2) * y_raw2;
scaleFactors (3) * y_raw3]);

登录置评。

答案(1)

图像分析
图像分析 2021年9月17日
编辑:图像分析 2021年9月17日
您可以使用回归学习者应用。这是一个有用的工具来知道如何使用。你基本上把它所有的输入,和你的期望输出值,你可以尝试各种不同的模型、多元线性回归、神经网络、决策树等,找到最适合的(最小残差)。以下的步骤
  1. 把你的输入到表和你想要的值放入一个列向量。
  2. 去工具带的应用程序选项卡并选择回归学习者并开始一个新的会话。
  3. 选择的输入表工作区作为你的“数据集变量”和y_reference作为期望输出值。
  4. 点击向下箭头选择模型尝试。例如选择“线性”模型。
  5. 单击绿色火车三角形。
  6. 当它在几秒钟完成,点击预测与实际看看。
  7. 你的模型导出到工作区。如果你想将它保存到一个.mat文件。你可以称之为yFit = trainedModel.predictFcn (T), T是一个表输入曲线。
我这样做,你可以看到下面的结果。
它工作得很好,不过你的数据集用很少的培训分和非常嘈杂的数据没有一个高雅的办法yRef 3噪声曲线无论如何他们的总和。
%演示图像分析
clc;%清除命令窗口。
关闭所有;%关闭所有数据(除了imtool。)
清晰;%擦掉所有现有的变量。或者clearvars如果你想要的。
工作空间;%确定工作区面板显示。
格式短g;
格式紧凑的;
字形大小= 20;
% % %定义输入数据
x = [0, 0.7, 1.1, 1.61, 2.02, 2.31, 2.71,, 3.22, 3.41,
3.69,3.92,4.32,4.61,5.02,5.3,5.71,6,6.22,
6.62、6.91);
y_ref = (4.08, 4.14, 4.03, 4.62, 4.47, 4.26, 4.12, 4.11,
4.16,4.24,4.39,4.71,5.74,6.15,5.72,5.15,
4.59,4.65,4.4,4.28,4.28);
y_raw1 = (4.66, 6.67, 5.36, 5.91, 3.12, 4.46, 4.3, 5.57,
3.52,5.22,6.02,5.05,6.86,6.64,4.99,4.06,
3.16,6.9,5.13,6.17,5.47);
y_raw2 = (5.55, 3.24, 3.05, 6.89, 5.32, 4.97, 3.54, 5.78,
4.92,5.46,6.35,6.88,5.17,7.04,6.92,4.16,
6.07,4.55,6.46,4.91,5.65);
y_raw3 = (3.8, 5.51, 4.76, 6.09, 4.39, 5.14, 6.92, 4.36,
3.83,6.13,6.4,4.17,6.57,8.73,5.35,5.48,
4.59,5.02,4.99,4.62,5.46);
% % %可视化输入数据
情节(x, y_ref,“k”,“线宽”2,“DisplayName的”,“参考”)
持有
情节(x, y_raw1,“b”,“DisplayName的”,“# 1”)
情节(x, y_raw2,‘g’,“DisplayName的”,“2号”)
情节(x, y_raw3,“米”,“DisplayName的”,“# 3”)
包含(“x”)
ylabel (“x”)
scaleFactors = [y_raw1;y_raw2;y_raw3]。“\ y_ref (:)
yEstimated = scaleFactors (1) * y_raw1 + scaleFactors (2) * y_raw2 + scaleFactors (3) * y_raw3;
情节(x, yEstimated,的r -,“线宽”3,“DisplayName的”,“yEstimated”);
网格;
传奇(“位置”,“最佳”)
%为回归学习者创建表
yRef = y_ref ';%转化为列向量。
tPredictions =表(y_raw1 (:), y_raw2 (:), y_raw3 (:))

类别

找到更多的在化学帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!