ইউনিট
1. তথ্য বিজ্ঞান এবং বিশ্লেষণে কৃত্রিম বুদ্ধিমত্তার ভূমিকা: কর্মপ্রবাহ, ভূমিকা, সীমানা, বৈধতা এবং নীতিশাস্ত্র 2. ডেটা সংগ্রহ এবং উত্স বোঝা: স্কিমা, নমুনা, গুণমান এবং লিক সচেতনতা 3. ডেটা ক্লিনিং এবং প্রিপ্রসেসিং: অনুপস্থিত মান, আউটলিয়ার এবং টাইপ রূপান্তর 4. অনুসন্ধানমূলক ডেটা বিশ্লেষণ (EDA): বিতরণ, সম্পর্ক, এবং প্রাথমিক অন্তর্দৃষ্টি 5. ফিচার ইঞ্জিনিয়ারিং: ভেরিয়েন্ট তৈরি করা, কোডিং, স্কেলিং এবং লিকেজ এড়ানো 6. মডেল বিল্ডিং: সমস্যা সংজ্ঞা, অ্যালগরিদম নির্বাচন, এবং প্রশিক্ষণ/পরীক্ষা বিভক্ত 7. মডেল মূল্যায়ন: মেট্রিক্স, ক্রস-ভ্যালিডেশন এবং এক্সট্রিম লার্নিং 8. ভিজ্যুয়ালাইজেশন এবং গল্প বলা: সঠিক গ্রাফিক্স, সৎ গ্রাফিক্স 9. কোড জেনারেশন: পাইথন (পান্ডা) এবং এসকিউএল দিয়ে এআই-সহায়তা বিশ্লেষণ 10. ডেটা লিকেজ এবং প্রজননযোগ্যতা: নীরব বিপর্যয় এবং শৃঙ্খলা 11. MLOps ফাউন্ডেশন, নীতিশাস্ত্র, গোপনীয়তা এবং দায়িত্বশীল বিশ্লেষণ
ইউনিট 3 / 11

ডেটা ক্লিনিং এবং প্রিপ্রসেসিং: অনুপস্থিত মান, আউটলিয়ার এবং টাইপ রূপান্তর

লাভ:

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

একজন তথ্য বিজ্ঞানীর প্রায় 60-80 শতাংশ সময় যায় পরিষ্কার করার কাজে; শিল্পে, এটিকে অর্ধ-কৌতুক করে "ডেটা র্যাংলিং" (ডেটা র্যাংলিং বা ডেটা ক্লিনিং) বলা হয়। কারণ বাস্তব-বিশ্বের ডেটা প্রায় কখনই বিশ্লেষণের জন্য প্রস্তুত হয় না: তারিখগুলি মিশ্র বিন্যাসে থাকে, সংখ্যাগুলি পাঠ্য হিসাবে সংরক্ষণ করা হয়, কিছু ঘর ফাঁকা থাকে, একজন গ্রাহক একই টেবিলে দুটি ভিন্ন বানান সহ তিনবার উপস্থিত হন। এই ইউনিটে আমরা ক্লিনআপের তিনটি মৌলিক দিক কভার করব: অনুপস্থিত মান, আউটলিয়ার এবং টাইপ/ফর্ম্যাট রূপান্তর। কৃত্রিম বুদ্ধিমত্তা এই কাজে একটি অসাধারণ দ্রুত সহকারী; কিন্তু আপনিই সিদ্ধান্ত নেবেন কী এবং কীভাবে পরিষ্কার করবেন, কারণ প্রতিটি পরিষ্কারের পছন্দ বিশ্লেষণ পরিবর্তন করে।

পরিষ্কারের সুবর্ণ নিয়ম: প্রতিটি পরিবর্তন একটি সিদ্ধান্ত

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

সতর্কতা: মূল কাঁচা ডেটা কখনই পরিবর্তন করবেন না। একটি পৃথক ফাইল/টেবিলে পরিষ্কার সংস্করণ লিখুন। এইভাবে, আপনি যদি একটি ত্রুটি খুঁজে পান, আপনি বর্গাকার একটিতে ফিরে যেতে পারেন এবং পুনরুত্পাদনযোগ্যতা বজায় রাখতে পারেন।

অনুপস্থিত মান: কেন এটি খালি, কি করতে হবে

