我正在尝试开发一个非常简单的机器学习示例,用于识别数组之间的相似性。为此,我试图计算两个长度不同的数组之间的平均值。
例如,如果我有:
array_1 = [0, 4, 5];array_2 = [4, 2, 7];
平均值是:
average_array = [2, 3, 6];
但是,如果我有以下情况,我该如何计算平均值呢:
array_1 = [0, 4, 5, 10, 7];array_2 = [4, 2, 7];
如您所见,数组的长度不同。有没有可以解决这个问题的算法?有人有想法或建议吗?
当然,我可以将第二个数组的缺失值视为0,并计算平均值,例如:
average_array = [2, 3, 6, 5, 3.5];
或者将值视为”空“,得到:
average_array = [2, 3, 6, 10, 7];
这两种方法好吗?还是有更聪明的方法?
感谢您的帮助!!
回答:
如果在计算数组的平均值后,您打算计算数组与平均数组的差异的模,那么如果您通过差异的幅度来衡量差异性,您可能走在正确的方向上。
但是对于长度不同的数组,我建议您也考虑额外元素的索引。
对于
array_1 = [0, 4, 5, 10, 7];array_2 = [4, 2, 7];
平均值应该是 average_array = [2, 3, 6, 6.5, 5.5];
6.5 = (10 + 3(index) + 0(element) ) / 2
和
5.5 = (7 + 4(index) + 0(element))/2
考虑索引的原因是这种方法也处理了长度因素。不过这只是我的一点看法。可能还有更好的算法。
您还应该查看这个帖子