考虑来自MLLib {% for com in company %}
{{ com.name }}
{{ com.description }}
{{ number_employees(com.id) }}
{% endfor %}
的{{1}}方法:
以下是该方法的签名:
generateLinearInput
这是生成原始数据点的核心逻辑:
LinearDataGenerator
特别注意方差 def generateLinearInput(
intercept: Double,
weights: Array[Double],
xMean: Array[Double],
xVariance: Array[Double],
nPoints: Int,
seed: Int,
eps: Double): Seq[LabeledPoint] = {
缩放系数。 该因素的目的是什么?
为了完整性:这是该方法的其余部分 - 其中输入线性函数应用于x /域值以生成输出y /范围值:
val rnd = new Random(seed)
val x = Array.fill[Array[Double]](nPoints)(
Array.fill[Double](weights.length)(rnd.nextDouble()))
x.foreach { v =>
var i = 0
val len = v.length
while (i < len) {
v(i) = (v(i) - 0.5) * math.sqrt(12.0 * xVariance(i)) + xMean(i)
i += 1
}
答案 0 :(得分:2)
如果你有随机变量 X
所以这段代码
v(i) = (v(i) - 0.5) * math.sqrt(12.0 * xVariance(i)) + xMean(i)
应该相当于:
其中 a'和 b'是所需均匀分布的参数, EX'是所需分布的平均值。如果将xMean
设置为0,则其余代码将输入数据集中在0左右并调整范围。