একটি অনুপস্থিত মান (সাধারণত পান্ডাতে NaN — "নম্বর নয়" হিসাবে প্রদর্শিত হয়) যখন একটি সেল খালি থাকে। কিন্তু ব্যবধানের কারণ নির্ধারণ করে সমাধান। তিনটি সাধারণ পরিস্থিতি আছে। এলোমেলোভাবে অনুপস্থিত: সেন্সর এক মুহূর্তের জন্য কাজ করেনি; এটা পূরণ করা যুক্তিসঙ্গত হতে পারে. পদ্ধতিগত অনুপস্থিত: একটি ফর্ম ক্ষেত্র শুধুমাত্র নির্দিষ্ট গ্রাহকদের জন্য জিজ্ঞাসা করা হয়; এখানে ফাঁক আসলে তথ্য. উল্লেখযোগ্য অনুপস্থিত: যদি "ফেরত তারিখ" ফাঁকা হয়, গ্রাহক ফিরে আসেনি; এই স্থানটির অর্থ 0 বা "কোনটিই নয়", এটি পূর্ণ হয় না।

প্রধান কৌশল:

কৌশল

কখন এটা উপযুক্ত?

ঝুঁকি

সারি মুছুন

অনুপস্থিত হার খুবই কম (<5%) এবং এলোমেলো

তথ্য এবং প্রতিনিধিত্ব হারানো

একটি কলাম মুছুন

বেশিরভাগ কলাম খালি (>60%)

তথ্যের ক্ষতি

গড়/মাঝারি পূরণ

সংখ্যাসূচক, এলোমেলোভাবে অনুপস্থিত

এটি বৈচিত্র্য হ্রাস করে এবং বিতরণকে বিকৃত করে

বিভাগ "অজানা"

শ্রেণীবদ্ধ, পদ্ধতিগত অনুপস্থিত

অতিরিক্ত বিভাগ তৈরি করে

মডেল সহ ভবিষ্যদ্বাণী

জটিল, মূল্যবান কলাম

লিক ঝুঁকি, জটিলতা

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

বহিরাগত: ত্রুটি বা বাস্তব?

একটি আউটলায়ার দুটি জিনিসের মধ্যে একটি হতে পারে: একটি ডেটা ত্রুটি (বয়স কলামে 999) বা একটি বাস্তব কিন্তু বিরল ঘটনা (একটি গ্রাহকের $2 মিলিয়ন অর্ডার)। দুটি বিভ্রান্তিকর বিপর্যয়কর: একটি সত্য বহিরাগত মুছে ফেলুন এবং আপনি গুরুত্বপূর্ণ তথ্য ফেলে দেন; আপনি যদি একটি ভুল ছেড়ে দেন, তাহলে আপনার গড় ক্ষতিগ্রস্ত হবে। অতএব, এটি স্বয়ংক্রিয়ভাবে মুছে ফেলার জন্য নয়, প্রথমে আউটলারটি পরীক্ষা করা প্রয়োজন।

সাধারণ সনাক্তকরণ পদ্ধতি: IQR পদ্ধতি (ইন্টারকোয়ার্টাইল রেঞ্জ; ডেটার 25% এবং 75% কুইন্টাইলের মধ্যে 1.5 গুণের বেশি মানগুলিকে আউটলায়ার্স হিসাবে বিবেচনা করা হয়) এবং জেড-স্কোর (মান থেকে দূরে থাকা স্ট্যান্ডার্ড বিচ্যুতির সংখ্যা; সাধারণত 3-এর বেশি হলে একটি আউটলায়ার)। AI সেকেন্ডে এই গণনার জন্য কোড লিখে; কিন্তু আপনি "মুছুন" বলার আগে, সেই মানগুলি কী তা পরীক্ষা করে দেখুন।

টাইপ এবং ফরম্যাট রূপান্তর: নীরব ত্রুটি উত্স

সবচেয়ে মাথাব্যথার একটি হল ডেটা টাইপ বিভ্রান্তি। যদি একটি "পরিমাণ" কলাম পাঠ্য হিসাবে সংরক্ষণ করা হয়, আপনি যোগ করতে পারবেন না; প্রোগ্রামটি ভুলভাবে একটি তুর্কি ফরম্যাট করা সংখ্যা যেমন "এক হাজার দুইশত পঞ্চাশ" এর পরিবর্তে "1,250.50" পড়ে। তারিখগুলি ("01/03/2024" দিন-মাস বা মাস-দিন?), বিভাগগুলি ("পুরুষ"/"পুরুষ"/"এম" একই জিনিস?) এবং ইউনিটগুলি (TL বা kuruş?) নীরবে ভুল ফলাফল দেয়৷ পরিষ্কার করার একটি বড় অংশ এই অসঙ্গতিগুলিকে স্ট্যান্ডার্ডের মধ্যে টেনে আনছে: তারিখগুলিকে একটি বিন্যাসে, বিভাগগুলিকে একটি বানানে, সংখ্যাগুলিকে একটি ইউনিটে।

