0 / 0
資料の 英語版 に戻る
データ・ハンドラーの作成
最終更新: 2024年11月28日
データ・ハンドラーの作成

統合学習エクスペリメントの各パーティーは、データを処理するためのデータ・ハンドラーを取得する必要があります。 お客様またはデータ・サイエンティストがデータ・ハンドラーを作成する必要があります。 データ・ハンドラーは、エクスペリメントのすべてのデータが一貫性のある形式になるようにデータをロードして変換する Python クラスです。

データ・ハンドラー・クラスについて

データ・ハンドラーは、以下の機能を実行します。

  • モデルのトレーニングに必要なデータにアクセスします。 例えば、CSV ファイルから Pandas データ・フレームにデータを読み取ります。
  • データを前処理して、すべてのパーティーでデータが一貫性のある形式になるようにします。 いくつかの例を以下に示します。
    • 「日付」 列は、時刻エポックまたはタイム・スタンプとして保管される場合があります。
    • Country 列は、エンコードされているか、省略されている可能性があります。
  • データ・ハンドラーは、データ・フォーマット設定が一致していることを確認します。
    • オプション: 必要に応じてフィーチャー・エンジニア。

次の図は、データ・ハンドラーを使用してデータを処理し、そのデータをエクスペリメントで利用できるようにする方法を示しています。

データ・フォーマットを統一するデータ・ハンドラーのユース・ケース

一方ではリレーショナル データベースに複数のテーブルがあり、もう一方は CSV ファイルを使用している可能性があります。 データがデータ ハンドラーで処理されると、統一された形式になります。 たとえば、すべてのデータが 1 つのテーブルに格納され、以前のデータは別々のテーブルにまとめられます。

データ・ハンドラー・テンプレート

一般的なデータ・ハンドラー・テンプレートは以下のとおりです。

# 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

パラメーター

  • your_data_file_type: 任意のストリング・フィールドを指定できます。 例えば、データ・セットが csv 形式の場合、 your_data_file_type には「CSV」、「.csv」、「csv」、「csv_file」などを指定できます。

Keras または Tensorflow によって定義されたデータ生成プログラムを返します。

Keras または Tensorflowによって定義されたデータ生成プログラムを返すために、 get_data 関数の一部として組み込む必要があるコード例を以下に示します。

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

データ・ハンドラーの例

親トピック: 統合学習エクスペリメントの作成

生成 AI の検索と回答
これらの回答は、製品資料の内容に基づいて、 watsonx.ai のラージ言語モデルによって生成されます。 詳細