ক্রস বৈধকরণের কোন পদ্ধতিটি সেরা তা আমি কীভাবে জানতে পারি?


36

আমি আমার ক্রুশের বৈধতা যাচাইয়ের পদ্ধতিটি আমার পরিস্থিতির পক্ষে সেরা তা বের করার চেষ্টা করছি।

নিম্নলিখিত তথ্যগুলি ইস্যুটি (আরে) এর মাধ্যমে কাজ করার জন্য কেবল উদাহরণ, তবে আমার আসল Xতথ্য ( xmat) একে অপরের সাথে সম্পর্কিত এবং yভেরিয়েবল ( ymat) এর সাথে বিভিন্ন ডিগ্রি সম্পর্কিত । আমি আর কোড সরবরাহ করেছি, তবে আমার প্রশ্ন আর সম্পর্কে নয় বরং পদ্ধতিগুলি সম্পর্কে। Xmatএক্স ভেরিয়েবল V1 থেকে V100 ymatঅন্তর্ভুক্ত করে যখন একটি একক y ভেরিয়েবল অন্তর্ভুক্ত।

set.seed(1233)
xmat           <- matrix(sample(-1:1, 20000, replace = TRUE), ncol = 100)
colnames(xmat) <- paste("V", 1:100, sep ="")
rownames(xmat) <- paste("S", 1:200, sep ="")
  # the real y data are correlated with xmat
ymat           <- matrix(rnorm(200, 70,20), ncol = 1)
rownames(ymat) <- paste("S", 1:200, sep="")

আমি yসমস্ত ভেরিয়েবলের উপর ভিত্তি করে পূর্বাভাস দেওয়ার জন্য একটি মডেল তৈরি করতে চাই xmat। সুতরাং এটি লিনিয়ার রিগ্রেশন মডেল হবে y ~ V1 + V2 + V3+ ... + V100। একটি পর্যালোচনা থেকে, আমি নিম্নলিখিত তিনটি ক্রস বৈধকরণ পদ্ধতি দেখতে পাচ্ছি:

  1. প্রায় অর্ধেকের মধ্যে ডেটা বিভক্ত করুন এবং একটি প্রশিক্ষণের জন্য এবং অন্য অর্ধেক পরীক্ষার জন্য (ক্রস বৈধকরণ) ব্যবহার করুন:

    prop       <- 0.5 # proportion of subset data
    set.seed(1234)
      # training data set 
    training.s <- sample (1:nrow(xmat), round(prop*nrow(xmat),0))
    xmat.train <- xmat[training.s,]
    ymat.train <- ymat[training.s,]
    
      # testing data set 
    testing.s <- setdiff(1:nrow(xmat), training)
    xmat.test <- xmat[testing.s,]
    ymat.test <- ymat[testing.s,]
  2. কে-ভাঁজ ক্রস বৈধকরণ - 10 ভাঁজ ক্রস বৈধতা ব্যবহার করে:

    mydata <- data.frame(ymat, xmat)
    fit    <- lm(ymat ~ ., data=mydata)
    library(DAAG)
    cv.lm(df=mydata, fit, m=10) # ten-fold cross validation 
  3. একবারে একটি মান বা কয়েকটি মান Mas প্রক্রিয়া n বার পুনরাবৃত্তি হয়।

    n = 500 
    predicted.v <- rep(NA, n)
    real.v      <- rep(NA, n)
    
    for (i in 1:n){
      masked.id <- sample (1:nrow(xmat), 1)
      ymat1     <- ymat 
      real.v[i] <- ymat[masked.id,]
      ymat1[masked.id,] <- NA
      mydata            <- data.frame(ymat1, xmat)
      fit               <- lm(ymat1 ~ ., data=mydata)
      predicted.v[i]    <- fit$fitted.values[masked.id]
    }

কোন পরিস্থিতিতে যেটি সবচেয়ে ভাল তা আমি কীভাবে জানতে পারি? অন্য পদ্ধতি আছে? Bootstrap validationবনাম CV? কাজের উদাহরণ প্রশংসা করা হবে।


আপনি কি ডেটাটির বৈধতা পরীক্ষা করতে বা বি-সহগের পূর্বাভাসের অনুমান বা মানগুলি যাচাই করতে আগ্রহী?
সুভাষ সি। দাবার


