আমি র্যান্ডম ফরেস্ট কীভাবে কাজ করে তা বোঝার চেষ্টা করছি। গাছগুলি কীভাবে তৈরি হয় সে সম্পর্কে আমার উপলব্ধি আছে তবে ব্যাগের নমুনার বাইরে র্যান্ডম ফরেস্ট কীভাবে পূর্বাভাস দেয় তা বুঝতে পারি না। কেউ কি আমাকে একটি সহজ ব্যাখ্যা দিতে পারেন, দয়া করে? :)
আমি র্যান্ডম ফরেস্ট কীভাবে কাজ করে তা বোঝার চেষ্টা করছি। গাছগুলি কীভাবে তৈরি হয় সে সম্পর্কে আমার উপলব্ধি আছে তবে ব্যাগের নমুনার বাইরে র্যান্ডম ফরেস্ট কীভাবে পূর্বাভাস দেয় তা বুঝতে পারি না। কেউ কি আমাকে একটি সহজ ব্যাখ্যা দিতে পারেন, দয়া করে? :)
উত্তর:
বনের প্রতিটি গাছ আপনার প্রশিক্ষণ ডেটাতে পর্যবেক্ষণগুলির বুটস্ট্র্যাপ নমুনা থেকে তৈরি। বুটস্ট্র্যাপ নমুনায় সেই পর্যবেক্ষণগুলি গাছটি তৈরি করে, বুটস্ট্র্যাপের নমুনায় না থাকলেও ব্যাগের বাইরে (বা OOB) নমুনা তৈরি হয়।
এটি পরিষ্কার হওয়া উচিত যে ওওবি নমুনার ক্ষেত্রে যেমন গাছ তৈরি করতে ব্যবহৃত ডেটাগুলির ক্ষেত্রে একই ভেরিয়েবলগুলি উপলব্ধ। ওওবি নমুনার জন্য ভবিষ্যদ্বাণীগুলি পেতে, প্রত্যেকে বর্তমান গাছের নীচে এবং গাছের নিয়মগুলি টার্মিনাল নোডে না আসা পর্যন্ত অনুসরণ করা হয়। এটি সেই নির্দিষ্ট গাছের জন্য OOB পূর্বাভাস দেয়।
এই প্রক্রিয়াটি প্রচুর পরিমাণে পুনরাবৃত্তি হয়, প্রতিটি গাছ প্রশিক্ষণ ডেটা থেকে নেওয়া নতুন বুটস্ট্র্যাপ নমুনায় প্রশিক্ষিত এবং নতুন ওওবি নমুনাগুলির প্রাপ্ত ভবিষ্যদ্বাণীগুলি।
গাছের সংখ্যা বাড়ার সাথে সাথে যে কোনও একটি নমুনা একাধিকবার ওওবি নমুনায় থাকবে, এইভাবে এন গাছগুলিতে যেখানে একটি নমুনা ওওবিতে থাকে তার উপর "ভবিষ্যতের" গড় "প্রতিটি" প্রশিক্ষণের নমুনার জন্য ওওবি পূর্বাভাস হিসাবে ব্যবহৃত হয় গাছ 1, ..., এন। "গড়" দ্বারা আমরা ধারাবাহিক প্রতিক্রিয়ার জন্য ভবিষ্যদ্বাণীগুলির গড়টি ব্যবহার করি, বা সংখ্যাগরিষ্ঠ ভোটটি একটি স্বতন্ত্র প্রতিক্রিয়ার জন্য ব্যবহার করা যেতে পারে (সংখ্যাগরিষ্ঠ ভোটটি সেটগুলির উপরের বেশি ভোট সহ শ্রেণি হয় গাছ 1, ..., এন)।
উদাহরণস্বরূপ, ধরুন আমাদের 10 টি গাছে প্রশিক্ষণের জন্য 10 টি নমুনার জন্য নিম্নলিখিত ওওবি পূর্বাভাস ছিল
set.seed(123)
oob.p <- matrix(rpois(100, lambda = 4), ncol = 10)
colnames(oob.p) <- paste0("tree", seq_len(ncol(oob.p)))
rownames(oob.p) <- paste0("samp", seq_len(nrow(oob.p)))
oob.p[sample(length(oob.p), 50)] <- NA
oob.p
> oob.p
tree1 tree2 tree3 tree4 tree5 tree6 tree7 tree8 tree9 tree10
samp1 NA NA 7 8 2 1 NA 5 3 2
samp2 6 NA 5 7 3 NA NA NA NA NA
samp3 3 NA 5 NA NA NA 3 5 NA NA
samp4 6 NA 10 6 NA NA 3 NA 6 NA
samp5 NA 2 NA NA 2 NA 6 4 NA NA
samp6 NA 7 NA 4 NA 2 4 2 NA NA
samp7 NA NA NA 5 NA NA NA 3 9 5
samp8 7 1 4 NA NA 5 6 NA 7 NA
samp9 4 NA NA 3 NA 7 6 3 NA NA
samp10 4 8 2 2 NA NA 4 NA NA 4
যেখানে NA
অর্থ এই গাছের জন্য প্রশিক্ষণের ডেটাতে নমুনা ছিল (অন্য কথায় এটি ওওবি নমুনায় ছিল না)।
NA
প্রতিটি সারির অ- মানগুলির গড়টি পুরো বনের জন্য প্রতিটি নমুনার জন্য ওওবি পূর্বাভাস দেয়
> rowMeans(oob.p, na.rm = TRUE)
samp1 samp2 samp3 samp4 samp5 samp6 samp7 samp8 samp9 samp10
4.00 5.25 4.00 6.20 3.50 3.80 5.50 5.00 4.60 4.00
যেহেতু প্রতিটি গাছ বনে যুক্ত হয়, আমরা ওওবি ত্রুটিটি সেই গাছ সহ একটি পর্যন্ত গণনা করতে পারি। উদাহরণস্বরূপ, প্রতিটি নমুনার জন্য নীচে জমে থাকা উপায় রয়েছে:
FUN <- function(x) {
na <- is.na(x)
cs <- cumsum(x[!na]) / seq_len(sum(!na))
x[!na] <- cs
x
}
t(apply(oob.p, 1, FUN))
> print(t(apply(oob.p, 1, FUN)), digits = 3)
tree1 tree2 tree3 tree4 tree5 tree6 tree7 tree8 tree9 tree10
samp1 NA NA 7.00 7.50 5.67 4.50 NA 4.6 4.33 4.0
samp2 6 NA 5.50 6.00 5.25 NA NA NA NA NA
samp3 3 NA 4.00 NA NA NA 3.67 4.0 NA NA
samp4 6 NA 8.00 7.33 NA NA 6.25 NA 6.20 NA
samp5 NA 2 NA NA 2.00 NA 3.33 3.5 NA NA
samp6 NA 7 NA 5.50 NA 4.33 4.25 3.8 NA NA
samp7 NA NA NA 5.00 NA NA NA 4.0 5.67 5.5
samp8 7 4 4.00 NA NA 4.25 4.60 NA 5.00 NA
samp9 4 NA NA 3.50 NA 4.67 5.00 4.6 NA NA
samp10 4 6 4.67 4.00 NA NA 4.00 NA NA 4.0
এই উপায়ে আমরা দেখি কীভাবে একটি নির্দিষ্ট পুনরাবৃত্তি পর্যন্ত বনের N গাছগুলির উপরে পূর্বাভাস সঞ্চিত হয়। আপনি যদি সারিগুলি জুড়ে পড়ে থাকেন তবে ডান-সর্বাধিক অ- NA
মান হ'ল আমি ওওবি পূর্বাভাসের জন্য উপরে দেখাব। এইভাবেই ওওবির পারফরম্যান্সের ট্রেস তৈরি করা যায় - এন গাছের উপরে জমে জমে থাকা ওওবি পূর্বাভাসের ভিত্তিতে ওওবি নমুনাগুলির জন্য একটি আরএমএসইপি গণনা করা যায়।
দ্রষ্টব্য যে আর-র জন্য র্যান্ডমফোরস্ট প্যাকেজে র্যান্ডমফোরস্ট কোডটির অভ্যন্তরীণ থেকে দেখানো আর কোডটি নেওয়া হয়নি - আমি কেবলমাত্র একটি সাধারণ কোডটি ছুঁড়েছি যাতে আপনি প্রতিটি গাছ থেকে ভবিষ্যদ্বাণীগুলি নির্ধারণ করার পরে যা চলছে তা অনুসরণ করতে পারেন।
এটি প্রতিটি গাছ একটি বুটস্ট্র্যাপ নমুনা থেকে নির্মিত এবং একটি এলোমেলো বনের মধ্যে প্রচুর পরিমাণে গাছ রয়েছে যেমন প্রতিটি প্রশিক্ষণ সেট পর্যবেক্ষণ এক বা একাধিক গাছের জন্য ওওবি নমুনায় থাকে যে ওওবি পূর্বাভাস সকলের জন্য সরবরাহ করা যেতে পারে প্রশিক্ষণ তথ্য নমুনা।
আমি কিছু OOB কেসের জন্য ডেটা হারিয়ে যাওয়া ইত্যাদির মতো বিষয়গুলিকে ঘটিয়েছি these এছাড়াও লক্ষ করুন যে বনের প্রতিটি গাছ কেবল mtry
এলোমেলোভাবে নির্বাচিত ভেরিয়েবল ব্যবহার করে।
http://www.ime.unicamp.br/~ra109078/PED/Data%20Minig%20with%20R/Data%20Mining%20with%20R.pdf
। 115-116 পৃষ্ঠায় লেখকেরা variable importance
প্রযুক্তিগত সূচকগুলি চয়ন করতে আরএফ ব্যবহার করেন ।
"To get predictions for the OOB sample, each one is passed down the current tree and the rules for the tree followed until it arrives in a terminal node"
, আপনার কি কিrules for the tree
সেগুলির একটি সহজ ব্যাখ্যা আছে? এবং আমি কীsample
এক সারি হিসাবে সঠিকভাবে বুঝতে পারি যদি আমি বুঝতে পারি যে নমুনাগুলিgroups
পর্যবেক্ষণের মধ্যে রয়েছে যে গাছগুলি ডেটা ভাগ করে দেয়?