আর: র‌্যান্ডম ফরেস্ট ডায়েসেটে কোনও এনএএন না থাকা সত্ত্বেও "বিদেশী ফাংশন কল" ত্রুটিতে NaN / Inf নিক্ষেপ করছে [বন্ধ]


29

আমি একটি ডেটাসেটের উপরে ক্রস বৈধতাযুক্ত এলোমেলো বন চালানোর জন্য ক্যারেট ব্যবহার করছি। Y পরিবর্তনশীল একটি ফ্যাক্টর। আমার ডেটাসেটে কোনও এনএএন, ইনফ, বা এনএ নেই। তবে এলোমেলো বন চালানোর সময়, আমি পাই

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

কারও কি ধারণা রয়েছে যে এনএর দ্বারা জোর করে প্রবর্তন করার ফলে এই ত্রুটি ঘটেছে? যদি তা হয় তবে আমি কীভাবে এই ধরনের জবরদস্তি রোধ করতে পারি?

উত্তর:


36

ক্লাস 'চর' নিয়ে আপনার প্রশিক্ষণে কিছু বৈশিষ্ট্য থাকতে হবে।

অনুগ্রহপূর্বক এটি যাচাই করুন

> 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 

কেবল যুক্ত করার জন্য- যদি বৈশিষ্ট্যটি প্রকৃতপক্ষে শ্রেণিবদ্ধ হয় তবে এটি এটিকে কোনও ফ্যাক্টরে রূপান্তর করে অন্তর্ভুক্ত করা যেতে পারে, যেমন। blah <-as.factor (blah)
P.Windridge

14

সম্ভবত কারণটি আপনার ডেটা ফ্রেমে কিছু চরিত্রের পরিবর্তনশীল রয়েছে।

সমস্ত অক্ষর ভেরিয়েবলকে এক লাইনে ফ্যাক্টারে রূপান্তর করুন:

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


2
আমি এর জন্য ব্যবহার করার কথা ভাবিনি mutate_if()... ধন্যবাদ!
অ্যান্ড্রু ব্রাজা

3

সতর্কবাণীতে দেখানো হয়েছে এমন ২৮ টি ত্রুটি ছিল যা অক্ষরের ডেটাটাইপগুলি ("chr") সহ কলামগুলির সংখ্যা হতে পারে। এই কলামগুলিকে রান শুরু করার জন্য অনুমোদিত কারণগুলিতে বাধ্য করা হচ্ছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.