তিনটি মিনি কেস

কেস 1 - গড় ফাঁদ। একটি দল গড় ($48,500) সহ আয় কলামে 320টি অনুপস্থিত মান পূরণ করেছে। তবে ত্রুটিগুলি ছিল নিয়মতান্ত্রিক: এগুলি ছিল নিম্ন-আয়ের অংশ যারা কখনও আয় ঘোষণা করেনি। গড় ভরাট এই গ্রুপটিকে কৃত্রিমভাবে সমৃদ্ধ করেছে এবং ক্রেডিট মডেলটি ভুল ছিল। পাঠ: এটি পূরণ করার আগে "এটি কেন ফাঁকা" জিজ্ঞাসা করুন।

কেস 2 - বহিরাগত যা মুছে ফেলা উচিত নয়। একজন খুচরা বিশ্লেষক বিক্রয় ডেটাতে 4টি বিশাল অর্ডার (প্রতিটি 1.8 মিলিয়ন TL) মুছে ফেলেন, ভেবেছিলেন যে সেগুলি "ত্রুটি"। যাইহোক, এগুলি আসল কর্পোরেট অর্ডার ছিল এবং মোট টার্নওভারের 22% ছিল। মুছে ফেলার পরের পূর্বাভাস মডেলটি সম্পূর্ণরূপে প্রাতিষ্ঠানিক চাহিদা মিস করেছে। পাঠ: এটি মুছে ফেলার আগে আউটলার পরীক্ষা করুন।

কেস 3 — তারিখ বিন্যাস বিপর্যয়। একটি CSV-তে, তারিখগুলিকে "2024-03-01" এবং "01.03.2024" উভয়ের মধ্যে মিশ্রিত করা হয়েছে৷ যখন YZ দ্বারা লিখিত কোডটি প্রথম বিন্যাস অনুসারে পার্স করা হয়, তখন 6,400 লাইন "অবৈধ তারিখ" হিসাবে NaT হয়ে ওঠে এবং নীরবে বিশ্লেষণ থেকে বাদ দেওয়া হয়। বিশ্লেষক শুধুমাত্র এটি লক্ষ্য করেন যখন লাইনের সংখ্যা কমে যায়। পাঠ: সর্বদা রূপান্তরের পরে লাইন এবং ফাঁকা সংখ্যা পরীক্ষা করুন।

চারটি অনুলিপিযোগ্য টেমপ্লেট

1) অনুপস্থিত মান মানচিত্র:

আমার কাছে পান্ডা ডিএফ আছে। কোড লিখুন যা প্রতিটি কলামের জন্য অনুপস্থিত সংখ্যা এবং শতাংশ (NaN) প্রদর্শন করে একটি টেবিল তৈরি করে। তারপর, অনুপস্থিত হার 40% এর বেশি এবং 5% এর নিচে অনুপস্থিত হার সহ কলামগুলি আলাদাভাবে তালিকাভুক্ত করুন। শুধু এই ডায়াগনসিস কোড জেনারেট করুন, আপনি কোন কৌশলের পরামর্শ দেন তা নয়; আমি সিদ্ধান্ত নেব।

2) বহিরাগত পরিদর্শন (মোছা নয়):

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

3) টাইপ/ফরম্যাট প্রমিতকরণ:

কোড লিখুন যা নিম্নলিখিত কলামগুলিকে প্রমিত করে:- "তারিখ": মিশ্র বিন্যাস হতে পারে ("2024-03-01" এবং "01.03.2024"); সেগুলিকে ডেটটাইমে রূপান্তর করুন, অনুবাদযোগ্যগুলি গণনা করুন এবং রিপোর্ট করুন (নিঃশব্দে ফেলে দিন)। - "লিঙ্গ": "পুরুষ"/"পুরুষ"/"এম" -> "এম", "মহিলা"/"মহিলা"/"এফ" -> "কে"। - "অ্যামাউন্ট": তুর্কি ফরম্যাট করা টেক্সট ("1.250,50") -> দশমিক সংখ্যা। প্রতিটি রূপান্তরের পরে কতগুলি সারি প্রভাবিত হবে তা প্রিন্ট করুন।

4) পরিষ্কার করার আগে/পরে চেক করুন:

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

দুর্বল প্রম্পট / শক্তিশালী প্রম্পট

দুর্বল প্রম্পট:

এই ডেটা সাফ করুন।

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

শক্তিশালী প্রম্পট:

