கட்டிப்பிடிக்கும் முக ரயில் மற்றும் ஸ்பிளிட் டேட்டாசெட்

Kattippitikkum Muka Rayil Marrum Spilit Tettacet



ஹக்கிங் ஃபேஸ் லைப்ரரியில் train_test_split என்ற குறிப்பிட்ட செயல்பாடு இல்லை. எவ்வாறாயினும், இயந்திர கற்றல் பணிகளில் பயிற்சி மற்றும் சோதனைக்கான தரவைப் பிரிக்கும் போது, ​​​​train_test_split செயல்பாடு பொதுவாக scikit-learn போன்ற பிற பிரபலமான நூலகங்களில் பயன்படுத்தப்படுகிறது. இங்கே, scikit-learn இலிருந்து ரயில்_test_split செயல்பாட்டில் பொதுவாகப் பயன்படுத்தப்படும் அளவுருக்களை விளக்குவோம்.

ஹக்கிங் ஃபேஸின் தரவுத்தொகுப்பு நூலகத்தில் உள்ள train_test_split முறையானது தரவுத்தொகுப்பை இரண்டு துணைக்குழுக்களாகப் பிரிக்கப் பயன்படுகிறது: பயிற்சி துணைக்குழு மற்றும் சோதனை துணைக்குழு. பார்க்காத தரவுகளில் மாதிரியின் செயல்திறனை மதிப்பிடுவதற்கு இயந்திரக் கற்றலில் இந்த முறை பொதுவாகப் பயன்படுத்தப்படுகிறது. பயிற்சி துணைக்குழு மாதிரியைப் பயிற்றுவிக்கப் பயன்படுத்தப்படுகிறது, அதே நேரத்தில் சோதனை துணைக்குழு அதன் செயல்திறன் மற்றும் பொதுமைப்படுத்தல் திறன்களை மதிப்பிடுவதற்குப் பயன்படுத்தப்படுகிறது.







