সিদ্ধান্ত গাছ: আমি কীভাবে আমার সিদ্ধান্ত গ্রহণের প্রক্রিয়াটিকে অনুকূল করব?

মনে করুন আপনি বিশটি প্রশ্ন খেলছেন question আপনার প্রতিপক্ষ গোপনে একটি বিষয় নির্বাচন করেছে এবং সে কী পছন্দ করেছে তা আপনাকে খুঁজে বের করতে হবে। প্রতিটি ঘুরে, আপনি একটি হ্যাঁ-বা-কোনও প্রশ্ন জিজ্ঞাসা করতে পারেন এবং আপনার প্রতিপক্ষকে অবশ্যই সততার সাথে উত্তর দিতে হবে। খুব কম প্রশ্নের মধ্যে কীভাবে গোপনীয়তাটি খুঁজে পাবেন?

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

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

গুরুত্বপূর্ণ পদ

সিদ্ধান্ত গাছ হ'ল এক ধরণের তত্ত্বাবধানে শেখার অ্যালগরিদম যা রিগ্রেশন এবং শ্রেণিবিন্যাস সমস্যা উভয়ের সাথেই ব্যবহার করা যেতে পারে। এটি উভয় শ্রেণিবদ্ধ এবং ক্রমাগত ইনপুট এবং আউটপুট ভেরিয়েবলের জন্য কাজ করে।

উপরের চিত্রটি ব্যবহার করে, আসুন সিদ্ধান্ত গাছের মূল পরিভাষা সনাক্ত করুন:

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

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

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

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

1 - শ্রেণিবিন্যাস ত্রুটির হার: একটি নির্দিষ্ট অঞ্চলে যে সর্বাধিক সাধারণ শ্রেণীর অন্তর্গত নয় তাদের প্রশিক্ষণ পর্যবেক্ষণগুলির ভগ্নাংশ হিসাবে আমরা "হিট রেট" সংজ্ঞা দিতে পারি। নিম্নলিখিত সমীকরণ থেকে ত্রুটি ফলাফল:

ই = 1 - আরগম্যাক্স_ {সি} (π̂ এমসি)

যেখানে π̂ এমসি এই অঞ্চলটিতে ট্রেনিং ডেটার ভগ্নাংশ উপস্থাপন করে R_m যা শ্রেণি সি এর অন্তর্গত।

2 - গিনি সূচক: গিনি সূচকটি একটি বিকল্প ত্রুটি মেট্রিক যা দেখায় যে অঞ্চলটি কতটা "খাঁটি"। এই ক্ষেত্রে "বিশুদ্ধতা" অর্থ একটি নির্দিষ্ট অঞ্চলে প্রশিক্ষণের ডেটা কতটা একক শ্রেণীর অন্তর্গত। যদি একটি রেঞ্জের আর_এম এমন ডেটা থাকে যা বেশিরভাগই একক শ্রেণীর সি থেকে থাকে তবে গিনি সূচকটি ছোট:

3 - ক্রস-এন্ট্রপি: গিনি সূচকের অনুরূপ তৃতীয় বিকল্প ক্রস-এন্ট্রপি বা ডিভায়েন্স হিসাবে পরিচিত:

ট্রান্সভার্স এনট্রপি শূন্যের কাছাকাছি একটি মান গ্রহণ করে যখন π̂ এমসি সমস্ত 0 এর কাছাকাছি বা 1 এর কাছাকাছি থাকে। সুতরাং, গিনি সূচকের মতো, এম-থার্ড নোড খাঁটি হলে ট্রান্সভার্স এনট্রপি একটি ছোট মান নেয়। প্রকৃতপক্ষে, দেখা যাচ্ছে যে গিনি সূচক এবং ক্রস এনট্রপি সংখ্যাসূচক are

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

স্ক্র্যাচ থেকে বাস্তবায়ন

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

আমরা কীভাবে আমাদের ডেটাসেটকে ভাগ করব? এই বিশৃঙ্খলাটিকে সংগঠিত করার একটি উপায় হ'ল তথ্য পরিমাপ করা। তথ্য তত্ত্ব ব্যবহার করে আমরা তথ্যটি বিভক্ত হওয়ার আগে এবং পরে পরিমাপ করতে পারি। বিভক্ত হওয়ার আগে এবং পরে তথ্যের পরিবর্তনকে তথ্য লাভ বলা হয়। যদি আমরা জানি কীভাবে তথ্য উপাত্ত গণনা করা হয়, তবে কোন ব্রেকডাউন সর্বাধিক তথ্য লাভ করে তা দেখতে আমরা প্রতিটি তথ্যগুলিতে আমাদের ডেটা বিভক্ত করতে পারি। সর্বাধিক তথ্য লাভের সাথে বিভাগটি আমাদের সেরা বিকল্প।

তথ্য অর্জনের গণনা করতে আমরা শ্যানন এনট্রপি ব্যবহার করতে পারি, যা আমাদের শ্রেণীর সমস্ত সম্ভাব্য মানের সমস্ত তথ্যের প্রত্যাশিত মান। এর জন্য পাইথন কোডটি দেখুন:

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

