Ինչպես բաժանել տվյալների հավաքածուն 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()-ի ճկունությունը հնարավորություն է տալիս գործառույթին սպասարկել տարբեր համատեքստեր՝ դարձնելով այն կարևոր գործիք ցանկացած տվյալների գիտնականի կամ մեքենայական ուսուցման մասնագետի ռեպերտուարում: Հասկանալով, թե ինչպես հմտորեն կիրառել այս գործառույթը,