এলোমেলো বন এবং ভবিষ্যদ্বাণী


14

আমি র্যান্ডম ফরেস্ট কীভাবে কাজ করে তা বোঝার চেষ্টা করছি। গাছগুলি কীভাবে তৈরি হয় সে সম্পর্কে আমার উপলব্ধি আছে তবে ব্যাগের নমুনার বাইরে র্যান্ডম ফরেস্ট কীভাবে পূর্বাভাস দেয় তা বুঝতে পারি না। কেউ কি আমাকে একটি সহজ ব্যাখ্যা দিতে পারেন, দয়া করে? :)

উত্তর:


17

বনের প্রতিটি গাছ আপনার প্রশিক্ষণ ডেটাতে পর্যবেক্ষণগুলির বুটস্ট্র্যাপ নমুনা থেকে তৈরি। বুটস্ট্র্যাপ নমুনায় সেই পর্যবেক্ষণগুলি গাছটি তৈরি করে, বুটস্ট্র্যাপের নমুনায় না থাকলেও ব্যাগের বাইরে (বা 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এলোমেলোভাবে নির্বাচিত ভেরিয়েবল ব্যবহার করে।


দুর্দান্ত উত্তর গ্যাভিন! আপনি যখন লিখবেন "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পর্যবেক্ষণের মধ্যে রয়েছে যে গাছগুলি ডেটা ভাগ করে দেয়?
ব্যবহারকারী 1665355

@ ব্যবহারকারী 1665355 আমি অনুমান করেছি যে আপনি বুঝতে পেরেছেন যে কীভাবে প্রতিরোধ বা শ্রেণিবদ্ধকরণ গাছগুলি নির্মিত হয়েছিল? আরএফের গাছগুলি আলাদা নয় (সম্ভবত বিধি বিধান ব্যতীত)। প্রতিটি গাছ প্রতিক্রিয়ার জন্য অনুরূপ "মান" সহ নমুনার গোষ্ঠীতে প্রশিক্ষণ ডেটা বিভক্ত করে। পরিবর্তনশীল এবং বিভক্ত অবস্থান (উদাঃ পিএইচ> 4.5) যা সর্বোত্তমভাবে পূর্বাভাস দেয় (অর্থাত "ত্রুটি হ্রাস করে") গাছটিতে প্রথম বিভাজন বা নিয়ম তৈরি করে। এরপরে এই বিভাজনের প্রতিটি শাখা ঘুরে দেখা যায় এবং নতুন বিভাজন / বিধিগুলি চিহ্নিত করা হয় যা গাছের "ত্রুটি" হ্রাস করে min এটি বাইনারি রিকার্সিভ পার্টিশন অ্যালগরিদম। বিভাজন নিয়ম।
মনিকা পুনরায় ইনস্টল করুন - জি সিম্পসন

@ ব্যবহারকারী 1665355 হ্যাঁ, দুঃখিত আমি একটি ক্ষেত্র থেকে এসেছি যেখানে একটি নমুনা পর্যবেক্ষণ, ডেটা সেটের এক সারি। তবে আপনি যখন বুটস্ট্র্যাপের নমুনা সম্পর্কে কথা বলতে শুরু করেন, তা হ'ল এন পর্যবেক্ষণগুলির একটি সেট, প্রশিক্ষণের ডেটা থেকে প্রতিস্থাপনের সাথে আঁকা এবং তাই এন সারি বা পর্যবেক্ষণ রয়েছে। আমি আমার পরিভাষাটি পরে পরিষ্কার করার চেষ্টা করব।
মনিকা পুনরায় ইনস্টল করুন - জি সিম্পসন

ধন্যবাদ! আমি বোধহয় বোকা প্রশ্নগুলির জন্য দুঃখিত তাই আরএফ-এ আমি খুব নতুন :) আমার মনে হয় আপনার লেখা প্রায় সবই আমি বুঝতে পেরেছি, খুব ভাল ব্যাখ্যা! আমি কেবল ভেরিয়েবল এবং বিভক্ত লোকেশন (উদাঃ পিএইচ> 4.5) সম্পর্কে বিস্মিত হয়েছি যা সেরা পূর্বাভাস দেয় (যেমন "ত্রুটি হ্রাস করে") গাছের মধ্যে প্রথম বিভক্তি বা নিয়ম গঠন করে ... ত্রুটিটি কী তা আমি বুঝতে পারি না। : / আমি পড়ছি এবং বুঝতে চেষ্টা করছি http://www.ime.unicamp.br/~ra109078/PED/Data%20Minig%20with%20R/Data%20Mining%20with%20R.pdf। 115-116 পৃষ্ঠায় লেখকেরা variable importanceপ্রযুক্তিগত সূচকগুলি চয়ন করতে আরএফ ব্যবহার করেন ।
ব্যবহারকারী 1665355

"ত্রুটি" নির্ভর করে কী ধরণের গাছ লাগানো হচ্ছে তার উপর। অবিচ্ছিন্ন (গাউসিয়ান) প্রতিক্রিয়াগুলির জন্য ডিভ্যান্স হ'ল স্বাভাবিক মাপ। Rpart প্যাকেজে, গিনি সহগটি বিভাগীয় প্রতিক্রিয়াগুলির জন্য ডিফল্ট, তবে বিভিন্ন মডেল ইত্যাদির জন্য আরও কিছু রয়েছে you আপনি যদি এটির সাথে সফলভাবে স্থাপন করতে চান তবে আপনার নিজের গাছ এবং আরএফ সম্পর্কিত একটি ভাল বইটি গ্রহণ করা উচিত। ভেরিয়েবল ইমম্পর্ট্যান্স ব্যবস্থাগুলি আলাদা কিছু - যখন সেই ভেরিয়েবলটি কোনও গাছের সাথে মানিয়ে যায় এবং যখন সেই ভেরিয়েবলটি ব্যবহার করা হয় না তখন কতটা পরিবর্তন হয় তা দেখে তারা ডেটা সেট করা প্রতিটি ভেরিয়েবলের "গুরুত্ব" পরিমাপ করে।
মনিকা পুনরায় ইনস্টল করুন - জি সিম্পসন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.