【问题标题】:Distance between clusters and observations with k-means R使用 k-means R 的聚类和观测值之间的距离
【发布时间】:2023-02-08 01:00:06
【问题描述】:

数据和代码

mtcars

k<-kmeans(mtcars,4)

我想在 df mtcars 中创建 4 列,描述每个观察(行)到对象 k 中定义的每个质心的欧氏距离。

【问题讨论】:

    标签: r k-means


    【解决方案1】:

    创建一个函数来计算欧几里得距离,并将它 apply 到循环中的数据集。唯一要注意的一点是 R 的表格数据是按列主要顺序排列的,因此必须转置中心矩阵才能使减法正常工作。

    euclidean <- function(x, centers) sqrt(colSums((t(centers) - x)^2))
    
    k <- kmeans(mtcars, 4)
    t(apply(as.matrix(mtcars), 1, euclidean, k$centers))
    #>                             1         2          3         4
    #> Mazda RX4           133.72129  65.46177  12.345798 258.92953
    #> Mazda RX4 Wag       133.71531  65.44662  12.259517 258.92886
    #> Datsun 710          188.41664  13.94168  64.701099 313.01491
    #> Hornet 4 Drive       55.41632 159.15038  92.052088 178.71490
    #> Hornet Sportabout    77.28071 275.02928 201.090012  63.87335
    #> Valiant              80.03499 126.03021  60.487497 206.97900
    #> Duster 360          114.95384 306.18569 230.325991  31.04302
    #> Merc 240D           168.42041  49.23091  61.672122 295.63710
    #> Merc 230            157.34727  41.96413  36.468185 283.10534
    #> Merc 280            122.24402  78.51645   3.254434 246.19090
    #> Merc 280C           122.22901  78.66753   3.845208 246.17432
    #> Merc 450SE           23.39669 200.54618 124.642887 123.93437
    #> Merc 450SL           23.39104 200.49626 124.616832 123.95287
    #> Merc 450SLC          23.44417 200.60781 124.677153 123.93000
    #> Cadillac Fleetwood  193.27709 390.90757 317.160470  88.18066
    #> Lincoln Continental 184.48715 382.93031 308.548984  73.93793
    #> Chrysler Imperial   171.19059 369.87388 294.741443  51.84679
    #> Fiat 128            226.21403  28.10039 104.019421 351.78526
    #> Honda Civic         234.82029  39.32253 114.105502 361.10079
    #> Toyota Corolla      233.66102  35.29959 111.194950 359.03860
    #> Toyota Corona       175.65754  24.92816  52.070232 300.38940
    #> Dodge Challenger     34.49859 227.39238 154.449452 108.07101
    #> AMC Javelin          21.21994 214.12084 140.753501 117.65007
    #> Camaro Z28          108.69281 297.84299 222.027705  40.37769
    #> Pontiac Firebird    116.65783 312.90351 239.814335  58.53188
    #> Fiat X1-9           225.64529  27.33179 103.276775 351.29772
    #> Porsche 914-2       177.83482  21.22157  55.124411 303.07093
    #> Lotus Europa        195.35043  32.50827  72.666862 316.84034
    #> Ford Pantera L      124.90042 309.39889 233.985129  49.11348
    #> Ferrari Dino        140.68518 103.62545  59.087014 249.91627
    #> Maserati Bora       177.57273 322.97041 253.575991 134.96902
    #> Volvo 142E          170.96053  34.23275  47.002633 294.34492
    

    创建于 2023-02-07 reprex v2.0.2

    【讨论】:

      猜你喜欢
      • 2019-06-01
      • 2018-09-30
      • 2013-04-22
      • 2012-01-01
      • 2020-08-27
      • 2017-04-07
      • 2013-02-07
      • 2017-03-26
      • 2017-09-16
      相关资源
      最近更新 更多