Kaggle-এর সাথে ML/AI-তে আপনার প্রতিষ্ঠানকে আপস্কিল করুন

১. ভূমিকা

47566e1490c16443.png

সর্বশেষ হালনাগাদ: ২০২৪-০৫-১০

Kaggle কী?

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

আপনি যা তৈরি করবেন

এই কোডল্যাবে আপনি একটি ক্যাগল প্রতিযোগিতা তৈরি, কনফিগার এবং চালু করবেন। আপনি প্রতিযোগীদের অভিজ্ঞতা সম্পর্কে জানবেন এবং একটি আকর্ষণীয় প্রতিযোগিতা পরিচালনার সেরা পদ্ধতিগুলো বুঝবেন।

আপনি যা শিখবেন

  • হোস্টের পক্ষ থেকে কীভাবে একটি ক্যাগল প্রতিযোগিতা তৈরি ও পরিচালনা করতে হয় তা বুঝুন।
  • অনুসন্ধান থেকে শুরু করে জমা দেওয়া পর্যন্ত প্রতিযোগীর অভিজ্ঞতাটি পরিচালনা করুন।
  • একটি আকর্ষণীয় প্রতিযোগিতা পরিচালনার সেরা পদ্ধতিগুলো জানুন

এই কোডল্যাবটির মূল লক্ষ্য হলো দ্রুত একটি প্রতিযোগিতা তৈরি করা এবং এতে ক্যাগল-এর ক্রমবর্ধমান প্রতিযোগিতা লাইব্রেরিকে কাজে লাগানো হয়েছে।

আপনার যা যা লাগবে

  • একটি সাম্প্রতিক ওয়েব ব্রাউজার
  • পাইথন সম্পর্কে প্রাথমিক জ্ঞান

২. প্রস্তুতি গ্রহণ

একটি কাগল অ্যাকাউন্ট তৈরি করুন

