আলিঙ্গন ফেস ট্রেন এবং স্প্লিট ডেটাসেট

Alingana Phesa Trena Ebam Splita Detaseta



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

আলিঙ্গন মুখের ডেটাসেট লাইব্রেরিতে ট্রেন_টেস্ট_স্প্লিট পদ্ধতিটি একটি ডেটাসেটকে দুটি উপসেটে ভাগ করতে ব্যবহৃত হয়: একটি প্রশিক্ষণ উপসেট এবং একটি পরীক্ষার উপসেট৷ এই পদ্ধতিটি সাধারণত অদেখা ডেটার উপর একটি মডেলের কর্মক্ষমতা মূল্যায়ন করার জন্য মেশিন লার্নিংয়ে নিযুক্ত করা হয়। প্রশিক্ষণ উপসেটটি মডেলকে প্রশিক্ষণের জন্য ব্যবহার করা হয়, যখন পরীক্ষার উপসেটটি এর কার্যকারিতা এবং সাধারণীকরণ ক্ষমতা মূল্যায়ন করতে ব্যবহৃত হয়।







এখানে আলিঙ্গন মুখের ট্রেন_টেস্ট_স্প্লিট পদ্ধতির একটি ওভারভিউ রয়েছে:



  1. test_size (numpy.random.Generator, ঐচ্ছিক) : পরীক্ষার বিভক্তির আকার এই বিকল্প দ্বারা নির্ধারিত হয়। ধরনটি ফ্লোট বা পূর্ণসংখ্যা হতে পারে।
  • যদি এটি একটি ফ্লোট হিসাবে দেওয়া হয়, এটি পরীক্ষা বিভাজনে অন্তর্ভুক্ত করার জন্য ডেটাসেটের শতাংশ প্রতিফলিত করা উচিত এবং 0.0 এবং 1.0 এর মধ্যে হওয়া উচিত।
  • পরীক্ষার নমুনার সঠিক সংখ্যা মান দ্বারা উপস্থাপিত হয় যদি এটি একটি পূর্ণসংখ্যা হিসাবে সরবরাহ করা হয়।
  • যদি এটি None তে সেট করা হয়, ট্রেনের আকারের পরিপূরকটি মান হিসাবে ব্যবহৃত হয়।
  • যদি ট্রেনের_আকারটিও কোনটি না হয় তবে এটি 0.25 (ডেটাসেটের 25%) সেট করা হবে।
  • train_size (numpy.random.Generator, ঐচ্ছিক): ট্রেন বিভক্ত আকার এই পরামিতি দ্বারা নির্ধারিত হয়. এটি test_size হিসাবে একই নির্দেশিকা অনুসরণ করে।
    • যদি এটি একটি ফ্লোট হিসাবে দেওয়া হয়, এটি ট্রেন বিভাজনে অন্তর্ভুক্ত করার জন্য ডেটাসেটের শতাংশ প্রতিফলিত করা উচিত এবং 0.0 এবং 1.0 এর মধ্যে হওয়া উচিত।
    • ট্রেনের নমুনার সঠিক সংখ্যাটি মান দ্বারা উপস্থাপিত হয় যদি এটি একটি পূর্ণসংখ্যা হিসাবে সরবরাহ করা হয়।
    • যদি এটি None এ সেট করা থাকে, তাহলে মানটি স্বয়ংক্রিয়ভাবে পরীক্ষার আকারের পরিপূরক হিসাবে পরিবর্তিত হয়।
  • শাফেল (বুল, ঐচ্ছিক, ডিফল্ট থেকে সত্য)
    • এই পরামিতি নির্ধারণ করে বিভক্ত করার আগে ডেটা এলোমেলো করতে হবে কিনা।
    • এটি সত্যে সেট করা থাকলে, বিভক্ত হওয়ার আগে ডেটা এলোমেলোভাবে পরিবর্তন করা হবে।
    • যদি এটি False এ সেট করা থাকে, তাহলে ডাটা এলোমেলো না করে বিভক্ত হবে।
  • stratify_by_column (str, ঐচ্ছিক, ডিফল্ট থেকে None)
    • এই প্যারামিটারটি একটি নির্দিষ্ট কলামের উপর ভিত্তি করে ডেটার স্তরিত বিভাজনের জন্য ব্যবহৃত হয়।
    • যদি এটি নির্দিষ্ট করা হয় তবে এটি লেবেল বা ক্লাসের কলামের নাম হওয়া উচিত।
    • ডেটা এমনভাবে বিভক্ত করা হবে যা ট্রেনে লেবেল বা ক্লাস এবং টেস্ট স্প্লিটগুলির একই বন্টন বজায় রাখে।
  • বীজ (int, ঐচ্ছিক)
    • এই প্যারামিটারটি আপনাকে ডিফল্ট বিটজেনারেটর আরম্ভ করার জন্য একটি বীজ সেট করতে দেয়।
    • যদি এটি None এ সেট করা থাকে, তাহলে অপারেটিং সিস্টেম থেকে একটি নতুন, অপ্রত্যাশিত এনট্রপি টেনে আনা হবে।
    • যদি একটি পূর্ণসংখ্যা বা অ্যারে-সদৃশ পূর্ণসংখ্যা পাস করা হয়, তবে সেগুলি প্রাথমিক বিটজেনারেটর অবস্থা তৈরি করতে ব্যবহার করা হবে।
  • জেনারেটর (numpy.random.Generator, ঐচ্ছিক)
    • এই প্যারামিটারটি আপনাকে ডেটাসেট সারিগুলির স্থানান্তর গণনা করার জন্য একটি NumPy র্যান্ডম জেনারেটর নির্দিষ্ট করতে দেয়।
    • যদি এটি None (ডিফল্ট) এ সেট করা থাকে তবে এটি np.random.default_rng ব্যবহার করে যা NumPy-এর ডিফল্ট BitGenerator (PCG64)।
  • Keep_in_memory (bool, default to False)
    • এই পরামিতি নির্ধারণ করে যে বিভক্ত সূচকগুলি ক্যাশে ফাইলে লেখার পরিবর্তে মেমরিতে রাখা হবে কিনা।
    • যদি এটি সত্যে সেট করা হয়, বিভক্ত সূচকগুলি বিভাজন প্রক্রিয়া চলাকালীন মেমরিতে সংরক্ষণ করা হবে।
    • যদি এটি False এ সেট করা থাকে, বিভক্ত সূচকগুলি পরবর্তীতে ব্যবহারের জন্য একটি ক্যাশে ফাইলে লেখা হবে।
  • load_from_cache_file (ঐচ্ছিক[বুল], ক্যাশিং সক্ষম হলে ডিফল্ট করে সত্য)
    • এই পরামিতি নির্ধারণ করে যে বিভক্ত সূচকগুলি লোড করার জন্য একটি ক্যাশে ফাইল ব্যবহার করতে হবে কিনা তা পুনরায় গণনা করার পরিবর্তে।
    • যদি এটি True তে সেট করা থাকে এবং একটি ক্যাশে ফাইল যা বিভক্ত সূচকগুলি সঞ্চয় করে তা চিহ্নিত করা যেতে পারে, এটি ব্যবহার করা হবে।
    • যদি এটি False এ সেট করা থাকে, একটি ক্যাশে ফাইল থাকলেও বিভক্ত সূচকগুলি পুনরায় গণনা করা হবে।
    • ক্যাশিং সক্রিয় থাকলে ডিফল্ট মান সত্য।
  • train_cache_file_name (str, ঐচ্ছিক)
    • এই প্যারামিটারটি আপনাকে ক্যাশে ফাইলের জন্য একটি নির্দিষ্ট পথ বা নাম প্রদান করতে দেয় যা ট্রেন বিভক্ত সূচকগুলি সংরক্ষণ করে।
    • এটি নির্দিষ্ট করা থাকলে, স্বয়ংক্রিয়ভাবে তৈরি হওয়া ক্যাশে ফাইলের নামের পরিবর্তে ট্রেন বিভক্ত সূচকগুলি এই ক্যাশে ফাইলে সংরক্ষণ করা হবে।
  • test_cache_file_name (str, ঐচ্ছিক)
    • এই প্যারামিটারটি আপনাকে ক্যাশে ফাইলের জন্য একটি নির্দিষ্ট পথ বা নাম প্রদান করতে দেয় যা পরীক্ষার বিভক্ত সূচকগুলি সঞ্চয় করে।
    • এটি নির্দিষ্ট করা থাকলে, স্বয়ংক্রিয়ভাবে তৈরি হওয়া ক্যাশে ফাইলের নামের পরিবর্তে এই ক্যাশে ফাইলে পরীক্ষার বিভক্ত সূচকগুলি সংরক্ষণ করা হবে।
  • writer_batch_size (int, ডিফল্ট 1000)
    • এই পরামিতি ক্যাশে ফাইল লেখকের জন্য প্রতি লেখার অপারেশনে সারি সংখ্যা নির্ধারণ করে।
    • এটি মেমরি ব্যবহার এবং প্রক্রিয়াকরণ গতির মধ্যে একটি ট্রেড-অফ।
    • উচ্চতর মান লেখার ক্রিয়াকলাপের সংখ্যা হ্রাস করে তবে প্রক্রিয়াকরণের সময় আরও মেমরি ব্যবহার করে।
    • নিম্ন মানগুলি কম অস্থায়ী মেমরি ব্যবহার করে তবে প্রক্রিয়াকরণের গতিকে কিছুটা প্রভাবিত করতে পারে।
  • ট্রেন_নতুন_আঙুলের ছাপ (str, ঐচ্ছিক, ডিফল্ট থেকে কোনটি নয়)
    • এই প্যারামিটারটি একটি রূপান্তর প্রয়োগ করার পরে ট্রেনের সেটের নতুন আঙ্গুলের ছাপ উপস্থাপন করে।
    • যদি এটি নির্দিষ্ট করা হয়, এটি ট্রেন সেটের জন্য একটি নতুন আঙ্গুলের ছাপ প্রদান করে।
    • যদি এটি None তে সেট করা থাকে, নতুন আঙ্গুলের ছাপ আগের আঙ্গুলের ছাপের একটি হ্যাশ এবং রূপান্তর আর্গুমেন্ট ব্যবহার করে গণনা করা হয়।
  • টেস্ট_নতুন_আঙুলের ছাপ (str, ঐচ্ছিক, ডিফল্ট থেকে কোনটি নয়)
    • এই প্যারামিটারটি একটি রূপান্তর প্রয়োগ করার পরে পরীক্ষার সেটের নতুন আঙ্গুলের ছাপ উপস্থাপন করে।
    • এটি নির্দিষ্ট করা থাকলে, এটি পরীক্ষার সেটের জন্য একটি নতুন আঙ্গুলের ছাপ প্রদান করে।
    • যদি এটি None তে সেট করা থাকে, নতুন আঙ্গুলের ছাপ আগের আঙ্গুলের ছাপের একটি হ্যাশ এবং রূপান্তর আর্গুমেন্ট ব্যবহার করে গণনা করা হয়।

    বাক্য গঠন:

    sklearn.model_selection import train_test_split থেকে

    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

    এক্স : এটি আপনার ডেটাসেটের ইনপুট বৈশিষ্ট্য বা স্বাধীন ভেরিয়েবলের প্রতিনিধিত্ব করে।



    • এবং : এটি আউটপুট বা নির্ভরশীল ভেরিয়েবলের প্রতিনিধিত্ব করে যা আপনি ভবিষ্যদ্বাণী করার চেষ্টা করছেন।
    • test_size : এই প্যারামিটারটি ডেটাসেটের অনুপাত নির্ধারণ করে যা পরীক্ষার জন্য বরাদ্দ করা হবে। এটি একটি ফ্লোট (যেমন, 20% এর জন্য 0.2) বা একটি পূর্ণসংখ্যা (যেমন, 200টি নমুনার জন্য 200) হিসাবে নির্দিষ্ট করা যেতে পারে।
    • random_state : এটি একটি ঐচ্ছিক পরামিতি যা আপনাকে এলোমেলো সংখ্যা জেনারেটরের জন্য একটি বীজ সেট করতে দেয়। এটি নিশ্চিত করে যে বিভক্তটি পুনরুত্পাদনযোগ্য যার মানে আপনি যদি একই র্যান্ডম স্টেট মান ব্যবহার করেন তবে আপনি একই বিভক্ত পাবেন।

    ট্রেন_টেস্ট_স্প্লিট ফাংশনটি ডেটার চার সেট প্রদান করে:





    • এক্স_ট্রেন : ইনপুট বৈশিষ্ট্য প্রশিক্ষণ সেট.
    • এক্স_পরীক্ষা : ইনপুট বৈশিষ্ট্যের টেস্টিং সেট।
    • y_train : আউটপুট লেবেল প্রশিক্ষণ সেট.
    • y_পরীক্ষা : আউটপুট লেবেলের টেস্টিং সেট।

    উদাহরণ : নিম্নলিখিত উদাহরণ প্রোগ্রাম হিসাবে সংরক্ষণ করা হয়েছে “ test.py

    sklearn.model_selection import train_test_split থেকে

    ডেটাসেট থেকে লোড_ডেটাসেট আমদানি করুন

    # ধাপ 1: ডেটাসেট লোড করুন

    ডেটাসেট = লোড_ডেটাসেট('imdb')

    X = ডেটাসেট['ট্রেন']['টেক্সট']

    y = ডেটাসেট['ট্রেন']['লেবেল']

    # ধাপ 2: ডেটাসেট বিভক্ত করুন

    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2,

    shuffle=True, random_state=42)

    # ধাপ 3: ডেটাসেট অন্বেষণ করুন

    মুদ্রণ ('মূল ডেটাসেটে উদাহরণের সংখ্যা:', লেন(এক্স))

    মুদ্রণ ('ট্রেন ডেটাসেটে উদাহরণের সংখ্যা:', লেন(এক্স_ট্রেন))

    প্রিন্ট ('পরীক্ষা ডেটাসেটে উদাহরণের সংখ্যা:', len(X_test))

    # ধাপ 4: উদাহরণ ডেটা অ্যাক্সেস এবং মুদ্রণ করুন

    মুদ্রণ('\nট্রেন ডেটাসেট থেকে উদাহরণ:')

    মুদ্রণ(X_train[0], y_train[0])

    মুদ্রণ('\nপরীক্ষা ডেটাসেট থেকে উদাহরণ:')

    মুদ্রণ(X_test[0], y_test[0])

    এই ইম্পোর্ট স্টেটমেন্টটি scikit-learn থেকে, Hugging Face datasets লাইব্রেরি থেকে নয়। অনুগ্রহ করে নিশ্চিত করুন যে আপনি আপনার পরিবেশে স্কিট-লার্ন ইনস্টল করেছেন। আপনি নিম্নলিখিত কমান্ড ব্যবহার করে এটি ইনস্টল করতে পারেন:



    পিপ ইন্সটল স্কিট-লার্ন

    ব্যাখ্যা: প্রথমে, আমরা প্রয়োজনীয় মডিউল আমদানি করি: স্কিট-লার্ন থেকে ট্রেন_টেস্ট_স্প্লিট।

    • আমরা load_dataset('imdb') ব্যবহার করে IMDb ডেটাসেট লোড করি এবং ডেটাসেট ভেরিয়েবলের সাথে বরাদ্দ করি।
    • Train_test_split ব্যবহার করার জন্য, আমাদের ইনপুট বৈশিষ্ট্য (X) এবং সংশ্লিষ্ট লেবেল (y) আলাদা করতে হবে। এই ক্ষেত্রে, আমরা ধরে নিই যে ডেটাসেটে ইনপুট বৈশিষ্ট্য হিসাবে 'টেক্সট' সহ 'ট্রেন' নামে একটি বিভক্ত এবং সংশ্লিষ্ট লেবেল হিসাবে 'লেবেল' রয়েছে৷ আপনার ডেটাসেটের কাঠামোর উপর ভিত্তি করে আপনাকে কীগুলি সামঞ্জস্য করতে হতে পারে।
    • তারপরে আমরা ইনপুট বৈশিষ্ট্যগুলি (X) এবং লেবেলগুলি (y) অন্যান্য পরামিতি সহ train_test_split-এ পাস করি। এই উদাহরণে, আমরা test_size 0.2 তে সেট করি যার অর্থ হল 20% ডেটা পরীক্ষার জন্য বরাদ্দ করা হবে। বিভক্ত করার আগে ডাটা এলোমেলোভাবে শাফেল করার জন্য শাফেল প্যারামিটারটি 'ট্রু' এ সেট করা হয়েছে এবং পুনরুত্পাদনযোগ্যতার জন্য র্যান্ডম_স্টেট প্যারামিটারটি 42 এ সেট করা হয়েছে।
    • ট্রেন_টেস্ট_স্প্লিট ফাংশনটি ডেটার চার সেট প্রদান করে: X_train, X_test, y_train এবং y_test। এগুলি যথাক্রমে ইনপুট বৈশিষ্ট্য এবং লেবেলের প্রশিক্ষণ এবং পরীক্ষার উপসেটগুলিকে প্রতিনিধিত্ব করে৷
    • আমরা মূল ডেটাসেট (len(X)), প্রশিক্ষণ ডেটাসেট (len(X_train)), এবং পরীক্ষার ডেটাসেটে (len(X_test)) উদাহরণের সংখ্যা প্রিন্ট করি। এটি আমাদের বিভাজন প্রক্রিয়া যাচাই করতে এবং উপসেটগুলি সঠিকভাবে তৈরি করা হয়েছে তা নিশ্চিত করতে দেয়।
    • অবশেষে, আমরা প্রশিক্ষণ ডেটাসেট (X_train[0], y_train[0]) থেকে একটি উদাহরণ এবং পরীক্ষার ডেটাসেট (X_test[0], y_test[0]) থেকে একটি উদাহরণ অ্যাক্সেস ও প্রিন্ট করি।

    আউটপুট : আমরা পাইথন “test.py” ব্যবহার করে পূর্বে সংরক্ষিত প্রোগ্রাম চালাই।

    উপসংহার

    ট্রেন-টেস্ট স্প্লিট কার্যকারিতা যা Hugging Face-এর ডেটাসেট লাইব্রেরি দ্বারা সরবরাহ করা হয়, scikit-learn-এর train_test_split ফাংশনের সংমিশ্রণে, একটি ডেটাসেটকে পৃথক প্রশিক্ষণ এবং পরীক্ষার উপসেটে ভাগ করার একটি সুবিধাজনক এবং কার্যকর উপায় অফার করে।

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

    Train_test_split ফাংশনের পরামিতিগুলি আপনাকে বিভক্তের বিভিন্ন দিক নিয়ন্ত্রণ করতে দেয় যেমন টেস্ট সেটের আকার (test_size), ডাটা এলোমেলো করা (শাফেল), এবং নির্দিষ্ট কলামের (stratify_by_column) উপর ভিত্তি করে একটি স্তরিত বিভাজন সম্পাদন করা। অতিরিক্তভাবে, আপনি পুনরুত্পাদনযোগ্যতার জন্য একটি বীজের মান (বীজ) নির্দিষ্ট করতে পারেন এবং বিভক্ত সূচকগুলি (ট্রেন_ক্যাশে_ফাইল_নাম এবং পরীক্ষা_ক্যাশে_ফাইল_নাম) সংরক্ষণের জন্য ক্যাশে ফাইলের নামগুলি কাস্টমাইজ করতে পারেন।

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

    সামগ্রিকভাবে, হিগিং ফেসের ডেটাসেট লাইব্রেরিতে ট্রেন-টেস্ট স্প্লিট কার্যকারিতা, scikit-learn's train_test_split-এর সাথে একত্রে, দক্ষ ডেটা বিভাজন, মডেল মূল্যায়ন, এবং শক্তিশালী মেশিন লার্নিং সমাধানগুলির বিকাশের জন্য একটি শক্তিশালী টুলসেট প্রদান করে।