リーチとフリークエンシーのデータがある地域レベルのデータを読み込む

それぞれのデータ型と形式の例として、シミュレートされたデータを次のセクションに示します。

CSV

シミュレートされた CSV データCsvDataLoader を使用して読み込む手順は次のとおりです。

  1. 列名を変数型にマッピングします。必要な変数型は timegeocontrolspopulationkpirevenue_per_kpi です。リーチとフリークエンシーのデータがないメディア チャネルの場合は、メディア露出とメディア費用をそれぞれ mediamedia_spend の各カテゴリに割り当てる必要があります。逆に、リーチとフリークエンシーのデータがあるメディア チャネルの場合は、リーチ、フリークエンシー、メディア費用をそれぞれ reachfrequencyrf_spend のカテゴリにマッピングする必要があります。各変数の定義については、データの収集と整理をご覧ください。

    coord_to_columns = load.CoordToColumns(
        time='time',
        geo='geo',
        controls=['GQV', 'Discount', 'Competitor_Sales'],
        population='population',
        kpi='conversions',
        revenue_per_kpi='revenue_per_conversion',
        media=[
            'Channel0_impression',
            'Channel1_impression',
            'Channel2_impression',
            'Channel3_impression',
        ],
        media_spend=[
            'Channel0_spend',
            'Channel1_spend',
            'Channel2_spend',
            'Channel3_spend',
        ],
        reach =['Channel4_reach', 'Channel5_reach'],
        frequency=['Channel4_frequency', 'Channel5_frequency'],
        rf_spend=['Channel4_spend', 'Channel5_spend'],
    )
    
  2. メディア露出、リーチ、フリークエンシー、メディア費用を、2 ページに出力して表示する指定したチャネル名にマッピングします。次の例では、Channel0_impressionChannel0_spend が、同じチャネル Channel0 に結び付けられています。また、Channel4_reachChannel4_frequencyChannel4_spend は同じチャネル Channel4 に結び付けられています。

    correct_media_to_channel = {
        'Channel0_impression': 'Channel0',
        'Channel1_impression': 'Channel1',
        'Channel2_impression': 'Channel2',
        'Channel3_impression': 'Channel3',
    }
    correct_media_spend_to_channel = {
        'Channel0_spend': 'Channel0',
        'Channel1_spend': 'Channel1',
        'Channel2_spend': 'Channel2',
        'Channel3_spend': 'Channel3',
    }
    
    correct_reach_to_channel = {
        'Channel4_reach': 'Channel4',
        'Channel5_reach': 'Channel5',
    }
    correct_frequency_to_channel = {
        'Channel4_frequency': 'Channel4',
        'Channel5_frequency': 'Channel5',
    }
    correct_rf_spend_to_channel = {
        'Channel4_spend': 'Channel4',
        'Channel5_spend': 'Channel5',
    }
    
  3. CsvDataLoader を使用してデータを読み込みます。

    loader = load.CsvDataLoader(
        csv_path=f'/{PATH}/{FILENAME}.csv',
        kpi_type='non_revenue',
        coord_to_columns=coord_to_columns,
        media_to_channel=correct_media_to_channel,
        media_spend_to_channel=correct_media_spend_to_channel,
        reach_to_channel=correct_reach_to_channel,
        frequency_to_channel=correct_frequency_to_channel,
        rf_spend_to_channel=correct_rf_spend_to_channel,
    )
    data = loader.load()
    

    ここで

    • kpi_type は、'revenue''non_revenue' のいずれかです。
    • PATH は、データファイルの場所へのパスです。
    • FILENAME はデータファイルの名前です。

Xarray データセット

