Translation not up to date
Każda ze stron w eksperymencie stowarzyszonym musi uzyskać procedurę obsługi danych w celu przetworzenia ich danych. Użytkownik lub analitycy danych muszą utworzyć procedurę obsługi danych. Procedura obsługi danych to klasa Python , która ładuje i transformuje dane tak, aby wszystkie dane do eksperymentu były w spójnym formacie.
Informacje o klasie procedury obsługi danych
Procedura obsługi danych wykonuje następujące funkcje:
- Uzyskuje dostęp do danych, które są wymagane do przeszkolenia modelu. Na przykład: odczytuje dane z pliku CSV do ramki danych Pandas.
- Wstępnie przetwarza dane, tak aby dane były w spójnym formacie we wszystkich podmiach. Przykładowe obserwacje są następujące:
- Kolumna Data może być przechowywana jako epoka czasu lub znacznik czasu.
- Kolumna Kraj może być zakodowana lub skrócona.
- Procedura obsługi danych zapewnia, że formatowanie danych jest zgodne z umową.
- Opcjonalnie: inżynier opcji w razie potrzeby.
Na poniższej ilustracji pokazano, w jaki sposób procedura obsługi danych jest używana do przetwarzania danych i umożliwia jej wykorzystanie przez eksperyment:
Szablon procedury obsługi danych
Ogólny szablon procedury obsługi danych jest następujący:
# your import statements
from ibmfl.data.data_handler import DataHandler
class MyDataHandler(DataHandler):
"""
Data handler for your dataset.
"""
def __init__(self, data_config=None):
super().__init__()
self.file_name = None
if data_config is not None:
# This can be any string field.
# For example, if your data set is in `csv` format,
# <your_data_file_type> can be "CSV", ".csv", "csv", "csv_file" and more.
if '<your_data_file_type>' in data_config:
self.file_name = data_config['<your_data_file_type>']
# extract other additional parameters from `info` if any.
# load and preprocess the training and testing data
self.load_and_preprocess_data()
"""
# Example:
# (self.x_train, self.y_train), (self.x_test, self.y_test) = self.load_dataset()
"""
def load_and_preprocess_data(self):
"""
Loads and pre-processeses local datasets,
and updates self.x_train, self.y_train, self.x_test, self.y_test.
# Example:
# return (self.x_train, self.y_train), (self.x_test, self.y_test)
"""
pass
def get_data(self):
"""
Gets the prepared training and testing data.
:return: ((x_train, y_train), (x_test, y_test)) # most build-in training modules expect data is returned in this format
:rtype: `tuple`
This function should be as brief as possible. Any pre-processing operations should be performed in a separate function and not inside get_data(), especially computationally expensive ones.
# Example:
# X, y = load_somedata()
# x_train, x_test, y_train, y_test = \
# train_test_split(X, y, test_size=TEST_SIZE, random_state=RANDOM_STATE)
# return (x_train, y_train), (x_test, y_test)
"""
pass
def preprocess(self, X, y):
pass
Parametry
your_data_file_type
: To może być dowolna zmienna łańcuchowa. Na przykład, jeśli zestaw danych jest w formaciecsv
,your_data_file_type
może mieć postać "CSV", ". csv", "csv", "csv_file" i więcej.
Zwraca generator danych zdefiniowany przez Keras lub Tensorflow
Poniżej przedstawiono przykładowy kod, który musi zostać dołączony jako część funkcji get_data
, aby zwrócić generator danych zdefiniowany przez Keras lub Tensorflow:
train_gen = ImageDataGenerator(rotation_range=8,
width_sht_range=0.08,
shear_range=0.3,
height_shift_range=0.08,
zoom_range=0.08)
train_datagenerator = train_gen.flow(
x_train, y_train, batch_size=64)
return train_datagenerator
Przykłady procedury obsługi danych
Temat nadrzędny: Tworzenie eksperymentu edukacyjnego stowarzyszonego