পান্ডা শেখার সময় আমি অনেক মাস ধরে এই প্রশ্নের উত্তর ধাঁধা দেওয়ার চেষ্টা করেছি। আমি আমার প্রতিদিনের কাজের জন্য এসএএস ব্যবহার করি এবং এটি বাহ্যিক-মূল সমর্থনটির জন্য দুর্দান্ত। যাইহোক, অন্যান্য অনেক কারণে এসএএস সফটওয়্যারটির অংশ হিসাবে ভয়ঙ্কর।
একদিন আমি আশা করি আমার এসএএসের ব্যবহারটি পাইথন এবং পান্ডাসের সাথে প্রতিস্থাপন করব তবে বর্তমানে বড় ডেটাসেটের জন্য আমার বহির্মুখী কর্মপ্রবাহের অভাব রয়েছে। আমি "বিগ ডেটা" সম্পর্কে বলছি না যার জন্য একটি বিতরণ করা নেটওয়ার্কের প্রয়োজন, বরং মেমরির সাথে ফিট করার জন্য ফাইলগুলি খুব বড় তবে হার্ড ড্রাইভে ফিট করার পক্ষে যথেষ্ট ছোট ফাইল।
আমার প্রথম চিন্তাটি হ'ল HDFStore
ডিস্কে বড় বড় ডেটাসেট ধরে রাখা এবং বিশ্লেষণের জন্য কেবলমাত্র টুকরো টুকরো টুকরোগুলি টানাই। অন্যরা বিকল্প ব্যবহারের সহজ হিসাবে মঙ্গোডিবি উল্লেখ করেছেন। আমার প্রশ্নটি হ'ল:
নিম্নলিখিতগুলি সম্পাদন করার জন্য কয়েকটি সেরা-অনুশীলনের ওয়ার্কফ্লোগুলি কী কী:
- স্থায়ী, অন-ডিস্ক ডাটাবেস কাঠামোতে ফ্ল্যাট ফাইলগুলি লোড করা হচ্ছে
- পান্ডাস ডেটা স্ট্রাকচারে ফিড দেওয়ার জন্য ডেটাবেসটি পুনরুদ্ধার করতে জিজ্ঞাসা করা হচ্ছে
- পান্ডে টুকরো টুকরো টুকরো করার পরে ডাটাবেস আপডেট করা
রিয়েল-ওয়ার্ল্ড উদাহরণগুলি অনেক প্রশংসিত হবে, বিশেষত যে কেউ "বড় ডেটা" তে পান্ডা ব্যবহার করে।
সম্পাদনা করুন - আমি কীভাবে এটি কাজ করতে চাই তার একটি উদাহরণ:
- স্বতঃস্ফূর্তভাবে একটি বড় ফ্ল্যাট-ফাইল আমদানি করুন এবং এটি একটি স্থায়ী, অন ডিস্ক ডাটাবেস কাঠামোতে সঞ্চয় করুন। এই ফাইলগুলি মেমরির সাথে ফিট করার জন্য সাধারণত খুব বড়।
- পান্ডাস ব্যবহার করার জন্য, আমি এই ডেটাটির সাবসেটগুলি (সাধারণত একবারে কেবলমাত্র কয়েকটি কলাম) পড়তে চাই যা স্মৃতিতে ফিট করতে পারে।
- আমি নির্বাচিত কলামগুলিতে বিভিন্ন ক্রিয়াকলাপ করে নতুন কলাম তৈরি করব।
- আমি তখন ডাটাবেস কাঠামোয় এই নতুন কলাম যুক্ত করতে হবে।
আমি এই পদক্ষেপগুলি সম্পাদন করার জন্য একটি সর্বোত্তম অনুশীলনের উপায় সন্ধান করার চেষ্টা করছি। পান্ডা এবং পাইট্যাবলগুলি সম্পর্কিত লিঙ্কগুলি পড়লে মনে হয় যে নতুন কলাম যুক্ত করা একটি সমস্যা হতে পারে।
সম্পাদনা করুন - বিশেষভাবে জেফের প্রশ্নের জবাব দেওয়া:
- আমি গ্রাহক creditণ ঝুঁকি মডেলগুলি তৈরি করছি। ধরণের ডেটাতে ফোন, এসএসএন এবং ঠিকানার বৈশিষ্ট্য অন্তর্ভুক্ত থাকে; সম্পত্তি মান; অপরাধমূলক রেকর্ড, দেউলিয়া অবস্থা ইত্যাদির মতো আপত্তিজনক তথ্য ... আমি প্রতিদিন যে ডেটাসেটগুলি ব্যবহার করি তার মধ্যে প্রায় এক হাজার থেকে ২ হাজার ক্ষেত্রের মিশ্র ডেটা টাইপ থাকে: সংখ্যাসূচক এবং চরিত্রের ডেটা উভয়ই অবিচ্ছিন্ন, নামমাত্র এবং নিয়মিত পরিবর্তনশীল। আমি খুব কমই সারি সংযোজন করি, তবে আমি অনেকগুলি ক্রিয়াকলাপ করি যা নতুন কলাম তৈরি করে।
- সাধারণ ক্রিয়াকলাপে শর্তাধীন যুক্তি ব্যবহার করে একটি নতুন, যৌগিক কলামে কয়েকটি কলাম সংযুক্ত করা জড়িত। উদাহরণস্বরূপ
if var1 > 2 then newvar = 'A' elif var2 = 4 then newvar = 'B'
,। এই অপারেশনগুলির ফলাফলটি আমার ডেটাসেটের প্রতিটি রেকর্ডের জন্য একটি নতুন কলাম। - অবশেষে, আমি এই নতুন কলামগুলিকে অন ডিস্ক ডেটা কাঠামোতে যুক্ত করতে চাই। আমি পদক্ষেপ 2 পুনরাবৃত্তি করব, ক্রসস্ট্যাবগুলি এবং বর্ণনামূলক পরিসংখ্যানগুলির সাথে ডেটা অন্বেষণ করে মডেলটির সাথে আকর্ষণীয়, স্বজ্ঞাত সম্পর্কের সন্ধান করার চেষ্টা করব।
- একটি সাধারণ প্রকল্প ফাইল সাধারণত প্রায় 1 জিবি। ফাইলগুলি এমনভাবে সংগঠিত করা হয় যেখানে একটি সারিতে ভোক্তা ডেটা রেকর্ড থাকে। প্রতিটি সারিতে প্রতিটি রেকর্ডের জন্য একই সংখ্যক কলাম রয়েছে। সর্বদা এটি হবে।
- এটি খুব বিরল যে কোনও নতুন কলাম তৈরি করার সময় আমি সারিগুলিতে সাবসেট করব। তবে, প্রতিবেদন তৈরি করার সময় বা বর্ণনামূলক পরিসংখ্যান তৈরি করার সময় সারিগুলিতে সাবসেট করা আমার পক্ষে খুব সাধারণ। উদাহরণস্বরূপ, আমি ব্যবসায়ের নির্দিষ্ট লাইনটির জন্য একটি সাধারণ ফ্রিকোয়েন্সি তৈরি করতে চাই, খুচরা ক্রেডিট কার্ডগুলি বলুন। এটি করার জন্য, আমি কেবলমাত্র সেই রেকর্ডগুলিই বেছে নেব যেখানে আমি যে কলামগুলিতে প্রতিবেদন করতে চাইছি ব্যবসার লাইন = খুচরা ছাড়াও। নতুন কলাম তৈরি করার সময়, আমি সমস্ত ক্রমের ডেটা এবং ক্রিয়াকলাপগুলির জন্য আমার প্রয়োজন কলামগুলি টানতাম।
- মডেলিংয়ের প্রক্রিয়াটির প্রয়োজন আমি প্রতি কলামটি বিশ্লেষণ করেছি, কিছু ফলাফলের পরিবর্তনশীলের সাথে আকর্ষণীয় সম্পর্ক সন্ধান করব এবং সেই সম্পর্কগুলিকে বর্ণনা করে এমন নতুন যৌগিক কলাম তৈরি করব। আমি যে কলামগুলি ঘুরে দেখি তা সাধারণত ছোট সেটে সম্পন্ন হয়। উদাহরণস্বরূপ, আমি বলি 20 টি কলামের কেবলমাত্র সম্পত্তির মানগুলি নিয়ে কাজ করে এবং একটি aণের খেলাপি .ণের সাথে কীভাবে সম্পর্কিত তা পর্যালোচনা করব। এগুলি অন্বেষণ করা হয়ে গেলে এবং নতুন কলামগুলি তৈরি হয়ে গেলে, আমি তখন কলামের অন্য একটি গ্রুপে চলে যাই, কলেজ শিক্ষা বলি এবং প্রক্রিয়াটি পুনরাবৃত্তি করি। আমি যা করছি তা প্রার্থী ভেরিয়েবলগুলি তৈরি করছে যা আমার ডেটা এবং কিছু ফলাফলের মধ্যে সম্পর্কের ব্যাখ্যা দেয়। এই প্রক্রিয়াটির একেবারে শেষে, আমি কিছু শিখন কৌশল প্রয়োগ করি যা এই যৌগিক কলামগুলির মধ্যে একটি সমীকরণ তৈরি করে।
এটি বিরল যে আমি কখনই ডেটাসেটে সারি যুক্ত করব। আমি প্রায় সর্বদা নতুন কলাম তৈরি করব (পরিসংখ্যান / মেশিন লার্নিং পার্লায়েন্সে ভেরিয়েবল বা বৈশিষ্ট্য)।