シミュレートされた Xarray データセットXrDatasetDataLoader を使用して読み込む手順は次のとおりのです。

  1. 次のように pickle を使用して、データを読み込みます。

    import pickle
    with open(f'/{PATH}/{FILENAME}.pkl', 'r') as fh:
      XrDataset=pickle.load(fh)
    

    ここで

    • PATH は、データファイルの場所へのパスです。
    • FILENAME はデータファイルの名前です。
  2. データセットを XrDatasetDataLoader に渡します。name_mapping 引数を使用して、座標と配列をマッピングします。入力データセットでの名前が必須の名前と異なる場合は、それらの名前をマッピングします。必要な座標名は geotimecontrol_variablemedia_channelrf_channel です。ここで、rf_channel はリーチとフリークエンシーのデータがあるチャネルを表します。必要なデータ変数名は、kpirevenue_per_kpicontrolspopulationmediamedia_spendreachfrequencyrf_spend です。

    loader = load.XrDatasetDataLoader(
        XrDataset,
        kpi_type='non_revenue',
        name_mapping={
            'channel': 'media_channel',
            'control': 'control_variable',
            'conversions': 'kpi',
            'revenue_per_conversion': 'revenue_per_kpi',
            'control_value': 'controls',
            'spend': 'media_spend',
            'reach': 'reach',
            'frequency': 'frequency',
            'rf_spend': 'rf_spend',
        },
    )
    
    data = loader.load()
    

    ここで

    • kpi_type は、'revenue''non_revenue' のいずれかです。

その他のデータ形式

シミュレートされた他のデータ形式excel など)を DataFrameDataLoader を使用して読み込む手順は次のとおりのです。

  1. 列名を変数型にマッピングします。必要な変数型は timegeocontrolspopulationkpirevenue_per_kpi です。リーチとフリークエンシーのデータがないメディア チャネルの場合は、メディア露出とメディア費用をそれぞれ mediamedia_spend の各カテゴリに割り当てる必要があります。逆に、リーチとフリークエンシーのデータがあるメディア チャネルの場合は、リーチ、フリークエンシー、メディア費用をそれぞれ reachfrequencyrf_spend のカテゴリにマッピングする必要があります。各変数の定義については、データの収集と整理をご覧ください。

    coord_to_columns = load.CoordToColumns(
        time='time',
        geo='geo',
        controls=['GQV', 'Discount', 'Competitor_Sales'],
        population='population',
        kpi='conversions',
        revenue_per_kpi='revenue_per_conversion',
        media=[
            'Channel0_impression',
            'Channel1_impression',
            'Channel2_impression',
            'Channel3_impression',
        ],
        media_spend=[
            'Channel0_spend',
            'Channel1_spend',
            'Channel2_spend',
            'Channel3_spend',
        ],
        reach =['Channel4_reach', 'Channel5_reach'],
        frequency=['Channel4_frequency', 'Channel5_frequency'],
        rf_spend=['Channel4_spend', 'Channel5_spend'],
    )
    
  2. メディア露出、リーチ、フリークエンシー、メディア費用を、2 ページに出力して表示する指定したチャネル名にマッピングします。次の例では、Channel0_impressionChannel0_spend が、同じチャネル Channel0 に結び付けられています。また、Channel4_reachChannel4_frequencyChannel4_spend は同じチャネル Channel4 に結び付けられています。

    correct_media_to_channel = {
        'Channel0_impression': 'Channel0',
        'Channel1_impression': 'Channel1',
        'Channel2_impression': 'Channel2',
        'Channel3_impression': 'Channel3',
    }
    correct_media_spend_to_channel = {
        'Channel0_spend': 'Channel0',
        'Channel1_spend': 'Channel1',
        'Channel2_spend': 'Channel2',
        'Channel3_spend': 'Channel3',
    }
    
    correct_reach_to_channel = {
        'Channel4_reach': 'Channel4',
        'Channel5_reach': 'Channel5',
    }
    correct_frequency_to_channel = {
        'Channel4_frequency': 'Channel4',
        'Channel5_frequency': 'Channel5',
    }
    correct_rf_spend_to_channel = {
        'Channel4_spend': 'Channel4',
        'Channel5_spend': 'Channel5',
    }
    
  3. データ(excel など)を DataFrameDataLoader に読み込んでからロードします。

    df = pd.read_excel(f'/{PATH}/{FILENAME}.xlsx')
    loader = load.DataFrameDataLoader(
        df=df,
        kpi_type='non_revenue',
        coord_to_columns=coord_to_columns,
        media_to_channel=correct_media_to_channel,
        media_spend_to_channel=correct_media_spend_to_channel,
        reach_to_channel=correct_reach_to_channel,
        frequency_to_channel=correct_frequency_to_channel,
        rf_spend_to_channel=correct_rf_spend_to_channel,
    )
    data = loader.load()
    

    ここで

    • kpi_type は、'revenue''non_revenue' のいずれかです。
    • PATH は、データファイルの場所へのパスです。
    • FILENAME はデータファイルの名前です。

次で、モデルを作成できます。