বড় ডেটাসেটের অনুসন্ধানী বিশ্লেষণ কীভাবে রাখবেন?


22

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

কোনও গবেষণামূলক বিশ্লেষণ ঝরঝরে এবং পরিপাটি রাখার জন্য কি কোনও প্রস্তাবিত পদ্ধতি রয়েছে? বিশেষত, আপনি অনুসন্ধানের একাধিক শাখা (মৃত-প্রান্তগুলি সহ) এবং প্লটগুলির বিভিন্ন সংস্করণ দিয়ে কীভাবে व्यवहार করবেন?


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


1
অনুমান বা পূর্বাভাসের প্রতিযোগিতামূলক পদ্ধতিগুলি মূল্যায়নের জন্য নকশাকৃত সিমুলেশন স্টাডিতে আপনি যে প্রচুর পরামর্শ পেয়েছেন তা সমানভাবে প্রযোজ্য বলে আমি ধারণা করব।
সম্ভাব্যতাব্লোগিক

1
হ্যাঁ, সম্ভবত এই উত্তরটিও পড়তে হবে: stats.stackexchange.com/questions/2910/… । আমি ভাবছিলাম যে আরও নির্দিষ্ট সুনির্দিষ্ট পরামর্শ থাকতে পারে তবে আমি মনে করি সম্ভবত সেখানে সত্যিই নেই।
naught101

উত্তর:


10

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

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

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

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

আপডেট: এটি পোস্ট করার পরে, আমি বুঝতে পেরেছিলাম যে "মৃত প্রান্ত" সম্পর্কে আপনার প্রশ্নটি আমি সরাসরি সম্বোধন করিনি। আপনি যদি সত্যিই স্থির করেন যে বিশ্লেষণের পুরো সেটটির কোনও মূল্য নেই, তবে আপনি যদি গিটে কাজ করছেন, আপনি সর্বদা "ফাইল বিশ্লেষণের এই লাইনটি পরিত্যাগ করেছেন" এর মতো প্রতিশ্রুতিবদ্ধ বার্তা সহ সংশ্লিষ্ট ফাইল (গুলি) মুছে ফেলতে পারেন it উৎপাদনশীল। " আপনি যা লিখেছেন তা গুঁড়িয়ে ফেলা এবং ট্র্যাসে ফেলে দেওয়ার মতো নয়, আপনি চাইলে সর্বদা আপনি যা করেছিলেন পরে ফিরে যেতে পারেন desired

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


4

আমি জানি না একটি সাধারণ উত্তর কতটা সহায়ক হবে। আপনি কীভাবে কিছু কঠিন করবেন তা জিজ্ঞাসা করছেন; ভাল উত্তর সম্ভবত শৃঙ্খলার উপর নির্ভর করবে এবং সম্ভবত দীর্ঘ এবং সংক্ষিপ্ত হবে। :)

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

এখন, এটি অনুসন্ধানকারী অংশে সহায়তা করে না। ইডিএর জন্য আমি ইএসএসের মাধ্যমে ইম্যাকগুলিতে (বেশিরভাগ) আর ব্যবহার করি। আপনার প্রয়োজন EDA এর জন্য একটি REPL দরকার। আমার কর্মপ্রবাহ হ'ল ইএসএসে (কোনও exploratory.Rটাইপ ফাইলে) প্লট, অনুমান ইত্যাদির সাহায্যে খেলতে হবে, আমি কী রাখতে চাই তা স্থির করুন, তারপরে এটি পুনর্নির্মাণ করুন যাতে এটি তৈরির মাধ্যমে ব্যাচ-এক্সিকিউট করা যায়। পুনঃপ্রতিষ্ঠা, আমি জানি না আপনি এটি কীভাবে ব্যবহার করছেন তবে আমি প্রতিটি প্রকল্পের জন্য একটি একক সংগ্রহস্থল (সাধারণত একটি কাগজ) ব্যবহার করি এবং একটি পরিষ্কার ইতিহাস রাখার জন্য আমার কোডবেজের বাইরে নরকে রিবাইস করি; অর্থাত্ আমি ব্যবহার করি

