str () показывает USArrests для 4 столбцов, но имеет 5. Почему это присутствует и часть последующего анализа, но не в str () - PullRequest
0 голосов
/ 20 апреля 2019

Структурная функция в R показывает, что USArrests имеет только 4 переменные.Тем не менее, есть 5. Имена состояний в первом столбце, однако это не помечено.

Я изо всех сил пытаюсь понять интуицию, стоящую за этим, и как это работает.Я сделал алгоритм кластеризации K-средних с данными, и кажется, что первый столбец (имена состояний) выступает в качестве меток в анализе.Без использования категорических данных.
это учебник, который я использовал.https://uc -r.github.io / kmeans_clustering

Ниже приведен код, который объясняет меня в более ясной форме.

str(USArrests)
'data.frame':   50 obs. of  4 variables:
 $ Murder  : num  13.2 10 8.1 8.8 9 7.9 3.3 5.9 15.4 17.4 ...
 $ Assault : int  236 263 294 190 276 204 110 238 335 211 ...
 $ UrbanPop: int  58 48 80 50 91 78 77 72 80 60 ...
 $ Rape    : num  21.2 44.5 31 19.5 40.6 38.7 11.1 15.8 31.9 25.8 ...
head(USArrests)

           Murder Assault UrbanPop Rape
Alabama      13.2     236       58 21.2
Alaska       10.0     263       48 44.5
Arizona       8.1     294       80 31.0
Arkansas      8.8     190       50 19.5
California    9.0     276       91 40.6
Colorado      7.9     204       78 38.7

Как это выглядит как «метка» в кластере средств K

library(tidyverse)  # data manipulation
library(cluster)    # clustering algorithms

Очистка данных

df <- USArrests
df <- na.omit(df)

Масштабирование

(df <- scale(df))

Вычисление К-средних Кластеризация

k2 <- kmeans(df, centers = 2, nstart = 25)

Пример вывода

Clustering vector:
       Alabama         Alaska        Arizona       Arkansas     California  
             2              2              2              1              2

Если есть только четыре переменные, откуда R или алгоритм кластеризации знаютсвязать кластер с именем состояния, которое технически не является столбцом?

1 Ответ

2 голосов
/ 20 апреля 2019

Первый «столбец» на самом деле является не столбцом, а индексом набора данных. Вместо индекса 1,2,3,4 и т. Д., Как по умолчанию, это Алабама, Аляска, Аризона, Арканзас и т. Д. Именно поэтому выполнение функции str () дает нам только 4 столбца, поскольку индекс никогда не обрабатывается как столбец.

Теперь результаты кластеризации показали, какому кластеру принадлежит каждое состояние. Это просто индекс, а алгоритм в конце говорит нам, к какому кластеру относится каждая строка. Например, если индекс был 1, 2, 3, 4 и т. Д. Вместо имен состояний, мы все равно получили бы результат, поскольку строка 1 представляет собой кластер 2, строка 2 находится в кластере 2, строка 3 находится в кластере 2, строка 4 находится в кластере 1 и т. Д. Алгоритм выполняет то, что вам говорят. Он видит индекс и помечает соответствующий кластер против этого индекса. Надеюсь это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...