我想使用R中的sample()函数从我的数据集中随机选择n行.我每次都得到不同的输出,因此使用函数来获得相同的输出.我知道,will 中的每个整数都会给我一个唯一的输出,如果设置相同的种子,输出将是相同的.但我无法弄清楚作为参数传递给函数的整数意味着什么.它只是一个进入随机生成器算法的索引,还是指从您开始采样的数据的某些部分?例如,什么是在是什么意思?set.seed()set.seed()set.seed()2set.seed(2)
我正在尝试使用Spark中的takeSample()函数,参数是 - 数据,要采取的样本数和种子.但我不想使用种子.我想每次都有不同的答案.我无法弄明白我该怎么做.我尝试使用作为种子值,但它给出了一个错误,因为我认为数据类型不匹配.是否有其他类似的功能可以在没有种子的情况下使用?或者我可以使用任何其他实现,以便每次都获得不同的输出.System.nanoTimetakeSample()takeSample()
我读到k-means算法只收敛到局部最小值而不是全局最小值.为什么是这样?我可以从逻辑上思考初始化如何影响最终的聚类,并且有可能进行次优聚类,但我没有找到任何可以在数学上证明这一点的东西.
另外,为什么k-means是一个迭代过程?我们难道不能将目标函数wrt部分区分为质心,将其等于零以找到最小化此函数的质心吗?为什么我们必须使用梯度下降来逐步达到最小值?
我最近读到了如何使用Choleski分解计算QR分解的R矩阵.关系是:
R = Choleski分解(A ^ TA)
例:
> A=matrix(c(1,2,3,2,3,5,1,3,2), nrow=3)
> A
[,1] [,2] [,3]
[1,] 1 2 1
[2,] 2 3 3
[3,] 3 5 2
> AtA = t(A)%*%A
> AtA
[,1] [,2] [,3]
[1,] 14 23 13
[2,] 23 38 21
[3,] 13 21 14
Run Code Online (Sandbox Code Playgroud)
现在计算QR和Choleski分解:
> chol(AtA)
[,1] [,2] [,3]
[1,] 3.741657 6.147009 3.4743961
[2,] 0.000000 0.462910 -0.7715167
[3,] 0.000000 0.000000 1.1547005
> qr_A = qr(A)
> qr.R(qr_A)
[,1] [,2] [,3]
[1,] -3.741657 -6.147009 -3.4743961
[2,] …Run Code Online (Sandbox Code Playgroud)