আপনার ভূমিকা: ডেটা পরিষ্কার সহকারী। df কলাম: customer_id (int), registration_date (মিশ্র ফর্ম্যাট টেক্সট), revenue_tl (টেক্সট, "1,200.00"), শহর (পাঠ্য, অসংলগ্ন বানান)। নিয়ম:- মূল ডিএফ পরিবর্তন করা; df_clean নামের অনুলিপিতে কাজ করুন।- ইনকাম_টিএলকে সংখ্যায় রূপান্তর করুন, যা অনুবাদ করা যাবে না তা গণনা করুন।- রেকর্ড_তারিখ তারিখে পরিবর্তন করুন, ত্রুটির প্রতিবেদন করুন।- আমার অনুমোদন ছাড়া কোনো সারি মুছবেন না; প্রার্থীদের আলাদাভাবে দেখান। প্রতিটি ধাপের পরে, df_temiz.shape এবং অনুপস্থিত নম্বর প্রিন্ট করুন।

এখানে উৎস সুরক্ষিত, প্রতিটি রূপান্তর গণনা করা হয়, মুছে ফেলা মানুষের উপর ছেড়ে দেওয়া হয়।

সাধারণ ভুল

  • "এটা খালি কেন?" জিজ্ঞাসা না করে শূন্যস্থান পূরণ করা। গড় দিয়ে পদ্ধতিগত/উল্লেখযোগ্য অনুপস্থিতি পূরণ করা ডেটা বিকৃত করে।
  • এটি পরীক্ষা না করেই আউটলিয়ার মুছে ফেলা। বাস্তব কিন্তু বিরল ঘটনা বাদ দিলে গুরুত্বপূর্ণ তথ্য নষ্ট হয়।
  • সমস্ত ডেটা থেকে প্যাডিং মান গণনা করা হচ্ছে। পরীক্ষার তথ্য সহ ফাঁস সৃষ্টি করে; শুধু প্রশিক্ষণ থেকে গণনা.
  • রূপান্তরের পরে সারি/ফাঁকা সংখ্যা পরীক্ষা করা হচ্ছে না। যে সারিগুলি নীরবে NaT/NaN সেগুলি বিশ্লেষণ থেকে বাদ দেওয়া হয়েছে৷
  • মূল ডেটা ওভাররাইট করা হচ্ছে। প্রত্যাবর্তন এবং প্রজনন ক্ষমতা হারিয়ে গেছে।
পরামর্শ: "আগে-পরে" তুলনা দিয়ে ক্লিনজ চালান। প্রতিটি ধাপের পরে df.shape, অনুপস্থিত গণনা এবং সমালোচনামূলক কলামের সারাংশ পরিসংখ্যান প্রিন্ট করুন। তাই আপনি অবিলম্বে দেখতে পাচ্ছেন যে একটি পদক্ষেপ অপ্রত্যাশিতভাবে 6,000 সারি ধ্বংস করে।

সংক্ষেপে

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

আবেদন টাস্ক

একটি ছোট টেবিল নিন (বা তৈরি করুন) এবং ইচ্ছাকৃতভাবে এতে তিনটি সমস্যা সন্নিবেশ করুন: একটি অনুপস্থিত মান টিপল, একটি আউটলায়ার, একটি মিশ্র তারিখ বিন্যাস৷ উপরের টেমপ্লেটগুলির সাথে AI থেকে ডায়াগনসিস এবং স্ট্যান্ডার্ডাইজেশন কোডের অনুরোধ করুন; প্রতিটি ধাপের আগে/পরে সারি এবং ফাঁকা সংখ্যার তুলনা করুন। অন্তত একটি "নীরব ক্ষতি" ধরার চেষ্টা করুন এবং আপনি কীভাবে এটি লক্ষ্য করেছেন তা নোট করুন।

চেকলিস্ট

  • [ ] আমি কি আসল কাঁচা তথ্য রেখেছিলাম এবং অনুলিপিতে কাজ করেছি?
  • [ ] আমি কি প্রতিটি অনুপস্থিত কলামের জন্য "এটি খালি" প্রশ্ন জিজ্ঞাসা করেছি?
  • [ ] আমি কি বহিরাগতদের মুছে ফেলার আগে পর্যালোচনা করেছি?
  • [ ] আমি কি শুধুমাত্র প্রশিক্ষণের তথ্য থেকে প্যাডিং মান গণনা করেছি?
  • [ ] আমি কি প্রতিটি ধাপের পরে লাইন/ফাঁকের সংখ্যা পরীক্ষা করছি এবং নীরব ক্ষতি দূর করছি?