হাইপারটুনিং এক্সজিবিস্ট পরামিতি


27

শ্রেণিবদ্ধ এবং ধারাবাহিকভাবে নির্ভরশীল ভেরিয়েবল উভয়ের সাথে কাজ করার ক্ষেত্রে এক্সজিবিস্ট একটি দুর্দান্ত কাজ করে চলেছে। তবে, আমি কীভাবে এক্সজিবিস্ট সমস্যার জন্য অনুকূলিত পরামিতিগুলি নির্বাচন করব?

সাম্প্রতিক কাগল সমস্যার জন্য আমি এইভাবে পরামিতি প্রয়োগ করেছি:

param <- list(  objective           = "reg:linear", 
                booster = "gbtree",
                eta                 = 0.02, # 0.06, #0.01,
                max_depth           = 10, #changed from default of 8
                subsample           = 0.5, # 0.7
                colsample_bytree    = 0.7, # 0.7
                num_parallel_tree   = 5
                # alpha = 0.0001, 
                # lambda = 1
)


clf <- xgb.train(   params              = param, 
                    data                = dtrain, 
                    nrounds             = 3000, #300, #280, #125, #250, # changed from 300
                    verbose             = 0,
                    early.stop.round    = 100,
                    watchlist           = watchlist,
                    maximize            = FALSE,
                    feval=RMPSE
)

আমি পরীক্ষার জন্য যা যা করলাম তা এলোমেলোভাবে (অন্তর্দৃষ্টি দিয়ে) ফলাফলের উন্নতির জন্য প্যারামিটারগুলির আরও একটি সেট নির্বাচন করুন।

যাইহোক আমি কি প্যারামিটারগুলির অনুকূলিত (সেরা) সেটটি নির্বাচন স্বয়ংক্রিয় করতে পারি?