পদ্ধতি # 1 নিয়ে আমার যে সমস্যাটি রয়েছে তা হ'ল আপনার বাস্তবতার তুলনায় নমুনার আকারটি অনেক ছোট। সুতরাং অনুমান করা আত্মবিশ্বাস ব্যান্ড / পরিবর্তনশীলতা সম্ভবত আরও বড় হতে পারে। এছাড়াও, আমি অনুমান করছি পদ্ধতি # 2 এবং পদ্ধতি # 3 পারফরম্যান্সে একই রকম হবে। আমি যদি আপনি হয়ে থাকি তবে কে = 5,6, ..., 14,15 এর জন্য কে-ফোল্ড ক্রস বৈধতা দিয়ে শুরু করুন এবং দেখুন আপনার ফলাফলগুলি মোটামুটি একই রকম কিনা।
কিয়ান

এছাড়াও, আপনারা কি কোভেরিয়েটের সংখ্যা হ্রাস করার জন্য মডেল নির্বাচন করার পরিকল্পনা করছেন? 100 অনেকটা মনে হচ্ছে।
কিয়ান

@ ব্যবহারকারী 2432701 না আমি সমস্ত 100 ব্যবহার করতে চাই না
rdorlearn

উত্তর:


34

যেহেতু এই প্রশ্নের উপর ওপি একটি অনুগ্রহ করেছে, তাই এটি কিছুটা দৃষ্টি আকর্ষণ করবে এবং সুতরাং এটি ওপির সরাসরি উত্তর না দিলেও কিছু সাধারণ ধারণা নিয়ে আলোচনা করার সঠিক জায়গা।

প্রথম, নাম:

ক) ক্রস বৈধতা সমস্ত অনুমান / পরিমাপ কৌশলগুলির সাধারণ নাম যা ট্রেনের সেটের চেয়ে পৃথক কোনও পরীক্ষা সেট ব্যবহার করে। প্রতিশব্দ: বহিরাগত-নমুনা বা অতিরিক্ত-নমুনা অনুমান। প্রতিশব্দ: ইন-নমুনা অনুমান।

নমুনা অনুমানটি এমন কৌশলগুলি যা মডেলটির গুণমান নির্ধারণের জন্য প্রশিক্ষণে কিছু তথ্য ব্যবহার করে (অগত্যা ত্রুটি নয়)। মডেলটির উচ্চতর পক্ষপাত থাকলে এটি খুব সাধারণ - এটি - এটি ডেটা সম্পর্কে দৃ strong় অনুমান করে। রৈখিক মডেলগুলিতে (একটি উচ্চ পক্ষপাতের মডেল), প্রশ্নের উদাহরণ হিসাবে, কেউ আর-স্কোয়ারড, এআইসিসি, বিআইসি, বিচ্যুতি ব্যবহার করে মডেল মানের হিসাবে - এই সমস্তগুলি ইন-নমুনা অনুমানকারী। উদাহরণস্বরূপ, এসভিএম-তে, সমর্থন ভেক্টরের অনুপাতের ডেটা সংখ্যার সংখ্যার সাথে মডেলটির ত্রুটির একটি নমুনা অনুমান।

অনেকগুলি ক্রস বৈধকরণের কৌশল রয়েছে:

খ) ধরে রাখা উপরের পদ্ধতি # 1 করা। সেটটি একটি প্রশিক্ষণ এবং একটি পরীক্ষায় বিভক্ত করুন। প্রশিক্ষণ এবং পরীক্ষার সেটগুলির আপেক্ষিক আকারের বিষয়ে আলোচনা এবং অনুশীলনের একটি দীর্ঘ ইতিহাস রয়েছে।

গ) কে- ভাঁজ - পদ্ধতি # 2 উপরে। বেশ মান।

d) ছাড়ুন-এক-আউট - পদ্ধতি # 3 উপরে।

