কীভাবে দীর্ঘমেয়াদী গবেষণার প্রজননযোগ্যতা বাড়ানো যায় (বিশেষত আর এবং সোয়েভ ব্যবহার করে)


31

প্রসঙ্গ: প্রজননযোগ্য গবেষণা সম্পর্কে জ্যাক লিখেছেন সম্পর্কে আগের প্রশ্নের জবাবে

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

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

প্রশ্ন:

  • ভবিষ্যতে প্রজননযোগ্য ডেটা বিশ্লেষণ পুনরুত্পাদনযোগ্য তা নিশ্চিত করার জন্য ভাল কৌশলগুলি কী কী (বলুন, প্রকাশের পাঁচ, দশ, বা বিশ বছর পরে)?
  • বিশেষত, সোয়েভ এবং আর ব্যবহার করার সময় চলমান পুনরুত্পাদনযোগ্যতা সর্বাধিককরণের জন্য ভাল কৌশলগুলি কী?

এটি পুনরুত্পাদনযোগ্য ডেটা বিশ্লেষণ প্রকল্পটি অন্য কারও মেশিনে কিছুটা পৃথক ডিফল্ট, প্যাকেজ ইত্যাদিতে চলবে তা নিশ্চিত করার সাথে সম্পর্কিত বলে মনে হচ্ছে


তাত্ত্বিক আচরণ যাচাই করার জন্য আপনি কি ইউএনডি দিয়ে ইউনিট টেস্টিং বিবেচনা করেছেন?

উত্তর:


18

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

এটি ব্যবহারিক হওয়ার জন্য কেবল কিছুটা।

যা বলেছিল, আমি মনে করি আপনার কোডগুলি (এবং আপনার ডেটাও হতে পারে) সংশোধন নিয়ন্ত্রণে আরও প্রাসঙ্গিক সমাধানগুলি, সমস্ত প্রাসঙ্গিক সফ্টওয়্যারের সংস্করণ সংরক্ষণ করে এবং একক শীর্ষ স্তরের স্ক্রিপ্ট চালিয়ে ফলাফলের পুনরুত্পাদন করা সম্ভব করে " যথেষ্ট "সমঝোতা।

আপনার মাইলেজ পরিবর্তিত হতে পারে. এটি শৃঙ্খলা বা শিল্প জুড়েও পৃথক। তবে বুদ্ধিপ্রবণ সিস্টেমগুলির অসম্ভবতা সম্পর্কে পুরানো করাকে মনে রাখবেন: আপনি কেবল বুদ্ধিমান বোকা তৈরি করেন।


1
(+1) আমি কেবল আপনার সাথে একমত হতে পারি। আর সম্পর্কে বিশেষত, এটি নিশ্চিত করা খুব কঠিন বলে মনে হচ্ছে যে (ক) কিছু প্যাকেজ আপডেট করার পরে পুনরায় উত্পাদনযোগ্য থাকবে (যা আমার কাছে সম্প্রতি ঘটেছিল) এবং (খ) নির্ভরতার সাথে কোনও বিরোধ কোনও দিনই উদ্ভূত হবে না (এটি ছিল উদাহরণস্বরূপ, জন্য lme4)।
chl

13

প্রজননযোগ্যতার প্রথম পদক্ষেপটি নিশ্চিত করা হয় যে ডেটা এমন ফর্ম্যাটে রয়েছে যা ভবিষ্যতের গবেষকদের পক্ষে পড়া সহজ। ফ্ল্যাট ফাইলগুলি এখানে পরিষ্কার পছন্দ (প্রেসে ফেয়ারবায়ার্ন)।

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


1
সম্মত, প্রথমে শক্ত ডেটা এবং মেটাডেটা।
mindless.panda

11

একটি কৌশল cacherপ্যাকেজ ব্যবহার জড়িত ।

  • পেং আরডি, এক্কেল এসপি (২০০৯)। "ক্যাশেড কম্পিউটেশন ব্যবহার করে পুনরুত্পাদনযোগ্য গবেষণা বিতরণ করা," বিজ্ঞান ও প্রকৌশল আইইইই কম্পিউটিং, ১১ (১), ২৮-৩–। ( পিডিএফ অনলাইন )
  • রজার পেংয়ের ওয়েবসাইটে আরও নিবন্ধগুলি দেখুন

আরও আলোচনা এবং উদাহরণ বইয়ে পাওয়া যাবে:

তবে, চলমান পুনরুত্পাদনযোগ্যতা নিশ্চিত করার ক্ষেত্রে এর কার্যকারিতাটির আমার প্রথম হাতের অভিজ্ঞতা নেই।


7

আপনি যদি ভার্চুয়াল মেশিন রুটে আগ্রহী হন তবে আমার মনে হয় যে এটি একটি নির্দিষ্ট লিনাক্স বিতরণের মাধ্যমে আর এর নির্দিষ্ট সংস্করণ এবং প্যাকেজ ইনস্টল করা আছে do স্ক্রিপ্টগুলির সাথে ডেটা অন্তর্ভুক্ত করা হয় এবং পুরো জিনিসটি ভার্চুয়াল বক্স ফাইলে প্যাকেজ করে ।

এটি ইতিপূর্বে উল্লিখিত ইন্টেল সিপিইউ বাগের মতো হার্ডওয়্যার সমস্যাগুলি পেয়ে যায় না।


4

আমি ইতিমধ্যে উপস্থিত দুর্দান্ত উত্তর ছাড়াও দুটি জিনিস পুনরুদ্ধার করব;

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

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


1

ভাল পরামর্শ, আমি এখন সন্ধানের জন্য প্রচুর জিনিস পেয়েছি।

মনে রাখবেন, একটি অত্যন্ত গুরুত্বপূর্ণ বিবেচনাটি নিশ্চিত করা হচ্ছে যে কাজটি প্রথম স্থানে "সঠিক" রয়েছে। আপনি যেটা করেছেন, এবং আপনি যা বলেছিলেন সেগুলি বাড়িয়ে তোলার সম্ভাবনা বাড়িয়েই সোয়েভের মতো সরঞ্জামগুলি হ'ল এটি সেই ভূমিকা ।


1
সুমাত্রা প্রকল্পটি এমন একটি যা খুব বেশি সহায়ক হতে পারে: নিউরালেনসেম্বল.অর্গ / ট্র্যাক / সুমাত্রা / উইকি । আপনি আপনার কোড চালানোর জন্য এটি কমান্ড লাইন ইন্টারফেসটি ব্যবহার করতে পারেন, আর বা অন্য কোনও কিছুতে থাকতে পারেন। এটিতে পাইথন এপিআইও রয়েছে। আর ব্লগারগুলিতে প্রজননযোগ্য গবেষণার জন্য আর-কেন্দ্রিক সরঞ্জামগুলি নিয়ে আলোচনা করার জন্য একটি দুর্দান্ত ব্লগ পোস্ট রয়েছে এবং এতে সুমাত্রা ব্যবহারের কথাও উল্লেখ করা হয়েছে। r-bloggers.com/manasing-a-statistical- analysis-project- gu- मार्गदर्शन-এবং সর্বোত্তম-অনুশীলন /
জোশ হেমেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.