(উত্তরগুলি যে কোনও ভাষায় হতে পারে I'm আমি কেবল কৌশলটি সন্ধান করছি)

উত্তর:


40

আমি যখনই এক্সজিবিস্টের সাথে কাজ করি আমি প্রায়শই আমার নিজের হোমব্রিউ প্যারামিটার অনুসন্ধান করি তবে আপনি এটি ক্যারেট প্যাকেজের পাশাপাশি ক্রিসপের মতো উল্লিখিত হিসাবেও করতে পারেন।

  1. কাকপদ

এক্সজিবিস্টে হাইপারপ্যারামিটার অনুসন্ধানের জন্য ক্যারেট প্যাকেজটি কীভাবে ব্যবহার করতে হয় তার বিশদ ব্যাখ্যার জন্য ক্রস ভ্যালিটেটেড এই উত্তরটি দেখুন। এক্সজিবিস্ট গাছগুলির হাইপারপ্যারামিটারগুলি টিউন করবেন কীভাবে?

  1. কাস্টম গ্রিড অনুসন্ধান

আমি প্রায়শই ডেটা সায়েন্স পি। 14 এর টিপসের উপর ওভেন জাংয়ের স্লাইডগুলির উপর ভিত্তি করে কয়েকটি অনুমান দিয়ে শুরু করি

এখানে চিত্র বর্ণনা লিখুন

এখানে আপনি দেখতে পারেন যে আপনাকে বেশিরভাগ ক্ষেত্রে সারি স্যাম্পলিং, কলামের নমুনা এবং সম্ভবত সর্বোচ্চ গাছের গভীরতার সুর করতে হবে। আমি এই মুহুর্তে কাজ করছি এমন কোনও সমস্যার জন্য আমি কাস্টম সারি নমুনা এবং কলাম স্যাম্পলিং অনুসন্ধান করি:

searchGridSubCol <- expand.grid(subsample = c(0.5, 0.75, 1), 
                                colsample_bytree = c(0.6, 0.8, 1))
ntrees <- 100

#Build a xgb.DMatrix object
DMMatrixTrain <- xgb.DMatrix(data = yourMatrix, label = yourTarget)

rmseErrorsHyperparameters <- apply(searchGridSubCol, 1, function(parameterList){

    #Extract Parameters to test
    currentSubsampleRate <- parameterList[["subsample"]]
    currentColsampleRate <- parameterList[["colsample_bytree"]]

    xgboostModelCV <- xgb.cv(data =  DMMatrixTrain, nrounds = ntrees, nfold = 5, showsd = TRUE, 
                           metrics = "rmse", verbose = TRUE, "eval_metric" = "rmse",
                           "objective" = "reg:linear", "max.depth" = 15, "eta" = 2/ntrees,                               
                           "subsample" = currentSubsampleRate, "colsample_bytree" = currentColsampleRate)

    xvalidationScores <- as.data.frame(xgboostModelCV)
    #Save rmse of the last iteration
    rmse <- tail(xvalidationScores$test.rmse.mean, 1)

    return(c(rmse, currentSubsampleRate, currentColsampleRate))

})

এবং কিছু ggplot2 ম্যাজিকের সাথে একত্রিত হয়ে সেই ফল প্রয়োগের ফলাফল ব্যবহার করে আপনি অনুসন্ধানের একটি গ্রাফিকাল উপস্থাপনা প্লট করতে পারেন।আমার এক্সজিবিস্ট হাইপারপ্যারামিটার অনুসন্ধান

এই প্লটে হালকা রঙগুলি নিম্ন ত্রুটির প্রতিনিধিত্ব করে এবং প্রতিটি ব্লক কলামের নমুনা এবং সারি নমুনার এক অনন্য সমন্বয় উপস্থাপন করে। সুতরাং আপনি যদি এটা (বা গাছের গভীরতা) এর অতিরিক্ত অনুসন্ধান করতে চান তবে পরীক্ষিত প্রতিটি এটা পরামিতিগুলির জন্য এই প্লটগুলির একটির সাথে আপনি সমাপ্ত হবেন।

আমি দেখতে পাচ্ছি যে আপনার একটি আলাদা মূল্যায়ন মেট্রিক (আরএমপিএসই) রয়েছে, কেবল এটি ক্রস বৈধকরণ কার্যক্রমে প্লাগ করুন এবং আপনি পছন্দসই ফলাফল পাবেন। এছাড়াও আমি অন্যান্য প্যারামিটারগুলিকে সূক্ষ্ম সুর করার বিষয়ে খুব বেশি চিন্তা করব না কারণ এটি করা পারফরম্যান্সের খুব বেশি উন্নতি করবে না, কমপক্ষে আরও বেশি সময় ইঞ্জিনিয়ারিং বৈশিষ্ট্য ব্যয় করা বা ডেটা সাফ করার তুলনায় এতটা না।

  1. অন্যরা

এলোমেলো অনুসন্ধান এবং বায়েশিয়ান প্যারামিটার নির্বাচন করাও সম্ভব তবে আমি সেগুলির কোনও প্রয়োগ এখনও পাইনি / পাইনি।

ক্যারেটের সর্বাধিক সৃষ্টিকর্তা হাইপারপ্রেমেটারগুলির বেইসিয়ান অপটিমাইজেশন সম্পর্কে এখানে একটি ভাল প্রাইমার is

http://blog.revolutionanalytics.com/2016/06/bayesian-optimization-of-machine-learning-models.html


মিনি_চাইল্ড_ওয়েট পরামিতি সম্পর্কিত আমার একটি প্রশ্ন আছে। এটি 3 / (বিরল ইভেন্টের%) বলে মনে করে আমার 3 টি ক্লাস 0 (3.4%), 1 (96.4%) এবং 2 (0.2%) রয়েছে। সুতরাং এটি 3 / 3.6 বা 3 / 0.2 হওয়া উচিত? আমি প্রাক্তন

বেশিরভাগ ক্ষেত্রে, xgboost 5% এর নীচের যে কোনওটিকে বেশিরভাগ সমস্যার ক্ষেত্রে বিরল ঘটনা হিসাবে বিবেচনা করে, আমার ধারণা এটি অ্যালগোরিদমের অন্যতম গতি। আমি এটিকে সিটিআর সমস্যায় ক্লিক করার নীচে কিছু মনে করতে চাই "বিরল ঘটনা"। সুতরাং এই ক্ষেত্রে এটি 3 / 3.6 হবে। আমি মাঝে মাঝে কম তবে প্রায়শই না।
ওয়াকাক্স

1
rBayesianOptimizationপ্যাকেজটি
বিওর


0

গ্রিড, র্যান্ডম, বয়েসিয়ান এবং পিএসও ... ইত্যাদি

আপনি যখন উপরের সমস্ত এক্সজিবিস্টের সাথে কাজ করেন তখন কোনও ব্যাপার হয় না, কারণ এক্সজিবি আসলেই দ্রুত তাই আপনি সমাধান না পাওয়া পর্যন্ত আপনি অনেক হাইপারপ্রেমেটারগুলির সাথে গ্রিড ব্যবহার করতে পারেন।

আপনাকে সাহায্য করতে পারে এমন একটি জিনিস: আনুমানিক পদ্ধতি ব্যবহার করুন, এটি সর্বদা আমাকে সর্বনিম্ন এমএসএর ত্রুটি দেয়।

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