我的数据集范围是1到30,000
我想对其进行归一化,使其变为0.1到10
最好的方法/功能是什么?
如果您能提供一些示例代码,将不胜感激!
最佳答案
这是一个代码段,假设您要进行线性归一化。这是一个非常简单的版本(只是简单的代码,没有方法),因此您可以看到“它是如何工作的”并将其应用于任何事物。
xmin = 1.0
xmax = 30000.0
ymin = 0.1
ymax = 10.0
xrange = xmax-xmin
yrange = ymax-ymin
y = ymin + (x-xmin) * (yrange / xrange)
在这里,它是作为一个函数来完成的:
def normalise(x, xmin, xmax, ymin, ymax)
xrange = xmax - xmin
yrange = ymax - ymin
ymin + (x - xmin) * (yrange.to_f / xrange)
end
puts normalise(2000, 1, 30000, 0.1, 10)
(注意:
to_f
确保我们不会陷入整数除法的黑洞中)关于ruby - 用ruby规范化数据集,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1507804/