ঙ) বুটস্ট্র্যাপ : যদি আপনার সেটে এন ডেটা থাকে, সেট থেকে প্রতিক্রিয়াতে এলোমেলোভাবে এন নমুনা নির্বাচন করুন এবং এটি প্রশিক্ষণ হিসাবে ব্যবহার করুন। মূল সেট থেকে প্রাপ্ত ডেটা যা কোনও সময় নমুনা হয়ে যায়নি তা পরীক্ষার সেট হিসাবে ব্যবহৃত হয়। মডেলটির ত্রুটির চূড়ান্ত অনুমানের গণনা করার বিভিন্ন উপায় রয়েছে যা পরীক্ষার সেট (নমুনা ছাড়াই) এবং ট্রেনের সেট (ইন-নমুনা) এর জন্য ত্রুটি উভয়ই ব্যবহার করে। উদাহরণস্বরূপ, .632 বুটস্ট্র্যাপ দেখুন। আমি মনে করি একটি .632+ সূত্রও রয়েছে - সেগুলি এমন সূত্র যা নমুনা ছাড়াই এবং ইন-নমুনা ত্রুটি উভয়ই ব্যবহার করে মডেলের আসল ত্রুটিটি অনুমান করে।

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


পরবর্তী প্রশ্নটি হল, কোন পদ্ধতিটি "ভাল"।সমস্যাটি "উন্নত" অর্থ কী means

1) প্রথম উত্তরটি হ'ল এই প্রতিটি পদ্ধতির মডেল ত্রুটির অনুমানের জন্য পক্ষপাতদুষ্ট জন্য ভবিষ্যতের (ভবিষ্যতের তথ্যের অসীম পরিমাণের জন্য)।

২) দ্বিতীয় বিকল্পটি হ'ল এই পদ্ধতিগুলির প্রতিটিটি কতটা দ্রুত বা কত ভালভাবে সত্য মডেল ত্রুটিতে রূপান্তরিত করে (যদি তারা পক্ষপাতদুষ্ট না হয়)। আমি বিশ্বাস করি এটি এখনও গবেষণার বিষয় is আমাকে এই দুটি কাগজপত্র (পে-ওয়ালের পিছনে) দিকে ইশারা করুন তবে বিমূর্তটি তারা কী অর্জন করতে চাইছে সে সম্পর্কে কিছুটা বোঝার সুযোগ দেয়। এছাড়াও খেয়াল করুন যে কে- ফোল্ডকে "ক্রস-বৈধকরণ" হিসাবে নিজেরাই বলা খুব সাধারণ ।

এই বিষয়গুলি সম্পর্কে সম্ভবত আরও অনেকগুলি কাগজপত্র রয়েছে। সেগুলি কেবল কয়েকটি উদাহরণ।

3) "আরও ভাল" এর আরেকটি দিক হ'ল: উপরের কৌশলগুলির মধ্যে একটির ব্যবহার করে মডেল ত্রুটির একটি নির্দিষ্ট পরিমাপ দেওয়া হয়েছে, আপনি কীভাবে নিশ্চিত হতে পারেন যে সঠিক মডেলের ত্রুটিটি নিকটে রয়েছে।

সাধারণভাবে, এক্ষেত্রে আপনি ত্রুটির অনেকগুলি পদক্ষেপ নিতে এবং একটি আত্মবিশ্বাসের ব্যবধান (বা আপনি যদি বায়েসিয়ান পদ্ধতির অনুসরণ করেন তবে বিশ্বাসযোগ্য ব্যবধান) গণনা করতে চান । এই ক্ষেত্রে, সমস্যাটি হ'ল ত্রুটি ব্যবস্থাপনার সেটটির পরিবর্তনের উপর আপনি কতটা বিশ্বাস করতে পারেন। লক্ষ করুন যে, ছুটি এক-আউটের জন্য ব্যতীত, উপরের সব কৌশল আপনি আলাদা আলাদা ব্যবস্থা (দেব একটি জন্য ব্যবস্থা ধা, এন একটি জন্য ব্যবস্থা এন -repeated আউট রাখা) এবং এইভাবে আপনি ভ্যারিয়েন্স (অথবা স্ট্যানডার্ড ডেভিয়েশন পরিমাপ করতে পারেন ) এই সেটটি এবং ত্রুটির পরিমাপের জন্য একটি আত্মবিশ্বাসের ব্যবধান গণনা করুন।

