Я ищу пакет вменения KNN. Я искал пакет вменения ( http://cran.r-project.org/web/packages/imputation/imputation.pdf ), но по какой-то причине вменяемая функция KNN (даже если следовать примеру из описания) только кажется вменять нулевые значения (согласно ниже). Я оглядывался по сторонам, но пока не могу что-то найти, и поэтому задавался вопросом, есть ли у кого-нибудь другие предложения относительно хороших пакетов вменения KNN?
W
В приведенном ниже коде значения NA заменяются нулями, а не средним значением Knn.
require(imputation)
x = matrix(rnorm(100),10,10)
x.missing = x > 1
x[x.missing] = NA
kNNImpute(x, 3)
x
kNNImpute
чтобы вообще работать (а не работать хорошо), поэтому вам, вероятно, наплевать на предвзятость.Ответы:
Вы также можете попробовать следующий пакет: DMwR .
В случае 3 NN произошел сбой, что привело к «Ошибка в knnImputation (x, k = 3): недостаточно полных случаев для вычисления соседей».
Тем не менее, попытка 2 дает.
Вы можете проверить достаточное количество наблюдений, используя complete.cases (x), где это значение должно быть не менее k.
Одним из способов решения этой проблемы является ослабление ваших требований (т.е. менее неполных строк), путем 1) увеличения порога NA или, в качестве альтернативы, 2) увеличения количества наблюдений.
Вот первое:
вот пример 2-го ...
По крайней мере, k = 3 полных строки удовлетворяются, таким образом, это может быть вменено для k = 3.
источник
> х (исходная матрица)
> y $ x (вмененная матрица)
Это вмененные ценности, которые это может. Те, которые не могут быть вменены, устанавливаются в ноль.
источник
imputation
пакетов больше не существует (для R версии 3.1.2)Пакет вменения больше не на CRAN.
Один пакет, отличный от DMwR, который предлагает функцию вменения kNN, - это VIM.
Также прост в использовании:
источник
источник
Причина, по которой R не может быть вменен, состоит в том, что во многих случаях отсутствует более одного атрибута в строке и, следовательно, он не может вычислить ближайшего соседа. В качестве альтернативы вы можете вменять интервальные переменные с прогнозируемыми вероятностями из нормального распределения (или, если его искажение использует гамма-распределение, имеющее аналогичный наклон). и использовать дерево решений для прогнозирования пропущенных значений в случае переменной класса.
источник