কীভাবে ডেটা বিশ্লেষণ ডিবাগ করবেন?


10

আমি নিম্নলিখিত সমস্যা জুড়ে এসেছি, আমি পুনরায় বরং টিপিক।

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

এখন, দুটি সম্ভাব্য জিনিস যা এর দিকে পরিচালিত করতে পারে:

  1. এক্স সময়ের সাথে সাথে প্রকৃতপক্ষে বৃদ্ধি পাচ্ছে
  2. আমার বিশ্লেষণে একটি বাগ আছে

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

কেবলমাত্র আমি ভাবতে পারি যে কোনওভাবে আমি সম্পত্তিটির সাথে একটি ছোট, কৃত্রিম ডেটা সেট তৈরি করলাম যা আমি পরীক্ষা করতে চাই এবং এটিতে ইউনিট পরীক্ষা হিসাবে বিশ্লেষণ চালাতে চাই। এটি করার কোনও সরঞ্জাম আছে? বিশেষত, তবে এসকিউএল এর মধ্যে সীমাবদ্ধ নয়।


দুর্দান্ত প্রশ্ন! আমি মনে করি এটি একটি গুরুত্বপূর্ণ এবং তুচ্ছ সমস্যা।
বেন

উত্তর:


4

এখানে একটি পরামর্শ:

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

তার মানে কি এই নয় যে আমার বাগ সাবসাম জুড়ে স্থিতিশীল?
লিটল ববি টেবিলগুলি

এটি একটি সম্ভাব্য ফলাফল, তবে একবার চেষ্টা করার পরে আপনি কেবল জানতেন। এবং যদি তা হয় তবে আপনি কমপক্ষে ছোট ডেটা সেটগুলিতে ডিবাগ করতে পারেন।
ডার্ক এডেলবুয়েটেল

1

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

আপনি আগের পদক্ষেপে কোনও ফিল্টার না লাগিয়েছেন তা নিশ্চিত করুন। একবার আপনার সংক্ষিপ্ত স্তরে পুরো ডেটা হয়ে গেলে, আপনি পিভট টেবিলগুলির চারপাশে খেলতে পারেন এবং কী কী পরিবর্তন হচ্ছে / বাড়ছে বা কমেছে তা দেখতে পারেন।

যদি ডেটাটি খুব বড় হয় এমনকি গুরুত্বপূর্ণ পরামিতিগুলিতেও সংক্ষিপ্তসার করা যায় না, আপনাকে এটিকে 3 - 4 উপসরে ভাগ করতে হবে এবং এটি আবার করতে হবে do

আশা করি এটা সাহায্য করবে.


1

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

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

আপনার এসকিউএল বিতরণের জন্য ইউনিট টেস্ট ফ্রেমওয়ার্ক থাকতে পারে। তবে আর এর মতো একটি প্রোগ্রামিং ভাষা ব্যবহার করা কার্যকর করা আরও সহজ হবে implement


1

আমি একাধিক পদক্ষেপ কৌশল পছন্দ করি:

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

  2. ছোট ফাংশনগুলিতে আপনার কোডটি ভেঙে দিন, যা পরীক্ষা করা যায় এবং ছোট আকারে মূল্যায়ন করা যায়।

  3. সংযুক্ত উপাদানগুলির সন্ধান করুন, উদাহরণস্বরূপ এক্স শর্তযুক্ত কেসের সংখ্যা - তাই এই ক্যোয়ারীটি ওয়াইকে ফিরিয়ে আনতে হবে Most বেশিরভাগ ক্ষেত্রে এটি আরও জটিল, তবে কার্যকর।

  4. আপনি যখন প্রথমবার স্ক্রিপ্টটি চালাচ্ছেন, তখন এটি একটি ক্ষুদ্র সাব-নমুনার সাহায্যে পরীক্ষা করুন এবং সাবধানে যাচাই করে দেখুন যে সবকিছু ঠিক আছে কিনা। আইটি-তে আমি ইউনিট টেস্টগুলি পছন্দ করার সময়, পরিসংখ্যান স্ক্রিপ্টগুলিতে বাগগুলি প্রায়শই এত উচ্চারণ করা হয় যে তারা সাবধানতার সাথে পরীক্ষা করে দেখা যায় visible অথবা এগুলি পদ্ধতিগত ত্রুটি, যা সম্ভবত ইউনিট পরীক্ষায় ধরা পড়ে না।

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

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