এখানে বিষয়গুলি কিছুটা জটিল হয়ে যায়। থেকে কি আমি কাগজ থেকে বুঝতে ভ্যারিয়েন্স এর কোনো নিরপেক্ষ মূল্নির্ধারক ধা ক্রস-বৈধতা (paywall পিছনে না), একটি ভ্যারিয়েন্স আপনি যদি একটি থেকে পেতে বিশ্বাস করতে পারি না ধা - তাই এক থেকে একটি ভাল আস্থা ব্যবধান গঠন করা যায় না - folds। তত্ত্বাবধানে শ্রেণিবদ্ধকরণ শেখার অ্যালগরিদমগুলি (পেওয়ালের পিছনে নয়) তুলনা করার জন্য আনুমানিক পরিসংখ্যানগত টেস্টগুলি থেকে কাগজটি যা আমি বুঝতে পারি তার থেকে , কৌশলগুলি যা পুনরাবৃত্তি ব্যবস্থাগুলি ব্যবহার করে (পুনরাবৃত্তি কে- ভাঁজ, বার বার হোল্ড-আউট - বুটস্ট্র্যাপ সম্পর্কে নিশ্চিত নয়) ত্রুটি পরিমাপের প্রকৃত প্রকরণটি উপ-অনুমান করবে (এটি দেখতে কিছুটা সহজ) - যেহেতু আপনি পরিমাপটি খুব বড় সংখ্যার পুনরাবৃত্তি করেন তবে আপনি একটি সীমাবদ্ধ সেট থেকে নমুনা নিচ্ছেন অনেক সময় একই মানগুলি পুনরাবৃত্তি করতে থাকবে, যা গড়কে একই রাখে তবে বৈকল্পিকতা হ্রাস করে)। সুতরাং পুনরাবৃত্তি ব্যবস্থা কৌশলগুলি আত্মবিশ্বাসের বিরতিতে খুব আশাবাদী হবে।

এই শেষ কাগজে 5 টি পুনরাবৃত্তি 2-ভাঁজ করার পরামর্শ দেয় - যাকে তিনি 5 × 2 সিভি বলেছেন - অনেকগুলি পরিমাপের (10) ভাল ব্যালেন্স হিসাবে দেখায় তবে খুব বেশি পুনরাবৃত্তি নয়।

সম্পাদনা করুন:

অবশ্যই এই কয়েকটি প্রশ্নের ক্রস ভ্যালিডেটে দুর্দান্ত উত্তর রয়েছে (যদিও তারা কখনও কখনও নিজেদের মধ্যে একমত হয় না)। এখানে কিছু আছে:

শ্রেণিবিন্যাসের পারফরম্যান্স মূল্যায়নের জন্য ক্রস-বৈধতা বা বুটস্ট্র্যাপিং?

পূর্বাভাস ত্রুটিটি অনুমান করার জন্য ক্রস বৈধকরণ এবং বুটস্ট্র্যাপিংয়ের মধ্যে পার্থক্য

শ্রেণিবিন্যাসের পারফরম্যান্স মূল্যায়নের জন্য ক্রস-বৈধতা বা বুটস্ট্র্যাপিং?

বৈধতা এবং মডেল নির্বাচনের জন্য বুটস্ট্র্যাপিং বোঝা

সাধারণভাবে, ট্যাগ এখানে আপনার বন্ধু।


তাহলে সবচেয়ে ভাল সমাধান কী? আমি জানি না। যখন আমার খুব কঠোর হওয়া দরকার তখন আমি 5 × 2 সিভি ব্যবহার করি, যখন আমার নিশ্চিত হওয়া দরকার যে একটি কৌশল অন্যের চেয়ে ভাল, বিশেষত প্রকাশনাগুলিতে। আমি যদি হোল্ড আউট ব্যবহার করি যদি আমি কোনও পরিমানের বৈকল্পিকতা বা মানক বিচ্যুতি করার পরিকল্পনা না করি, বা আমার যদি সময় সীমাবদ্ধতা থাকে - হোল্ড- আউটে কেবলমাত্র একটি মডেল শিখতে হবে


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

7

