距离已知时如何计算每次观测的概率值-> kmeans R编程
How to calculate the probability value for each observation when distances are known - > kmeans R programming
我是 R 编程的新手,正在尝试弄清楚以下内容。以下 table 包含每个观察的欧氏距离和聚类详细信息。 table 中有超过 100000 个不同的 ID,并且已为每个聚类计算了每个 ID 值的距离。有 6 个名为 1-6 的簇。
我需要计算最后一列,它应该是属于该聚类的每个观察值的概率值。这是由第一个条目给出的,
展开时的分母是
每个概率值都是根据该 id 的 6 个距离值计算的。 table 是 data.table 格式。
我想尝试这样的事情。但我什至不知道如何完成那行。
dt_calc[ prob_value := (1 / (distance/dt_calc[距离, by = .(id, cluster== 1 )]) ^ 2), by =编号]
id
cluster
distance
prob_value
1
1
d1
p1
1
2
d2
?
1
3
d3
----
1
4
d4
----
1
5
d5
----
1
6
d6
----
2
1
d7
----
2
2
d8
----
2
3
d9
----
2
4
d10
----
2
5
d11
----
2
6
d12
----
谁能告诉我如何计算这个 prob_value 列。
我不确定 = .EACHI 在这里的效率如何,但这似乎有效。我无法弄清楚为什么在通过引用分配时会出错,所以我将它转储到一个新的 data.table 中,但这至少可以让你到达某个地方。
dt <- data.table(id = rep(c(1, 2), each = 6),
cluster = rep(1:6, 2),
distance = sample(100, size = 12, replace = TRUE))
test <- dt[dt, 1/sum((i.distance/distance) ^ 2),
on = .(id), by = .EACHI]
我是 R 编程的新手,正在尝试弄清楚以下内容。以下 table 包含每个观察的欧氏距离和聚类详细信息。 table 中有超过 100000 个不同的 ID,并且已为每个聚类计算了每个 ID 值的距离。有 6 个名为 1-6 的簇。
我需要计算最后一列,它应该是属于该聚类的每个观察值的概率值。这是由第一个条目给出的,
展开时的分母是
每个概率值都是根据该 id 的 6 个距离值计算的。 table 是 data.table 格式。 我想尝试这样的事情。但我什至不知道如何完成那行。
dt_calc[ prob_value := (1 / (distance/dt_calc[距离, by = .(id, cluster== 1 )]) ^ 2), by =编号]
id | cluster | distance | prob_value |
---|---|---|---|
1 | 1 | d1 | p1 |
1 | 2 | d2 | ? |
1 | 3 | d3 | ---- |
1 | 4 | d4 | ---- |
1 | 5 | d5 | ---- |
1 | 6 | d6 | ---- |
2 | 1 | d7 | ---- |
2 | 2 | d8 | ---- |
2 | 3 | d9 | ---- |
2 | 4 | d10 | ---- |
2 | 5 | d11 | ---- |
2 | 6 | d12 | ---- |
谁能告诉我如何计算这个 prob_value 列。
我不确定 = .EACHI 在这里的效率如何,但这似乎有效。我无法弄清楚为什么在通过引用分配时会出错,所以我将它转储到一个新的 data.table 中,但这至少可以让你到达某个地方。
dt <- data.table(id = rep(c(1, 2), each = 6),
cluster = rep(1:6, 2),
distance = sample(100, size = 12, replace = TRUE))
test <- dt[dt, 1/sum((i.distance/distance) ^ 2),
on = .(id), by = .EACHI]