$ git merge meandering-branch --squash
$ git add -p somefile
$ git rebase -i master
$ git reset HEAD --hard

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

যতক্ষণ না তথ্য উপাত্ত অনুসন্ধান করেছি, আমি এই বইগুলি সহায়ক এবং আকর্ষণীয় পেয়েছি এবং সেগুলি বিশেষত বড় ডেটাসেটগুলি (কমপক্ষে অংশে) নিয়ে কাজ করে:


3

দুটি শব্দ: ধারণা মানচিত্র। বৃহত্তর ডেটা সেট বা সত্যিকার অর্থে সংশ্লেষিত যে কোনও ধারণাকে বিভক্ত করতে এবং বিজয় করার জন্য এটিই কেবল কার্যকর উপায়। http://en.wikipedia.org/wiki/Concept_maps

ব্যক্তিগতভাবে, আমি পর্দার চেয়ে কাগজে আরও ভাল মনে করি, তাই আমি এমনকি কোনও মৌলিক বিশ্লেষণ করা শুরু করার আগে আমি যা করছি তার সাথে মানচিত্রটি মনে করি। আরো একটি পেশাদারী ডায়াগ্রাম, সেখানে মন ম্যাপিং সফ্টওয়্যার প্রচুর আছে http://en.wikipedia.org/wiki/List_of_concept-_and_mind-mapping_software

মাইন্ড ম্যাপিংয়ের বিভিন্ন সুবিধা রয়েছে:

  • "কোর" ভেরিয়েবল এবং উত্পন্ন ভেরিয়েবলগুলির ক্ষেত্রে আমার কী আছে তা আমাকে বলে (যদি থাকে)
  • তত্ত্ব / যুক্তি ভিত্তিক একটি মডেল সংগঠন / গঠনের অনুমতি দেয়
  • আমি কী ভেরিয়েবলগুলি অনুপস্থিত হতে দেখছি এবং / অথবা যদি মূল ভেরিয়েবলের মধ্যে সম্পর্কগুলি প্যান না করে তবে আমি যুক্ত করতে পারি মনে করি তাদের উচিত

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

উদাহরণস্বরূপ, ফ্যাক্টর বিশ্লেষণের জন্য ধারণা মানচিত্রটি এখানে রয়েছে: http://www.metacademy.org/graphs/concepts/factor_analysis#focus=factor_analysis&mode=explore এখন এটি নিখুঁতভাবে ধারণাটি শেখার জন্য, বিশ্লেষণ সম্পাদন করার জন্য নয়, তবে ধারণাটি একই জিনিস: সময়টি আগে কী তৈরি করা উচিত তা বোঝায় এবং তা করুন and

আপনি যদি এটির একটি স্বয়ংক্রিয় / কোডেড সংস্করণটি সন্ধান করেন তবে আমি মনে করি এটির কোনও উপস্থিতি নেই। আপনি যখন কোনও সিস্টেম বোঝার চেষ্টা করছেন তখন আপনি মডেলিংয়ের ধারণাটি স্বয়ংক্রিয় করতে পারবেন না। (এবং এটি একটি ভাল জিনিস কারণ এটি প্রচুর লোককে চাকরি থেকে সরিয়ে দেবে))


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

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

3

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


1

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

মূল ধারণাটি হ'ল আপনি আপনার অন্তর্নিহিত ডেটাগুলিকে একাগ্রযোগ্য পরিমাণে (উদাহরণ হিসাবে তুলনায় গণনা, উপার্জন ইত্যাদি) উপস্থাপন করার চেষ্টা করছেন। তারপরে আপনি বিশদ (যেমন মাস / সপ্তাহ / ...) জুড়ে একত্রিত করার জন্য শ্রেণিবিন্যাস ডিজাইন করেছেন। এটি আপনাকে আপনার সমস্ত ডেটার সরল ওভারভিউ করতে এবং তারপরে নির্দিষ্ট অঞ্চলগুলিতে জুম বাড়ানোর অনুমতি দেয়। উদাহরণস্বরূপ দেখুন http://cubes.databrewery.org/ (পাইথন) বা এক্সেল পাওয়ার পাইভট

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