র্যান্ডমফোরস্ট এবং ভেরিয়েবল গুরুত্ব বাগ?


10

আমি মিডনেক্রেজএকিউরসি কলামে rfobject$importanceএবং এর importance(rfobject)মধ্যে পার্থক্য পেতে পারি না ।

উদাহরণ:

> data("iris")
> fit <- randomForest(Species~., data=iris, importance=TRUE)
> fit$importance
                  setosa  versicolor   virginica MeanDecreaseAccuracy MeanDecreaseGini
Sepal.Length 0.027078501 0.019418330 0.040497602           0.02898837         9.173648
Sepal.Width  0.008553449 0.001962036 0.006951771           0.00575489         2.472105
Petal.Length 0.313303381 0.291818815 0.280981959           0.29216790        41.284869
Petal.Width  0.349686983 0.318527008 0.270975757           0.31054451        46.323415
> importance(fit)
               setosa versicolor virginica MeanDecreaseAccuracy MeanDecreaseGini
Sepal.Length 1.277324   1.632586  1.758101            1.2233029         9.173648
Sepal.Width  1.007943   0.252736  1.014141            0.6293145         2.472105
Petal.Length 3.685513   4.434083  4.133621            2.5139980        41.284869
Petal.Width  3.896375   4.421567  4.385642            2.5371353        46.323415
> 

আমি আলাদা আলাদা মিডিয়েনসিগ্র্যাসঅ্যাকসিটির মান পাই তবে ভ্যারিয়েবল ( fit$importanceসেইসাথে জন্য importance(fit)) গুরুত্বের জন্য একই ক্রম পাই :

  1. Petal.Width

  2. Petal.Length

  3. Sepal.Length

  4. Sepal.Width

তবে অন্যান্য ডেটাসেটে আমি মাঝে মাঝে বিভিন্ন অর্ডার পাই। এখানে কি ঘটছে তা কেউ ব্যাখ্যা করতে পারেন? এটি সম্ভবত কোনও বাগ?


সম্পাদনা করুন ( মার্টিন ও'লিয়ারির প্রতিক্রিয়ায় )

ঠিক আছে, ধন্যবাদ! আমি অন্য কিছু লক্ষ্য।

কটাক্ষপাত গ্রহণ rfcv()ফাংশন আমি লাইনে খেয়াল:

impvar <- (1:p)[order(all.rf$importance[, 1], decreasing = TRUE)]

এই রেখার সাথে আমরা প্রথম কলামটি বেছে নিই all.rf$importanceযার মধ্যে আমাদের ক্লাস-নির্দিষ্ট ( প্রথম ফ্যাক্টরের জন্য ) পরিমাপের ক্রম দেয় কেবলমাত্র নির্ভুলতার জন্য গড় বর্ণনা হিসাবে গণনা করা। এটি সর্বদা ক্লাস ( MeanDecreaseAccuracy) এর যথার্থতায় গড় ডেসক্রিজ হিসাবে একই ক্রম হয় না । এটি কলাম MeanDecreaseAccuracyবা MeanDecreaseGiniকলামটি বেছে নেওয়া বা importance()মাপানো মানগুলির জন্য ফাংশনটি আরও ভাল ব্যবহার করা ভাল না ? সুতরাং আমরা ভেরিয়েবলের গুরুত্ব অনুসারে (সমস্ত শ্রেণীর উপরের) এবং কেবল প্রথম শ্রেণীর জন্য পরিবর্তনশীল গুরুত্ব অনুসারে র‌্যাঙ্কিং করা অনুক্রমের সংখ্যা ক্রমান্বয়ে হ্রাস পেয়েছি।

উত্তর:


13

না, এটি কোনও বাগ নয়। এতে প্রদত্ত মানগুলি fit$importanceআনসার্কড নয়, যখন প্রদত্ত মানগুলি importance(fit)স্ট্যান্ডার্ড বিচ্যুতিগুলির (যেমন প্রদত্ত fit$importanceSD) হিসাবে প্রকাশিত হয় । এটি সাধারণত আরও অর্থবোধক পদক্ষেপ। আপনি যদি "কাঁচা" মান চান তবে আপনি এটি ব্যবহার করতে পারেন importance(fit, scale=FALSE)

সাধারণভাবে, কোনও এক্সট্রাক্টর ফাংশন সরবরাহ করার পরে কোনও ফিট অবজেক্টের অভ্যন্তরীণ বিশদগুলির উপর নির্ভর করা খুব খারাপ ধারণা। এর বিষয়বস্তু সম্পর্কে কোনও গ্যারান্টি নেই fit$importance- এগুলি বিজ্ঞপ্তি ছাড়াই সংস্করণ থেকে সংস্করণে মারাত্মকভাবে পরিবর্তিত হতে পারে। সরবরাহ করার সময় আপনার সর্বদা এক্সট্র্যাক্টর ফাংশনটি ব্যবহার করা উচিত।


সম্পাদনা: হ্যাঁ, লাইনটি rfcv()কোনও বাগের মতো দেখায় বা কমপক্ষে অনিচ্ছাকৃত আচরণ। আপনি কেন পছন্দসই বিষয়বস্তুর উপর নির্ভর করতে পারবেন না এটি এটির একটি দুর্দান্ত উদাহরণ fit$importance। হইয়া একটি রিগ্রেশন বন এর জন্য হলে, প্রথম কলামে fit$importanceহয় %IncMSE, এর সমতুল্য importance(fit, type=1)। তবে এটি শ্রেণিবদ্ধকরণ ক্ষেত্রে ধরে রাখে না, যেখানে প্রতিটি ফ্যাক্টর স্তরের জন্য আপনার কাছে অতিরিক্ত কলাম রয়েছে।

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