সম্পাদনা: নীচের মন্তব্যে যেমন উল্লেখ করা হয়েছে তেমনি ভবিষ্যদ্বাণীগুলির জন্য আত্মবিশ্বাসের অন্তর দেয় এবং পূর্বাভাসের অন্তরগুলি কঠোরভাবে নয় । আমার উত্তরটি নিয়ে কিছুটা ট্রিগার খুশি হয়েছিল এবং এটিকে কিছু অতিরিক্ত চিন্তা দেওয়া উচিত ছিল।
এই উত্তরটি উপেক্ষা করে নির্দ্বিধায় বা পূর্বাভাস অন্তরগুলি পাওয়ার জন্য কোডটি তৈরি করার চেষ্টা করুন।
পূর্বাভাস অন্তরগুলি কয়েকবার তৈরি করার জন্য আমি সাধারণ বুটস্ট্র্যাপ ব্যবহার করেছি তবে অন্যান্য (আরও ভাল) উপায় থাকতে পারে।
প্যাকেজের oil
ডেটা বিবেচনা করুন caret
এবং ধরুন আমরা প্যালমিটিকের উপর স্টিয়ারিকের প্রভাবের জন্য আংশিক নির্ভরতা এবং 95% অন্তর তৈরি করতে চাই। নীচে কেবলমাত্র একটি সাধারণ উদাহরণ তবে আপনি আপনার প্রয়োজন অনুসারে এটি নিয়ে খেলতে পারেন। যুক্তিটি gbm
মঞ্জুর করতে প্যাকেজটি আপডেট হয়েছে তা নিশ্চিত করুনgrid.points
plot.gbm
library(caret)
data(oil)
#train the gbm using just the defaults.
tr <- train(Palmitic ~ ., method = "gbm" ,data = fattyAcids, verbose = FALSE)
#Points to be used for prediction. Use the quartiles here just for illustration
x.pt <- quantile(fattyAcids$Stearic, c(0.25, 0.5, 0.75))
#Generate the predictions, or in this case, the partial dependencies at the selected points. Substitute plot() for predict() to get predictions
p <- plot(tr$finalModel, "Stearic", grid.levels = x.pt, return.grid = TRUE)
#Bootstrap the process to get prediction intervals
library(boot)
bootfun <- function(data, indices) {
data <- data[indices,]
#As before, just the defaults in this example. Palmitic is the first variable, hence data[,1]
tr <- train(data[,-1], data[,1], method = "gbm", verbose=FALSE)
# ... other steps, e.g. using the oneSE rule etc ...
#Return partial dependencies (or predictions)
plot(tr$finalModel, "Stearic", grid.levels = x.pt, return.grid = TRUE)$y
#or predict(tr$finalModel, data = ...)
}
#Perform the bootstrap, this can be very time consuming. Just 99 replicates here but we usually want to do more, e.g. 500. Consider using the parallel option
b <- boot(data = fattyAcids, statistic = bootfun, R = 99)
#Get the 95% intervals from the boot object as the 2.5th and 97.5th percentiles
lims <- t(apply(b$t, 2, FUN = function(x) quantile(x, c(0.025, 0.975))))
এটি করার একটি উপায় যা অন্তত জিবিএম টিউনিং থেকে উদ্ভূত অনিশ্চয়তার জন্য অ্যাকাউন্ট করার চেষ্টা করে। একটি অনুরূপ পদ্ধতির ব্যবহার করা হয়েছে http://onlinelibrary.wiley.com/doi/10.2193/2006-503/abstract
কখনও কখনও বিন্দু অনুমান ব্যবধানের বাইরে থাকে তবে টিউনিং গ্রিডটি সংশোধন করা (অর্থাত্ গাছের সংখ্যা এবং / বা গভীরতা বৃদ্ধি করা) সাধারণত এটি সমাধান করে।
আশাকরি এটা সাহায্য করবে!