加载包含覆盖面和频次的地理位置级数据

以下各部分中提供了模拟数据,作为每种数据类型和格式的示例。

CSV

使用 CsvDataLoader 加载模拟 CSV 数据

  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. 将媒体曝光、覆盖面、频次和媒体支出映射到要在双页输出中显示的指定渠道名称。下例中的 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 数据集

使用 XrDatasetDataLoader 加载模拟 Xarray 数据集

  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'

其他数据格式

使用 DataFrameDataLoader 加载模拟的其他数据格式(例如 excel):

  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. 将媒体曝光、覆盖面、频次和媒体支出映射到要在双页输出中显示的指定渠道名称。下例中的 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 表示数据文件的名称。

接下来,您可以创建模型