পদ্ধতির সংজ্ঞাগুলির জন্য দয়া করে উইকিপিডিয়া পৃষ্ঠাটি দেখুন (তারা এখানে আমার চেয়ে আরও ভাল কাজ করে)।

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

  1. যে কোনও পরিস্থিতি : k-fold cross validationকিছু উপযুক্ত সংখ্যক পুনরাবৃত্তি ব্যবহার করুন (বলুন 5 বা 10)।

    • ডেটাটি 1 অর্ধে বিভক্ত করা, প্রথমার্ধে প্রশিক্ষণ দেওয়া এবং অন্যটিতে যাচাই করা হ'ল যাইহোক যাইহোক যাইহোক 2-ভাঁড় ক্রস বৈধকরণের এক ধাপ (অন্য পদক্ষেপটি দুটি অর্ধের সাথে আন্তরঞ্জিত হয়ে একই অনুশীলনটি পুনরাবৃত্তি করছে)। অতএব, কৌশলটিকে 'অর্ধেক অংশে বিভক্ত করা' কৌশলটি বাতিল করুন।

    • অনেক মেশিন লার্নিং এবং ডেটা মাইনিং পেপারগুলি কে-ফোল্ড ক্রস যাচাইকরণ ব্যবহার করে (উদ্ধৃতি দেবে না), সুতরাং আপনি যদি এই পদক্ষেপে খুব সতর্ক না হন তবে এটিকে ব্যবহার করুন।

    • এখন, একটি আউট পদ্ধতি এবং অন্যান্য পদ্ধতি যেমন ' ছেড়ে পি আউট ' এবং ' এলোমেলো স্প্লিট এন্ড রিপিট ' ( উপরে বর্ণিত প্রক্রিয়াটির মতো মূলত বুটস্ট্র্যাপ ) অবশ্যই যথার্থ প্রার্থী।

    • যদি আপনার ডেটার আকার N হয়, তবে এন-ভাঁজ ক্রস বৈধতা মূলত এক ছাড়ার মতোই।

    • 'লেভ পি আউট' এবং 'বুটস্ট্র্যাপ' কে ফোল্ড ক্রস বৈধকরণের চেয়ে কিছুটা আলাদা, তবে কীভাবে ভাঁজগুলি সংজ্ঞায়িত করা হয় এবং পুনরাবৃত্তির সংখ্যা 'কে' ঘটে তার মধ্যে পার্থক্যটি মূলত।

    • উইকি পৃষ্ঠাতে যেমন বলা হয়েছে, কে-ফোল্ড এবং ' লেভ পি আউট ' উভয়ই ' প্রত্যাশিত পারফরম্যান্স / ফিট ' এর শালীন অনুমানক (যদিও এই অনুমানগুলির বৈচিত্র্যের সাথে বাজি বন্ধ রয়েছে)।

  2. আপনার পরিস্থিতি: বৈশিষ্ট্যের সংখ্যার তুলনায় আপনার কাছে কেবলমাত্র 200 এর নমুনা আকার রয়েছে (100)। আমি মনে করি যে এখানে খুব বেশি সম্ভাবনা রয়েছে যে এখানে একাধিক লিনিয়ার মডেল একই পারফরম্যান্স দিচ্ছেন। আমি> 10 পুনরাবৃত্তি সহ কে-ফোল্ড ক্রস বৈধতা ব্যবহার করার পরামর্শ দেব । 3 বা 5 এর আক মান চয়ন করুন।

    • কে মানের জন্য কারণ: জেনেরিক পছন্দ।

    • পুনরাবৃত্ত মানের জন্য কারণ: পুনরাবৃত্তি জন্য একটি শালীন উচ্চ মান সম্ভবত এখানে সমালোচনা কারণ একক কে-ভাঁজ ক্রস বৈধতা গণনার আউটপুট বিভাজক পরিবর্তনশীলতা / র্যান্ডমনেস যে আমরা প্রবর্তন করতে পারেন ভাঁজ করতে গ্রহণযোগ্য হতে পারে।

অতিরিক্ত চিন্তা:

  • হয়তো আমিও চাকরী 'would ছুটি পি আউট ' এবং ' র্যান্ডম বিভক্ত পুনরাবৃত্ত মত বুটস্ট্র্যাপ যদি আমার K-ভাঁজ ক্রস বৈধতা পদ্ধতি এর আউটপুট ঠিক চেহারা চেক করতে পদ্ধতি' (ছাড়াও ক্রস বৈধতা K-ভাঁজ) একই কর্মক্ষমতা / হইয়া পরিমাপ জন্য।

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



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