আমি একটি খুব বড় ডাটাবেস (এখানে, এসকিউএল দ্বারা ভার্টিকা pandas
এবং এর মাধ্যমে sklearn
) থেকে প্রাপ্ত ডেটা থেকে মেশিন লার্নিং মডেলগুলি (আমার ক্ষেত্রে পাইথনের এবং প্যাকেজগুলি ব্যবহার করে ) তৈরির জন্য একটি ওয়ার্কফ্লো তৈরি করছি pyodbc
এবং সেই প্রক্রিয়াটির একটি গুরুত্বপূর্ণ পদক্ষেপ নিখোঁজকে জড়িত জড়িত ভবিষ্যদ্বাণীকারীদের মান। এটি একক বিশ্লেষণ বা পরিসংখ্যান প্ল্যাটফর্মের মধ্যে সোজা - --- এটি পাইথন, আর, স্টাটা ইত্যাদি etc--- তবে আমি আগ্রহী যেখানে মাল্টি-প্ল্যাটফর্মের ওয়ার্কফ্লোতে এই ধাপটি সবচেয়ে ভাল খুঁজে পাওয়া যায়।
পাইথনে এটি করার জন্য যথেষ্ট সহজ, হয় sklearn.preprocessing.Imputer
ক্লাসের সাথে, pandas.DataFrame.fillna
পদ্ধতিটি ব্যবহার করে , বা হাতে (ব্যবহৃত প্রত্যাহার পদ্ধতির জটিলতার উপর নির্ভর করে)। তবে যেহেতু আমি কয়েক মিলিয়ন রেকর্ড জুড়ে কয়েক ডজন বা কয়েক কলামের জন্য এটি ব্যবহার করব, আমি অবাক হয়েছি এসকিউএল এর মাধ্যমে সরাসরি এটি করার আরও কার্যকর উপায় আছে কিনা। ভার্টিকার মতো বিতরণ প্ল্যাটফর্মে এটি করার সম্ভাব্য দক্ষতাগুলি বাদ দিয়ে, এতে আমাদের সারণির "সম্পূর্ণ" সংস্করণ তৈরি করার জন্য একটি স্বয়ংক্রিয় পাইপলাইন তৈরি করার অনুমতি দেওয়ার অতিরিক্ত সুবিধা হবে, সুতরাং আমাদের নতুন সেট পূরণ করার দরকার নেই প্রতিবার আমরা একটি মডেল চালাতে চাই স্ক্র্যাচ থেকে মূল্যবোধ হারিয়েছে।
আমি এ সম্পর্কে খুব বেশি গাইডেন্স পাইনি, তবে আমি ধারণা করি যে আমরা পারলাম:
- প্রতিটি অসম্পূর্ণ কলামের জন্য বিকল্প মানের একটি টেবিল তৈরি করুন (উদাহরণস্বরূপ, গড় / মিডিয়ান / মোড, সামগ্রিকভাবে বা গোষ্ঠী অনুসারে)
- প্রতিটি সারি এবং অসম্পূর্ণ কলামের জন্য বিকল্প মান নির্ধারণ করতে মূল টেবিলের সাথে বিকল্প মান সারণীতে যোগ দিন
- উপলব্ধ হলে আসল মান এবং অন্যথায় বিকল্প মানটি নিতে কেস স্টেটমেন্টগুলির একটি সিরিজ ব্যবহার করুন
ভার্টিকা / এসকিউএল এ করা কি যুক্তিসঙ্গত জিনিস, বা এর পরিবর্তে পাইথনে এটি বিরক্ত করার এবং কেবল এটি পরিচালনা করার কোনও উপযুক্ত কারণ নেই? এবং যদি দ্বিতীয়টি হয় তবে স্ক্যান্ডার্ন বা তদ্বিপরীত পরিবর্তে পান্ডাসে এটি করার জন্য কি কোনও শক্ত মামলা আছে? ধন্যবাদ!