Coursera Learner working on a presentation with Coursera logo and
Coursera Learner working on a presentation with Coursera logo and

Kiedy występujesz na modelu i musisz go trenować, masz oczywiście zestaw danych. Ale po treningu, musimy sprawdzić model na jakimś zestawie danych testowych. W tym celu, będziesz miał zestaw danych, który różni się od zestawu treningowego, którego używałeś wcześniej. Ale nie zawsze byłoby możliwe posiadanie tak dużej ilości danych w fazie zawodów.

W takich przypadkach oczywistym rozwiązaniem jest rozdzielenie zestawu danych, który posiadasz, na dwa zestawy, jeden do treningu, a drugi do testowania; i robisz to zanim zaczniesz trenować swój model.

Ale pytanie brzmi, jak rozdzielić dane? Nie ma możliwości ręcznego rozdzielenia danych na dwa zestawy. Aby pomóc nam w tym zadaniu, biblioteka SciKit dostarcza narzędzie, zwane biblioteką wyboru modelu. Istnieje kategoria w bibliotece, która nazywa się ‘train_test_split’. Używając jej, z łatwością podzielimy zbiór danych na szkolenia, a tym samym zbiory danych testowych w różnych proporcjach.

Jest kilka parametrów, które chcielibyśmy znać zanim użyjemy klasy:

test_size – Ten parametr decyduje o wymiarach informacji, które muszą być podzielone, ponieważ zbiór danych testowych. Parametr ten jest często podawany jako ułamek. na przykład, jeśli podamy 0.5 ponieważ wartość, zbiór danych zostanie podzielony o 50% ponieważ zbiór danych testowych. Jeśli podasz ten parametr, zignorujesz kolejny.

train_size – musisz podać ten parametr, dopóki nie podasz test_size. Często jest to odpowiednik wielkości test_size, ale zamiast tego mówisz kategorii, jaki procent zbioru danych chciałbyś oddzielić, ponieważ zbiór danych o treningu.

random_state – Tutaj mijasz liczbę całkowitą, która może działać, ponieważ ziarno dla generatora liczb losowych podczas podziału. Albo też przekażesz instancję klasy RandomState, która może stać się generatorem liczb losowych. Jeśli niczego nie podasz, zostanie użyta instancja RandomState używana przez np.random.

Jako przykład, rozważmy równoważny zbiór danych, który rozważaliśmy w naszych poprzednich przykładach. Podałem go tutaj w celach referencyjnych:

Podzieliliśmy to na dwa różne zbiory danych, jeden dla cech niezależnych – x, i jeden dla zmiennej – y (która jest tą ostatnią kolumną). Podzielimy teraz zbiór danych x na dwa oddzielne zbiory – xTrain i xTest. Podobnie, podzielimy zbiór danych y na dwa zestawy – yTrain i yTest. Wykonanie tego za pomocą biblioteki sklearn jest niezwykle proste. Sprawdźmy kod:

z pliku sklearn.model_selection zaimportuj train_test_split

xTrain, xTest, yTrain, yTest = train_test_split(x, y, test_size = 0,2, random_state = 0)

Jak widać z kodu, podzieliliśmy zbiór danych w stosunku 80-20, co może być powszechną praktyką w nauce o danych. Dla odmiany, nie podam tu danych wyjściowych. Zrób to dla siebie i zobacz, jak wyglądają nowe zestawy danych.