ஹக்கிங் ஃபேஸில் ரயில்_டெஸ்ட்_ஸ்பிளிட் முறையின் கண்ணோட்டம் இங்கே:



  1. test_size (numpy.random.Generator, விருப்பத்திற்குரியது) : சோதனை பிரிவின் அளவு இந்த விருப்பத்தால் தீர்மானிக்கப்படுகிறது. வகை மிதவை அல்லது முழு எண்ணாக இருக்கலாம்.
  • இது ஒரு மிதவையாகக் கொடுக்கப்பட்டால், சோதனைப் பிரிவில் சேர்க்கப்படும் தரவுத்தொகுப்பின் சதவீதத்தை அது பிரதிபலிக்க வேண்டும் மற்றும் 0.0 மற்றும் 1.0க்கு இடையில் இருக்க வேண்டும்.
  • ஒரு முழு எண்ணாக வழங்கப்பட்டால், சோதனை மாதிரிகளின் சரியான எண்ணிக்கை மதிப்பால் குறிப்பிடப்படுகிறது.
  • எதுவும் இல்லை என அமைக்கப்பட்டால், இரயில் அளவின் நிரப்பு மதிப்பாகப் பயன்படுத்தப்படும்.
  • ரயிலின் அளவு எதுவும் இல்லை எனில், அது 0.25 ஆக அமைக்கப்படும் (தரவுத்தொகுப்பில் 25%).
  • ரயில்_அளவு (numpy.random.Generator, விருப்பத்திற்குரியது): ரயில் பிரிப்பு அளவு இந்த அளவுருவால் தீர்மானிக்கப்படுகிறது. இது test_size போன்ற அதே வழிகாட்டுதல்களைப் பின்பற்றுகிறது.
    • இது ஒரு மிதவையாகக் கொடுக்கப்பட்டால், அது ரயில் பிரிப்பில் சேர்க்கப்படும் தரவுத்தொகுப்பின் சதவீதத்தை பிரதிபலிக்க வேண்டும் மற்றும் 0.0 மற்றும் 1.0 இடையே இருக்க வேண்டும்.
    • ரயில் மாதிரிகளின் சரியான எண்ணிக்கையானது முழு எண்ணாக வழங்கப்பட்டால் மதிப்பால் குறிப்பிடப்படுகிறது.
    • எதுவும் இல்லை என அமைக்கப்பட்டால், மதிப்பு தானாகவே சோதனை அளவின் நிரப்புதலுக்கு மாற்றப்படும்.
  • கலக்கு (பூல், விருப்பமானது, இயல்புநிலைக்கு உண்மை)
    • இந்த அளவுரு தரவை பிரிப்பதற்கு முன் மாற்ற வேண்டுமா இல்லையா என்பதை தீர்மானிக்கிறது.
    • இது True என அமைக்கப்பட்டால், பிரிப்பதற்கு முன் தரவு தோராயமாக மாற்றப்படும்.
    • இது False என அமைக்கப்பட்டால், தரவு கலக்கப்படாமல் பிரிக்கப்படும்.
  • stratify_by_column (str, விருப்பமானது, இயல்புநிலை எதுவுமில்லை)
    • இந்த அளவுரு ஒரு குறிப்பிட்ட நெடுவரிசையின் அடிப்படையில் தரவின் அடுக்கடுக்காகப் பயன்படுத்தப்படுகிறது.
    • அது குறிப்பிடப்பட்டிருந்தால், அது லேபிள்கள் அல்லது வகுப்புகளின் நெடுவரிசைப் பெயராக இருக்க வேண்டும்.
    • ரயிலில் லேபிள்கள் அல்லது வகுப்புகளின் ஒரே விநியோகம் மற்றும் சோதனைப் பிரிப்புகளைப் பராமரிக்கும் வகையில் தரவு பிரிக்கப்படும்.
  • விதை (எண், விருப்பமானது)
    • இந்த அளவுரு இயல்புநிலை BitGenerator ஐ துவக்க ஒரு விதையை அமைக்க உங்களை அனுமதிக்கிறது.
    • எதுவும் இல்லை என அமைக்கப்பட்டால், இயக்க முறைமையிலிருந்து புதிய, கணிக்க முடியாத என்ட்ரோபி இழுக்கப்படும்.
    • ஒரு முழு எண் அல்லது வரிசை போன்ற முழு எண்கள் அனுப்பப்பட்டால், அவை ஆரம்ப BitGenerator நிலையைப் பெறப் பயன்படுத்தப்படும்.
  • ஜெனரேட்டர் (numpy.random.Generator, விருப்பத்தேர்வு)
    • இந்த அளவுரு, தரவுத்தொகுப்பு வரிசைகளின் வரிசைமாற்றத்தைக் கணக்கிடுவதற்கு NumPy ரேண்டம் ஜெனரேட்டரைக் குறிப்பிட உங்களை அனுமதிக்கிறது.
    • எதுவும் இல்லை (இயல்புநிலை) என அமைக்கப்பட்டால், அது NumPy இன் இயல்புநிலை BitGenerator (PCG64) np.random.default_rng ஐப் பயன்படுத்துகிறது.
  • Keep_in_memory (bool, defaults to False)
    • இந்த அளவுருவை ஒரு கேச் கோப்பில் எழுதுவதற்குப் பதிலாக, பிளவு குறியீடுகளை நினைவகத்தில் வைத்திருக்க வேண்டுமா என்பதை தீர்மானிக்கிறது.
    • இது True என அமைக்கப்பட்டால், பிரிப்புச் செயல்பாட்டின் போது பிளவு குறியீடுகள் நினைவகத்தில் சேமிக்கப்படும்.
    • இது தவறு என அமைக்கப்பட்டால், பிளவு குறியீடுகள் பின்னர் பயன்படுத்த ஒரு கேச் கோப்பில் எழுதப்படும்.
  • load_from_cache_file (விரும்பினால்[bool], கேச்சிங் இயக்கப்பட்டிருந்தால் இயல்புநிலை True ஆக இருக்கும்)
    • இந்த அளவுரு, ஸ்பிலிட் குறியீடுகளை மீண்டும் கணக்கிடுவதற்குப் பதிலாக, கேச் கோப்பைப் பயன்படுத்த வேண்டுமா என்பதை தீர்மானிக்கிறது.
    • இது True என அமைக்கப்பட்டு, பிளவு குறியீடுகளை சேமிக்கும் ஒரு கேச் கோப்பு அடையாளம் காணப்பட்டால், அது பயன்படுத்தப்படும்.
    • இது தவறு என அமைக்கப்பட்டால், கேச் கோப்பு இருந்தாலும் பிளவு குறியீடுகள் மீண்டும் கணக்கிடப்படும்.
    • கேச்சிங் இயக்கப்பட்டிருந்தால், இயல்புநிலை மதிப்பு உண்மையாக இருக்கும்.
  • train_cache_file_name (str, விருப்பத்திற்குரியது)
    • இந்த அளவுரு ரயில் பிரிப்பு குறியீடுகளை சேமிக்கும் கேச் கோப்பிற்கு ஒரு குறிப்பிட்ட பாதை அல்லது பெயரை வழங்க உங்களை அனுமதிக்கிறது.
    • இது குறிப்பிடப்பட்டால், தானாகவே உருவாக்கப்பட்ட கேச் கோப்பு பெயருக்கு பதிலாக இந்த கேச் கோப்பில் ரயில் பிரிப்பு குறியீடுகள் சேமிக்கப்படும்.
  • test_cache_file_name (str, விருப்பத்திற்குரியது)
    • சோதனைப் பிரிப்பு குறியீடுகளை சேமிக்கும் கேச் கோப்பிற்கான குறிப்பிட்ட பாதை அல்லது பெயரை வழங்க இந்த அளவுரு உங்களை அனுமதிக்கிறது.
    • இது குறிப்பிடப்பட்டால், தானாகவே உருவாக்கப்பட்ட கேச் கோப்பு பெயருக்கு பதிலாக இந்த கேச் கோப்பில் சோதனை பிரிப்பு குறியீடுகள் சேமிக்கப்படும்.
  • writer_batch_size (int, defaults to 1000)
    • இந்த அளவுரு கேச் கோப்பு எழுத்தாளருக்கான ஒரு எழுதும் செயல்பாட்டிற்கான வரிசைகளின் எண்ணிக்கையை தீர்மானிக்கிறது.
    • இது நினைவக பயன்பாடு மற்றும் செயலாக்க வேகம் ஆகியவற்றுக்கு இடையேயான பரிமாற்றமாகும்.
    • அதிக மதிப்புகள் எழுதும் செயல்பாடுகளின் எண்ணிக்கையைக் குறைக்கின்றன, ஆனால் செயலாக்கத்தின் போது அதிக நினைவகத்தைப் பயன்படுத்துகின்றன.
    • குறைந்த மதிப்புகள் குறைந்த தற்காலிக நினைவகத்தைப் பயன்படுத்துகின்றன, ஆனால் செயலாக்க வேகத்தை சிறிது பாதிக்கலாம்.
  • train_new_fingerprint (str, விருப்பமானது, இயல்புநிலை எதுவுமில்லை)
    • இந்த அளவுரு உருமாற்றத்தைப் பயன்படுத்திய பிறகு ரயிலின் புதிய கைரேகையைக் குறிக்கிறது.
    • அது குறிப்பிடப்பட்டால், அது ரயில் பெட்டிக்கான புதிய கைரேகையை வழங்குகிறது.
    • எதுவும் இல்லை என அமைக்கப்பட்டால், புதிய கைரேகை முந்தைய கைரேகையின் ஹாஷ் மற்றும் உருமாற்ற வாதங்களைப் பயன்படுத்தி கணக்கிடப்படும்.
  • test_new_fingerprint (str, விருப்பமானது, இயல்புநிலை எதுவுமில்லை)
    • இந்த அளவுரு மாற்றத்தைப் பயன்படுத்திய பிறகு சோதனைத் தொகுப்பின் புதிய கைரேகையைக் குறிக்கிறது.
    • அது குறிப்பிடப்பட்டால், சோதனைத் தொகுப்பிற்கு புதிய கைரேகையை வழங்குகிறது.
    • எதுவும் இல்லை என அமைக்கப்பட்டால், புதிய கைரேகை முந்தைய கைரேகையின் ஹாஷ் மற்றும் உருமாற்ற வாதங்களைப் பயன்படுத்தி கணக்கிடப்படும்.

    தொடரியல்:

    sklearn.model_selection இறக்குமதி train_test_split இலிருந்து

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

    எக்ஸ் : இது உங்கள் தரவுத்தொகுப்பின் உள்ளீட்டு அம்சங்கள் அல்லது சுயாதீன மாறிகளைக் குறிக்கிறது.



    • மற்றும் : இது நீங்கள் கணிக்க முயற்சிக்கும் வெளியீடு அல்லது சார்பு மாறியைக் குறிக்கிறது.
    • சோதனை_அளவு : இந்த அளவுரு சோதனைக்காக ஒதுக்கப்படும் தரவுத்தொகுப்பின் விகிதத்தை தீர்மானிக்கிறது. இது ஒரு மிதவை (எ.கா., 20%க்கு 0.2) அல்லது முழு எண் (எ.கா., 200 மாதிரிகளுக்கு 200) என குறிப்பிடலாம்.
    • சீரற்ற_நிலை : இது ஒரு விருப்ப அளவுருவாகும், இது சீரற்ற எண் ஜெனரேட்டருக்கு ஒரு விதையை அமைக்க உங்களை அனுமதிக்கிறது. பிளவு மீண்டும் உருவாக்கப்படுவதை இது உறுதி செய்கிறது, அதாவது நீங்கள் அதே சீரற்ற நிலை மதிப்பைப் பயன்படுத்தினால் அதே பிளவைப் பெறுவீர்கள்.

    Train_test_split செயல்பாடு நான்கு செட் தரவுகளை வழங்குகிறது:





    • எக்ஸ்_ரயில் : உள்ளீட்டு அம்சங்களின் பயிற்சி தொகுப்பு.
    • X_test : உள்ளீட்டு அம்சங்களின் சோதனைத் தொகுப்பு.
    • y_ரயில் : அவுட்புட் லேபிள்களின் பயிற்சி தொகுப்பு.
    • y_test : வெளியீட்டு லேபிள்களின் சோதனைத் தொகுப்பு.

    உதாரணமாக : பின்வரும் எடுத்துக்காட்டு நிரல் இவ்வாறு சேமிக்கப்படுகிறது test.py ”.

    sklearn.model_selection இறக்குமதி train_test_split இலிருந்து

    தரவுத்தொகுப்புகளிலிருந்து load_dataset ஐ இறக்குமதி செய்க

    # படி 1: தரவுத்தொகுப்பை ஏற்றவும்

    தரவுத்தொகுப்பு = load_dataset('imdb')

    X = தரவுத்தொகுப்பு['ரயில்']['உரை']

    y = தரவுத்தொகுப்பு['ரயில்']['லேபிள்']

    # படி 2: தரவுத்தொகுப்பைப் பிரிக்கவும்

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

    கலக்கு=உண்மை, random_state=42)

    # படி 3: தரவுத்தொகுப்பை ஆராயவும்

    அச்சு ('அசல் தரவுத்தொகுப்பில் உள்ள எடுத்துக்காட்டுகளின் எண்ணிக்கை:', len(X))

    அச்சு ('ரயில் தரவுத்தொகுப்பில் உள்ள எடுத்துக்காட்டுகளின் எண்ணிக்கை:', len(X_train))

    அச்சு ('சோதனை தரவுத்தொகுப்பில் உள்ள எடுத்துக்காட்டுகளின் எண்ணிக்கை:', len(X_test))

    # படி 4: உதாரணத் தரவை அணுகி அச்சிடவும்

    அச்சு('\nரயில் தரவுத்தொகுப்பில் இருந்து எடுத்துக்காட்டு:')

    அச்சு(X_train[0], y_train[0])

    அச்சு('\nசோதனை தரவுத்தொகுப்பில் இருந்து எடுத்துக்காட்டு:')

    அச்சு(X_test[0], y_test[0])

    இந்த இறக்குமதி அறிக்கை scikit-learn இலிருந்து வந்தது, ஹக்கிங் ஃபேஸ் டேட்டாசெட் லைப்ரரியில் இருந்து அல்ல. உங்கள் சூழலில் ஸ்கிகிட்-லேர்ன் நிறுவப்பட்டுள்ளதா என்பதை உறுதிப்படுத்திக் கொள்ளவும். பின்வரும் கட்டளையைப் பயன்படுத்தி அதை நிறுவலாம்:



    pip நிறுவ scikit-Learn

    விளக்கம்: முதலில், தேவையான தொகுதியை நாங்கள் இறக்குமதி செய்கிறோம்: ரயில்_test_split from scikit-learn.

    • load_dataset ('imdb') ஐப் பயன்படுத்தி IMDb தரவுத்தொகுப்பை ஏற்றி, தரவுத்தொகுப்பு மாறிக்கு ஒதுக்குவோம்.
    • train_test_split ஐப் பயன்படுத்த, உள்ளீட்டு அம்சங்களையும் (X) அதனுடன் தொடர்புடைய லேபிள்களையும் (y) பிரிக்க வேண்டும். இந்த வழக்கில், தரவுத்தொகுப்பில் உள்ளீட்டு அம்சங்களாக 'உரை' மற்றும் தொடர்புடைய லேபிள்களாக 'லேபிள்' எனப் பெயரிடப்பட்ட 'ரயில்' எனப் பெயரிடப்பட்ட பிளவு இருப்பதாகக் கருதுகிறோம். உங்கள் தரவுத்தொகுப்பின் கட்டமைப்பின் அடிப்படையில் விசைகளைச் சரிசெய்ய வேண்டியிருக்கலாம்.
    • உள்ளீட்டு அம்சங்கள் (X) மற்றும் லேபிள்களை (y) மற்ற அளவுருக்களுடன் ரயில்_test_splitக்கு அனுப்புவோம். இந்த எடுத்துக்காட்டில், நாங்கள் test_size ஐ 0.2 ஆக அமைத்துள்ளோம், அதாவது 20% தரவு சோதனைக்காக ஒதுக்கப்படும். பிரிப்பதற்கு முன், தரவைத் தோராயமாக மாற்ற, ஷஃபிள் அளவுரு 'True' என அமைக்கப்பட்டுள்ளது, மேலும் ரேண்டம்_ஸ்டேட் அளவுரு மறுஉருவாக்கம் 42 ஆக அமைக்கப்பட்டுள்ளது.
    • Train_test_split செயல்பாடு நான்கு செட் தரவுகளை வழங்குகிறது: 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” ஐப் பயன்படுத்தி இயக்குகிறோம்.

    முடிவுரை

    ஹக்கிங் ஃபேஸின் தரவுத்தொகுப்பு நூலகத்தால் வழங்கப்படும் ரயில்-சோதனை பிரித்தல் செயல்பாடு, ஸ்கிகிட்-லேர்னின் ரயில்_டெஸ்ட்_ஸ்பிளிட் செயல்பாட்டுடன் இணைந்து, தரவுத்தொகுப்பை தனித்தனி பயிற்சி மற்றும் சோதனை துணைக்குழுக்களாகப் பிரிக்க வசதியான மற்றும் திறமையான வழியை வழங்குகிறது.

    Train_test_split செயல்பாட்டைப் பயன்படுத்துவதன் மூலம், நீங்கள் சோதனைத் தொகுப்பின் அளவைக் கட்டுப்படுத்தலாம், தரவை மாற்ற வேண்டுமா மற்றும் மறுஉற்பத்திக்கு ஒரு சீரற்ற விதையை அமைக்கலாம். இந்த நெகிழ்வுத்தன்மையானது கண்ணுக்கு தெரியாத தரவுகளில் இயந்திர கற்றல் மாதிரிகளை திறம்பட மதிப்பிட அனுமதிக்கிறது மற்றும் அதிகப்படியான பொருத்துதல் அல்லது பொருத்தமற்றது போன்ற சிக்கல்களைக் கண்டறிய உதவுகிறது.

    Train_test_split செயல்பாட்டின் அளவுருக்கள், சோதனைத் தொகுப்பின் அளவு (test_size), தரவை மாற்றுதல் (குலைத்தல்) மற்றும் குறிப்பிட்ட நெடுவரிசைகளின் (stratify_by_column) அடிப்படையில் ஒரு அடுக்குப் பிரிப்பைச் செய்தல் போன்ற பிரிவின் பல்வேறு அம்சங்களைக் கட்டுப்படுத்த உங்களை அனுமதிக்கிறது. கூடுதலாக, நீங்கள் மறுஉற்பத்திக்காக ஒரு விதை மதிப்பை (விதை) குறிப்பிடலாம் மற்றும் பிரிப்பு குறியீடுகளை (train_cache_file_name மற்றும் test_cache_file_name) சேமிப்பதற்காக கேச் கோப்பு பெயர்களைத் தனிப்பயனாக்கலாம்.

    ஹக்கிங் ஃபேஸ் வழங்கும் செயல்பாடு, மாதிரி பயிற்சி மற்றும் மதிப்பீட்டிற்கு உங்கள் தரவை எளிதாக்குகிறது. தனித்தனி பயிற்சி மற்றும் சோதனை துணைக்குழுக்களைக் கொண்டிருப்பதன் மூலம், நீங்கள் காணாத தரவுகளில் உங்கள் மாடலின் செயல்திறனைத் துல்லியமாக மதிப்பிடலாம், அதிகப்படியான பொருத்துதல் போன்ற சாத்தியமான சிக்கல்களைக் கண்டறியலாம் மற்றும் மாதிரி மேம்பாடுகளுக்கு தகவலறிந்த முடிவுகளை எடுக்கலாம்.

    ஒட்டுமொத்தமாக, ஹக்கிங் ஃபேஸின் டேட்டாசெட் லைப்ரரியில் உள்ள ரயில்-சோதனை பிரிப்பு செயல்பாடு, ஸ்கிகிட்-லேர்னின் ரயில்_டெஸ்ட்_ஸ்பிலிட்டுடன் இணைந்து, திறமையான தரவுப் பிரிப்பு, மாதிரி மதிப்பீடு மற்றும் வலுவான இயந்திர கற்றல் தீர்வுகளை மேம்படுத்துவதற்கான சக்திவாய்ந்த கருவித்தொகுப்பை வழங்குகிறது.