R: Veri setinde NaN bulunmamasına rağmen “yabancı işlev çağrısı” na NaN / Inf atma Rastgele Orman [kapalı]


29

Bir veri kümesi üzerinde çapraz doğrulanmış rasgele bir orman çalıştırmak için şapka kullanıyorum. Y değişkeni bir faktördür. Veri setimde hiç NaN, Inf veya NA yok. Ancak rastgele orman çalıştırırken, alıyorum

Error in randomForest.default(m, y, ...) : 
  NA/NaN/Inf in foreign function call (arg 1)
In addition: There were 28 warnings (use warnings() to see them)
Warning messages:
1: In data.matrix(x) : NAs introduced by coercion
2: In data.matrix(x) : NAs introduced by coercion
3: In data.matrix(x) : NAs introduced by coercion
4: In data.matrix(x) : NAs introduced by coercion

Bu hatanın NA'nın zorlama tarafından getirilmesinden kaynaklanıp kaynaklanmadığı konusunda bir fikri olan var mı? Öyleyse, böyle bir zorlamayı nasıl önleyebilirim?

Yanıtlar:


36

Eğitim setinizde 'char' sınıfı ile birlikte bazı özellikler bulunmalıdır.

Lütfen bunu kontrol et

> a <- c("1", "2",letters[1:5], "3")
> as.numeric(a)
[1]  1  2 NA NA NA NA NA  3
Warning message:
NAs introduced by coercion 

Eklemek gerekirse, özellik gerçekten kategorikse, yine de onu bir faktöre dönüştürerek dahil edilebilir, örn. filan <-as.factor (filan)
P.Windridge

14

Muhtemelen nedeni, veri çerçevenizde bazı karakter değişkenlerine sahip olmanızdır.

Tüm karakter değişkenlerini bir satırdaki faktöre dönüştür:

library(dplyr) data_fac=data_char %>% mutate_if(is.character, as.factor)


2
Bunun mutate_if()için kullanmayı düşünmemiştim ... teşekkürler!
Andrew Brēza

3

Uyarıda gösterildiği gibi, karakter veri tiplerine sahip sütun sayısı (28) olan 28 hata vardı. Bu sütunları çalıştırmanın başlaması için izin verilen faktörlere zorlamak.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.