এখন যেহেতু আমরা কীভাবে ডেটাসেটের এনট্রপি পরিমাপ করব তা নির্ণয় করেছি, আমাদের ডেটাসেটটি বিভক্ত করতে হবে, বিভাজক সেটগুলিতে এনট্রপি পরিমাপ করতে হবে এবং বিভক্তটি সঠিকভাবে করা উচিত কিনা তা দেখুন। এটির জন্য কোডটি এখানে:

এই কোডটিতে 3 টি ইনপুট লাগে: ডেটা বিভক্ত করতে, বৈশিষ্ট্যটিকে বিভক্ত করতে এবং ফিরিয়ে দেওয়ার জন্য বৈশিষ্ট্যের মান। আমরা শুরু করার জন্য প্রতিবার একটি নতুন তালিকা তৈরি করি কারণ আমরা একই রেকর্ডের জন্য এই ফাংশনটিকে একাধিকবার কল করছি এবং আমরা চাই না যে মূল রেকর্ডটি পরিবর্তন হয়। আমাদের ডেটা সেটটি তালিকার একটি তালিকা; যখন আমরা তালিকার প্রতিটি আইটেমটি দিয়ে পুনরাবৃত্তি করি এবং এতে আমরা যে সন্ধান করছি তার মূল্য রয়েছে, আমরা এটিকে আমাদের নতুন তৈরি তালিকায় যুক্ত করব। যদি বিবৃতিতে আমরা সেই বৈশিষ্ট্যটি কেটে ফেলি যা আমরা বিভক্ত হয়ে যাই।

এখন আমরা দুটি ফাংশন একত্রিত করতে যাচ্ছি: ডেডাসেটের মাধ্যমে স্ক্রোল করতে এবং কোন ফাংশনটিতে বিভক্ত হওয়া সবচেয়ে ভাল তা সিদ্ধান্ত নেওয়ার জন্য শ্যাননএন্ট্রপি এবং স্প্লিটড্যাটাসেট।

কোডটি একবার দেখুন:

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

এখন যেহেতু আমরা ডেটা সেটটি কতটা সংগঠিত তা পরিমাপ করতে পারি এবং আমরা ডেটা ভেঙে ফেলতে পারি, এখনই এই সমস্তগুলি একসাথে রেখে সিদ্ধান্ত গাছ তৈরি করার সময় এসেছে। একটি ডেটাসেট থেকে, আমরা এটি বিভক্ত করার জন্য সেরা অ্যাট্রিবিউটের ভিত্তিতে বিভক্ত করি। একবার বিভক্ত হয়ে গেলে ডেটা গাছের ডালগুলিকে অন্য নোডের দিকে নিয়ে যায়। এই নোডটি আবার ডেটা ভাগ করে। আমরা এর জন্য পুনরাবৃত্তি ব্যবহার করব।

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

আমাদের সিদ্ধান্ত গাছগুলি তৈরি করার কোডটি এখানে:

আমাদের কোডে 2 টি প্রবেশের প্রয়োজন: তারিখ এবং লেবেলের একটি তালিকা:

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

সাইকিট-শিখার মাধ্যমে বাস্তবায়ন

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

মডেল চালানো 95% একটি পরীক্ষা সেট যথার্থতা দেওয়া উচিত, যার অর্থ মডেলটি পরীক্ষার সেটে নমুনাগুলির 95% জন্য ক্লাসটি সঠিকভাবে পূর্বাভাস দেয়।

শক্তি এবং দুর্বলতা

সিদ্ধান্ত গাছ ব্যবহারের প্রধান সুবিধা হ'ল এগুলি স্বজ্ঞাতভাবে ব্যাখ্যা করা খুব সহজ। অন্যান্য নিপীড়ন এবং শ্রেণিবিন্যাস পদ্ধতির তুলনায় এগুলি সঠিকভাবে মানুষের পছন্দগুলি প্রতিফলিত করে। এগুলি গ্রাফিকভাবে প্রদর্শিত হতে পারে এবং গুণগত ভবিষ্যদ্বাণীকারীগুলি ডামি ভেরিয়েবলগুলি তৈরি করার প্রয়োজন ছাড়াই সহজেই পরিচালনা করা যায়।

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

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

রেফারেন্স উত্স:

  • গ্যারেথ জেমস, ড্যানিয়েলা উইটেন, ট্রেভর হাসি এবং রবার্ট তিবশিরানী দ্বারা স্ট্যাটিস্টিকাল লার্নিংয়ের পরিচিতি (২০১৪)
  • মেশিন লার্নিং ইন অ্যাকশনে পিটার হ্যারিংটন (২০১২)
  • সারা গাইডো এবং আন্দ্রেয়াস মুলার দ্বারা পাইথনের সাথে মেশিন লার্নিংয়ের পরিচিতি (২০১))

- -

আপনি যদি এই টুকরোটি পছন্দ করেন তবে আমি তালি বাটনটি আঘাত করলে ভাল লাগবে যাতে অন্যরা এটির উপরে ভ্রমণ করতে পারে। আপনি আমার নিজের কোডটি গিটহাব এবং আরও নিবন্ধ এবং প্রকল্পগুলিতে https://jameskle.com/ এ খুঁজে পেতে পারেন। আপনি টুইটারে আমাকে অনুসরণ করতে পারেন, সরাসরি ইমেল করতে পারেন বা লিংকডইনে আমাকে খুঁজে পেতে পারেন।