Ինչպես բաժանել տվյալների հավաքածուն scikit-learnís train_test_split() ֆունկցիայով


Ձեռնարկելով մեքենայական ուսուցման և տվյալների գիտության հսկայական տիրույթները՝ մարդը բախվում է այնպիսի խնդիրների, որոնք կարող են անհետևանք թվալ, բայց կարևոր դիրք են զբաղեցնում ավելի լայն տեսանկյունից: Այդպիսի կենսական խնդիրներից մեկը տվյալների բաժանումն է վերապատրաստման և վավերացման խմբերի, որը հիմնարար քայլ է արդյունավետ կանխատեսող մոդել ստեղծելու համար: Scikit-learn-ը՝ Python-ի մեքենայական ուսուցման նշանավոր գրադարանը, պարծենում է բազմակողմանի ֆունկցիայով՝ train_test_split(), որը ստեղծված է այս առաջադրանքը զգալի հեշտությամբ լուծելու համար: Այս տրակտատը նպատակ ունի ուղղորդել ձեզ ձեր տվյալների բաժանման գործընթացում՝ օգտագործելով scikit-learn's train_test_split() ֆունկցիան:

Շարահյուսություն

from 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)
  • X և y-ը համապատասխանաբար խորհրդանշում են հատկանիշի մատրիցը և թիրախային վեկտորը:

  • test_size-ը ներկայացնում է նախնական տվյալների այն մասը, որը նախատեսված է վավերացման հավաքածուի համար (սովորաբար 0.2 կամ 20%):

  • random_state-ը սկզբնավորում է ներքին պատահական թվերի գեներատորը, որը կարգավորում է տվյալների բաժանումը:

Տվյալների կտրում scikit-learn's train_test_split() ֆունկցիայով

Այս գործողությունը գործում է որպես հզոր պարզեցնող՝ տվյալները վերապատրաստման և վավերացման բաժինների բաժանելու գործի մեջ: Ահա թե ինչպես է այն գործում.

  • Այս օրինակը ցույց է տալիս տարրական գնացքի փորձարկման բաժանումը 20% փորձարկման չափով:

  • Տվյալների 80%-ը կկազմի նախապատրաստվող հավաքածուն (X_train և y_train), մինչդեռ մնացած 20%-ը կկազմի թեստային հավաքածուն (X_test և y_test):

  • Յուրաքանչյուր հավաքածուի ճշգրիտ տվյալների կետերը կախված են մուտքային տվյալներից և պատահական վիճակից:

ա. Տարրական գնացք-թեստ բաժանում

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

Արդյունք

X_train, X_test, y_train, and y_test

բ. Շերտավորված գնացք-թեստային բաժանում

  • Այս օրինակը ցույց է տալիս շերտավորված գնացք-փորձարկման բաժանումը:

  • Stratify պարամետրը երաշխավորում է, որ յուրաքանչյուր դասի համամասնությունը վերապատրաստման և թեստային հավաքածուներում արտացոլում է յուրաքանչյուր դասի համամասնությունը սկզբնական տվյալների բազայում:

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

Արդյունք

X_train, X_test, y_train, and y_test

գ. Գնացք-վավերացում-թեստ բաժանում

  • Այս օրինակը ցույց է տալիս գնացք-վավերացում-թեստ բաժանում: Տվյալները սկզբում մեկուսացված են նախապատրաստվող հավաքածուի (տվյալների 60%-ը) և անցողիկ խմբի (տվյալների 40%-ը):

  • Ժամանակավոր հավաքածուն հետագայում բաժանվում է վավերացման և թեստային հավաքածուի, որոնցից յուրաքանչյուրը ներառում է սկզբնական տվյալների 20%-ը:

X_train, X_temp, y_train, y_temp = train_test_split(X, y, test_size=0.4)
X_validation, X_test, y_validation, y_test = train_test_split(X_temp, y_temp, test_size=0.5)

Արդյունք

X_train, X_validation, X_test, y_train, y_validation, and y_test

դ. Պառակտում խառնելով

  • Այս օրինակը ցուցադրում է գնացքի թեստային բաժանում՝ խառնելով միացված: Shuffle պարամետրը ապահովում է, որ տվյալները կամայականորեն խառնվում են բաժանումից առաջ:

  • Յուրաքանչյուր հավաքածուի տվյալների կետերը կխառնվեն պատահականորեն:

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

Արդյունք

X_train, X_test, y_train, and y_test

ե. Տվյալների որոշակի ենթախմբով բաժանել

  • Այս օրինակը ցուցադրում է գնացքի փորձարկման բաժանում հատուկ պատահական վիճակով: Random_state պարամետրը սահմանում է պատահական թվերի գեներատորի սերմը՝ հաստատելով, որ նույն գնացքի թեստի բաժանումը ստեղծվում է ամեն անգամ, երբ կոդը կատարում է:

  • Յուրաքանչյուր հավաքածուի տվյալների կետերը համահունչ կլինեն մի քանի գործարկումների ընթացքում՝ ֆիքսված պատահական վիճակի պատճառով:

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

Արդյունք

X_train, X_test, y_train, and y_test

Եզրակացություն

Train_test_split() գործողությունը scikit-learn-ից պարզեցնում է տվյալները վերապատրաստման և վավերացման խմբերի մեջ բաժանելու խնդիրը: Սա հզոր գործառույթ է, որը ցույց է տալիս բազմաթիվ պարամետրեր՝ բաժանումը հարմարեցնելու համար՝ ըստ առաջադրանքի անհրաժեշտության:

Train_test_split()-ի ճկունությունը հնարավորություն է տալիս գործառույթին սպասարկել տարբեր համատեքստեր՝ դարձնելով այն կարևոր գործիք ցանկացած տվյալների գիտնականի կամ մեքենայական ուսուցման մասնագետի ռեպերտուարում: Հասկանալով, թե ինչպես հմտորեն կիրառել այս գործառույթը,