Kaggle ওয়েবসাইট (https://www.kaggle.com/) এ যান এবং একটি বিনামূল্যের অ্যাকাউন্ট তৈরি করতে 'Register' এ ক্লিক করুন।

আপনার অ্যাকাউন্ট যাচাই করুন

  1. পেজের উপরের ডান কোণায় আপনার প্রোফাইল ছবিতে ক্লিক করুন।
  2. 'আপনার প্রোফাইল'-এ ক্লিক করুন
  3. প্রোফাইল কন্টেন্টের ডানদিকে থাকা "সেটিংস" বাটনে ক্লিক করুন।
  4. আপনার অ্যাকাউন্ট যাচাই করার জন্য "ফোন যাচাইকরণ" অংশের নির্দেশাবলী অনুসরণ করুন।

৩. আপনার প্রথম প্রতিযোগিতা তৈরি করা

এআই দ্বারা তৈরি প্রতিযোগিতার টেমপ্লেট চালু করা হচ্ছে

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

এটি যেভাবে কাজ করে:

  1. একটি টেমপ্লেট বেছে নিন : বিভিন্ন মেশিন লার্নিং কাজের (যেমন, ক্লাসিফিকেশন, রিগ্রেশন) উপর ভিত্তি করে টেমপ্লেটের তালিকা থেকে নির্বাচন করুন।
  2. এআই একটি ডেটাসেট তৈরি করে : ক্যাগল-এর এআই আপনার নির্বাচিত টেমপ্লেটের উপর ভিত্তি করে আপনার প্রতিযোগিতার জন্য একটি নতুন ডেটাসেট তৈরি করে। এই ডেটাসেটটি মূলটির মতোই, তবে এতে ফিচারের একটি উপসেট ব্যবহার করা হয় এবং এর ফিচার বিন্যাস কিছুটা ভিন্ন থাকে।
  3. আপনার প্রতিযোগিতাটি সাজিয়ে নিন : প্রতিযোগিতার নাম, বিবরণ এবং সময়সীমার মতো প্রাথমিক তথ্য লিখুন। এছাড়াও আপনি আপনার প্রতিযোগিতার জন্য গোপনীয়তার সেটিংস বেছে নিতে পারেন।
  4. লঞ্চ : বিস্তারিত বিষয়গুলো চূড়ান্ত করে এবং লঞ্চের তারিখ ঠিক করার পর, আপনি আপনার প্রতিযোগীকে লঞ্চ করার জন্য প্রস্তুত।

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

একটি প্রতিযোগিতা তৈরি করুন

https://www.kaggle.com/competitions/new -এ যান এবং 'New AI Generated Competition' নির্বাচন করুন।

2629bf77a282a46c.png

‘কাঁকড়ার বয়সের ডেটাসেট দিয়ে রিগ্রেশন’ প্রতিযোগিতাটি নির্বাচন করুন।

প্রতিযোগিতার বিবরণ

2dd2228b9d686a6e.png

একটি বর্ণনামূলক নাম এবং উপশিরোনাম পূরণ করুন। উদাহরণস্বরূপ, আপনি শিরোনাম হিসেবে '<আপনার নাম>'স টেস্ট ক্র্যাব কম্পিটিশন' এবং উপশিরোনাম হিসেবে 'এটি কীভাবে কাজ করে তা দেখার জন্য আমার প্রথম প্রতিযোগিতা তৈরি করছি' ব্যবহার করতে পারেন। মনে রাখবেন যে, শিরোনামের উপর ভিত্তি করে প্রতিযোগিতার URL স্বয়ংক্রিয়ভাবে পূরণ হয়ে যায়।

দৃশ্যমানতা এবং প্রবেশাধিকার

এখন আমাদের প্রতিযোগিতার দৃশ্যমানতা এবং প্রবেশাধিকার নির্ধারণ করতে হবে।

5c7dcae412ddd574.png

দৃশ্যমানতা

  • পাবলিক : আপনার প্রতিযোগিতাটি Kaggle-এর যে কেউ দেখতে পাবে। এটি সার্চ রেজাল্টে দেখানো হবে, তাই যে কেউ আগ্রহী হলে এতে যোগ দিতে পারবে।
  • ব্যক্তিগত : আপনার প্রতিযোগিতাটি সর্বসাধারণের দৃষ্টি থেকে গোপন থাকবে। এটি অনুসন্ধানে প্রদর্শিত হবে না, এবং শুধুমাত্র আপনার বিশেষভাবে আমন্ত্রিত ব্যক্তিরাই এতে অংশগ্রহণ করতে পারবেন।

কারা যোগদান করতে পারেন

  • যে কেউ : এটা অনেকটা উন্মুক্ত দ্বার নীতির মতো। Kaggle-এর যে কেউ আপনার প্রতিযোগিতায় যোগ দিতে পারে।
  • শুধুমাত্র লিঙ্কধারীরা : এটি আরও বেশি এক্সক্লুসিভ। আপনি একটি বিশেষ লিঙ্ক তৈরি করবেন, এবং শুধুমাত্র সেই লিঙ্কধারীরাই যোগ দিতে পারবেন।
  • সীমাবদ্ধ ইমেল তালিকা : এটি সবচেয়ে নিয়ন্ত্রিত বিকল্প। আপনি নির্দিষ্ট কিছু ইমেল ঠিকানা বা ডোমেনের (যেমন @yourschool.edu) একটি তালিকা প্রদান করেন এবং শুধুমাত্র সেই ঠিকানার লোকেরাই এতে যোগ দিতে পারেন।

আমরা পরে ‘ Enable Notebooks and Models’ সেটিংটি নিয়ে আরও আলোচনা করব। আপাতত, নিশ্চিত করুন যে এটি চালু (on) করা আছে। আমাদের উদাহরণ প্রতিযোগিতার জন্য এই সেটিংগুলো ‘Private’ এবং ‘Only people with the link’-এ সেট করুন।

শর্তাবলী পড়ুন ও তাতে সম্মত হয়ে " প্রতিযোগিতা তৈরি করুন " বোতামে ক্লিক করুন।

৪. আপনার প্রতিযোগীদের বোঝা এবং কনফিগার করা

নেপথ্যে আমরা একটি অনন্য ডেটাসেট সহ সম্পূর্ণ নতুন একটি প্রতিযোগিতা তৈরি করেছি। চলুন প্রতিযোগিতার সেটিংসগুলো দ্রুত একবার দেখে নেওয়া যাক।

হোস্ট ট্যাব

হোস্ট হিসেবে আপনার প্রতিযোগিতা সঠিকভাবে কনফিগার করার জন্য প্রয়োজনীয় সবকিছু হোস্ট ট্যাবে রয়েছে। বিশেষ করে পেজের ডানদিকে থাকা পেজ তালিকাটি দেখুন:

bcedd6768cc4f32c.png

মৌলিক বিবরণ

এই বিভাগে অন্তর্ভুক্ত রয়েছে:

  • সাধারণ
  • গোপনীয়তা, প্রবেশাধিকার এবং সম্পদ
  • সময়রেখা
  • স্কোরিং এবং দল

প্রতিযোগিতাটি চালু করার সময় আমরা সাধারণ এবং গোপনীয়তা বিভাগগুলো অন্তর্ভুক্ত করেছিলাম।

সময়রেখা

প্রতিযোগিতার শেষ তারিখটি টাইমজোন অনুযায়ী নির্ধারিত হয়।

7141f4aea90bccb0.png

স্কোরিং এবং দল

স্কোরিং ও টিম সেকশন আপনাকে নিয়ন্ত্রণ করতে দেয় যে একটি টিমে কতজন যোগ দিতে পারবে, তারা প্রতিদিন কতবার জমা দিতে পারবে এবং চূড়ান্ত মূল্যায়নের জন্য তাদের জমা দেওয়া এন্ট্রিগুলো থেকে কতগুলো বেছে নিতে হবে।

5efb6387612db941.png

ছবি

ইমেজ আপনাকে আপনার প্রতিযোগিতার ব্যানার এবং থাম্বনেইল কাস্টমাইজ করার সুযোগ দেয়। এটি প্রতিযোগিতার হোম পেজের পাশাপাশি আপনার প্রতিযোগিতার লিস্টিং এন্ট্রিকেও প্রভাবিত করবে।

6dfd442376a1c702.png

হোস্টরা

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

8f8c90eb6baa7747.png

মূল্যায়ন মেট্রিক

'ইভ্যালুয়েশন মেট্রিক' ট্যাবটি হলো প্রতিযোগিতার প্রাণকেন্দ্র। একেবারে নতুন করে একটি প্রতিযোগিতা তৈরি করার সময়, এখানে আপনাকে কোন মূল্যায়ন (বা স্কোরিং) মেট্রিক ব্যবহার করবেন সে সম্পর্কে ভালোভাবে ভাবতে হয়, আপনার সলিউশন ফাইল আপলোড করতে হয়, পাবলিক/প্রাইভেট টেস্টের বিভাজন নির্ধারণ করতে হয় এবং একটি নমুনা জমা দিতে হয়। কিন্তু যেহেতু আমরা একটি তৈরি করা প্রতিযোগিতা ব্যবহার করেছি, তাই আমাদের এর কোনোটিই করতে হবে না!

স্কোরিং মেট্রিক

এর মাধ্যমে সলিউশন ফাইলের সাপেক্ষে একটি সাবমিশনকে কীভাবে স্কোর করা হবে তা নির্ধারণ করা হয়। প্রতিটি মেট্রিকের জন্য ডকুমেন্টেশন এবং আসল কোড উপলব্ধ আছে।

সমাধান ফাইল

যেহেতু আমরা একটি জেনারেটেড প্রতিযোগিতা ব্যবহার করছি, তাই এই ফাইলটি আপনার প্রতিযোগিতার জন্য অনন্য!

89fa1f42d177505a.png

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

এই প্রক্রিয়াটি নিশ্চিত করে যে প্রতিযোগীরা ওভারফিটিং বা অতিরিক্ত সাবমিশনের জন্য পুরস্কৃত না হন।

স্যান্ডবক্স জমা

এর মাধ্যমে প্রতিযোগিতার আয়োজকরা নিশ্চিত করতে পারেন যে স্কোরিং ব্যবস্থা প্রত্যাশা অনুযায়ী কাজ করছে, এবং প্রতিযোগীরা তুলনা করার জন্য ‘বেঞ্চমার্ক’ সাবমিশন নির্ধারণ করতে পারেন। এই বেঞ্চমার্ক সাবমিশনগুলো লিডারবোর্ডে প্রদর্শিত হবে।

দল ও জমা

প্রতিযোগিতা চলাকালীন এটি আয়োজকদের সমস্ত স্কোর ডাউনলোড করার পাশাপাশি দল পরিচালনা করার সুযোগ দেয়। প্রতিযোগিতা শুরু হওয়ার আগে এটি খালি থাকে।

লঞ্চ চেকলিস্ট

এই বিষয়টি পরবর্তী অংশে আলোচনা করা হবে!

৫. আপনার প্রতিযোগীকে চালু করা

50b03df072c02e6a.png

প্রতিযোগিতা পেজের উপরের অংশ থেকে "লঞ্চ চেকলিস্ট" বোতামটিতে ক্লিক করুন।

লঞ্চ চেকলিস্ট

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

938b9ed7bc4e0597.png

সময়সীমা নির্ধারণ করুন

প্রথমে 'সেট ডেডলাইন'-এর পাশের তীরচিহ্নে ক্লিক করুন। প্রতিযোগিতাগুলো সাধারণত কমপক্ষে দুই মাস স্থায়ী হয়। একটি প্রতিযোগিতার সর্বোচ্চ মেয়াদ এক বছর।

নিয়ম সম্পাদনা করুন

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

লঞ্চ

আমরা লঞ্চের জন্য প্রস্তুত! এগিয়ে যান এবং আপনার প্রতিযোগিতা শুরু করুন! প্রতিযোগীরা এখন যোগ দেওয়ার জন্য আপনি প্রস্তুত!

৬. প্রতিযোগীর অভিজ্ঞতা

এখন যেহেতু আপনি আপনার প্রতিযোগিতাটি চালু করেছেন, চলুন দেখে নেওয়া যাক প্রতিযোগীর অভিজ্ঞতা কেমন। আমরা প্রতিযোগিতায় যোগদান এবং সাবমিশন জমা দেওয়ার বিষয়টি আলোচনা করব। এর জন্য, আপনি এখানে Google IO Demo Competition-এ যোগদান করতে পারেন: https://www.kaggle.com/competitions/google-io-demo-competition

প্রতিযোগিতায় যোগদান

প্রতিযোগিতার হোম পেজে যাওয়ার পর, উপরের ডানদিকে থাকা "Join Competition" বোতামে ক্লিক করুন এবং তারপর নিয়মাবলী পড়ুন ও স্বীকার করে নিন।

আপনার প্রথম জমা দেওয়া

কোড ট্যাবে যান এবং "নতুন নোটবুক"-এ ক্লিক করুন। এটি একটি নোটবুক খুলবে যা আপনাকে প্রতিযোগিতায় জমা দেওয়ার সুযোগ দেবে।

প্রথমে আমরা ট্রেন এবং টেস্ট ডেটা পড়ে নেব।

# টেস্ট এবং ট্রেইন ডেটা পড়ুন

train = pd.read_csv('/kaggle/input/google-io-demo-competition/train.csv')

test = pd.read_csv('/kaggle/input/google-io-demo-competition/test.csv')

চলুন ডেটাগুলো দেখে নেওয়া যাক।

# কিছু ডেটা দেখে নিন

ট্রেন.হেড()

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

 # পরীক্ষার ডেটা থেকে ফলাফল বাদ দিন

ডেটা = ট্রেন.ড্রপ(কলাম=['বয়স', 'লিঙ্গ'])

উত্তর = ট্রেন['বয়স']

এরপর আমরা একটি মডেল তৈরি করি। এক্ষেত্রে আমরা একটি র‍্যান্ডম ফরেস্ট মডেল তৈরি করছি।

# মডেলের জন্য ইম্পোর্টসমূহ

from sklearn.model_selection import train_test_split

sklearn.ensemble থেকে RandomForestRegressor আমদানি করুন

from sklearn.metrics import mean_absolute_error

মডেল = র‍্যান্ডমফরেস্টরিগ্রেসর()

মডেলটিকে প্রশিক্ষণ দিন

model.fit(data, answers)

একটি জমা তৈরি করুন:

predictions = model.predict(test.drop(columns=['Sex']))

জমা = পিডি.ডেটাফ্রেম({'আইডি': পরীক্ষা['আইডি'], 'বয়স': পূর্বাভাস})

submission.to_csv('submission.csv', index=False)

এরপর আপনি ডানদিকের মেনু থেকে "Submit to Competition" নির্বাচন করে প্রতিযোগিতায় অংশগ্রহণ করতে পারবেন।

1cf17449cae53abe.png

একটি দুর্দান্ত প্রতিযোগিতা আয়োজনের জন্য কিছু পরামর্শ

  1. একটি স্টার্টার নোটবুক অন্তর্ভুক্ত করতে ভুলবেন না যা একটি প্রাথমিক জমা দেওয়ার ব্যবস্থা করে।
  2. প্রতিযোগিতার শুরুতেই আলোচনা ও নোটবুক শেয়ার করার ব্যবহারে উৎসাহিত করুন।
  3. মজা করুন!