Ошибка R Studio и RGUi столкнулись с фатальной ошибкой - Crashed. Прогнозирующее моделирование для категориально большого набора данных
Я работаю над набором данных, который имеет 21 атрибут. 16 являются категориальными, 3 являются порядковыми факторами и 2 являются датой / временем (целевая переменная). Количество рядов составляет 14512.
Чего я хочу достичь: этот набор данных в основном касается ежедневных офисных инцидентов, закрытых разными командами, и мы пытаемся предсказать время, которое потребуется в случае определенных переменных-предикторов.
Я использую R-Studio для анализа.
Проделанная работа: поэтому я решил использовать Knn для вычислений и преобразовал все предикторы в двоичные фиктивные переменные и целевую переменную в классы A, B,C.
Проблема: теперь, когда я применяю пример функции knn:
RPS_test_pred <- knn(train = RPS_train, test = RPS_test,cl = RPS_train_labels, k=1121)
оставляя k равным 1121(так как у нас есть 14513 строк в наборе данных, также данные обучения и теста делятся на соотношение 70:30)
R studio вылетает и закрывается, заявляя - произошла фатальная ошибка.
Пожалуйста, предложите любой другой способ вычисления этих данных или любой другой метод моделирования, который я должен использовать, который больше подойдет для этого типа данных в качестве примера.
1 ответ
В прошлом я работал с наборами данных, содержащими много порядковых и категориальных переменных, и добился успеха в выполнении некоторых преобразований, чтобы сделать их числовыми. Вот несколько примеров работы с данными о ценах на жилье.
Порядковые переменные Я бы начал с того, чтобы рекомендовать изменить ваши порядковые переменные на числовые значения в зависимости от их относительного порядка:
train$Exter.Quality[train$ExterQual == "Excellent"] <- 4
train$Exter.Quality[train$ExterQual == "Good"] <- 3
train$Exter.Quality[train$ExterQual == "Nominal"] <- 2
train$Exter.Quality[train$ExterQual == "Fair"] <- 1
Категориальные переменные Работал, чтобы использовать групповые рейтинги, основанные на среднем значении переменной ответа, которую вы просматриваете (Продажная цена в моем случае):
nbhdprice <- summarize(group_by(train, Neighborhood),
mean(SalePrice, na.rm=T))
nbhdprice_lo <- filter(nbhdprice, nbhdprice$`mean(SalePrice, na.rm = T)` < 140000)
nbhdprice_med <- filter(nbhdprice, nbhdprice$`mean(SalePrice, na.rm = T)` < 200000 &
nbhdprice$`mean(SalePrice, na.rm = T)` >= 140000 )
nbhdprice_hi <- filter(nbhdprice, nbhdprice$`mean(SalePrice, na.rm = T)` >= 200000)
train$nbhd_price_level[train$Neighborhood %in% nbhdprice_lo$Neighborhood] <- 1
train$nbhd_price_level[train$Neighborhood %in% nbhdprice_med$Neighborhood] <- 2
train$nbhd_price_level[train$Neighborhood %in% nbhdprice_hi$Neighborhood] <- 3
Дополнительные примеры можно найти в пространстве кода здесь: https://www.kaggle.com/skirmer/fun-with-real-estate-data/code