In den folgenden Abschnitten werden für jeden Datentyp und jedes Format simulierte Daten als Beispiel zur Verfügung gestellt.
CSV
So laden Sie die simulierten CSV-Daten mit CsvDataLoader:
Ordnen Sie die Spaltennamen den Variablentypen zu. Die erforderlichen Variablentypen sind
time,controls,kpi,revenue_per_kpi,mediaundmedia_spend. Die Definition der einzelnen Variablen finden Sie unter Daten erheben und organisieren.coord_to_columns = load.CoordToColumns( time='time', controls=['GQV', 'Discount', 'Competitor_Sales'], kpi='conversions', revenue_per_kpi='revenue_per_conversion', media=[ 'Channel0_impression', 'Channel1_impression', 'Channel2_impression', 'Channel3_impression', 'Channel4_impression', 'Channel5_impression', ], media_spend=[ 'Channel0_spend', 'Channel1_spend', 'Channel2_spend', 'Channel3_spend', 'Channel4_spend', 'Channel5_spend', ], )Ordnen Sie die Media-Variablen und die ‑Ausgaben den angegebenen Channel-Namen zu, die in der zweiseitigen Ausgabe angezeigt werden sollen. Im folgenden Beispiel sind
Channel0_impressionundChannel0_spendmit demselben Channel (Channel0) verbunden.correct_media_to_channel = { 'Channel0_impression': 'Channel0', 'Channel1_impression': 'Channel1', 'Channel2_impression': 'Channel2', 'Channel3_impression': 'Channel3', 'Channel4_impression': 'Channel4', 'Channel5_impression': 'Channel5', } correct_media_spend_to_channel = { 'Channel0_spend': 'Channel0', 'Channel1_spend': 'Channel1', 'Channel2_spend': 'Channel2', 'Channel3_spend': 'Channel3', 'Channel4_spend': 'Channel4', 'Channel5_spend': 'Channel5', }Laden Sie die Daten mit
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, ) data = loader.load()Dabei gilt:
kpi_typeist entweder'revenue'oder'non_revenue'.PATHist der Pfad zum Speicherort der Datendatei.FILENAMEist der Name Ihrer Datendatei.
Xarray-Dataset
So laden Sie das simulierte Xarray-Dataset mit XrDatasetDataLoader:
Laden Sie die Daten mit
pickle:import pickle with open(f'/{PATH}/{FILENAME}.pkl', 'r') as fh: XrDataset=pickle.load(fh)Dabei gilt:
PATHist der Pfad zum Speicherort der Datendatei.FILENAMEist der Name Ihrer Datendatei.
Übergeben Sie das Dataset an
XrDatasetDataLoader. Verwenden Sie das Argumentname_mapping, um die Koordinaten und Arrays zuzuordnen. Geben Sie eine Zuordnung an, wenn sich die Namen im Dataset für die Eingabe von den erforderlichen Namen unterscheiden. Die Namen der erforderlichen Koordinaten sindtime,control_variableundmedia_channel. Die Namen der erforderlichen Datenvariablen sindkpi,revenue_per_kpi,controls,mediaundmedia_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'}, ) data = loader.load()Dabei gilt:
kpi_typeist entweder'revenue'oder'non_revenue'.
N-dimensionales Array von NumPy
Wenn Sie n-dimensionale Arrays von NumPy direkt laden möchten, verwenden Sie NDArrayInputDataBuilder:
Erstellen Sie die Daten in separaten n-dimensionalen Arrays von NumPy.
import numpy as np kpi_nd = np.array([[1, 2, 3]]) controls_nd = np.array([[[1, 2], [3, 4], [5, 6]]]) revenue_per_kpi_nd = np.array([[1, 2, 3]]) media_nd = np.array([[[1, 2], [3, 4], [5, 6]]]) media_spend_nd = np.array([[[1, 2], [3, 4], [5, 6]]])Verwenden Sie einen
NDArrayInputDataBuilder, um Zeiten festzulegen und Channel- oder Dimensionsnamen anzugeben, wie in Meridian-Eingabedaten erforderlich. Die Definition der einzelnen Variablen finden Sie unter Daten erheben und organisieren.from meridian.data import nd_array_input_data_builder as data_builder builder = ( data_builder.NDArrayInputDataBuilder(kpi_type='non_revenue') ) builder.time_coords = ['2024-01-02', '2024-01-03', '2024-01-01'] builder.media_time_coords = ['2024-01-02', '2024-01-03', '2024-01-01'] builder = ( builder .with_kpi(kpi_nd) .with_revenue_per_kpi(revenue_per_kpi_nd) .with_controls( controls_nd, control_names=["control0", "control1"]) .with_media( m_nd=media_nd, ms_nd=media_spend_nd, media_channels=["channel0", "channel1"] ) ) data = builder.build()Dabei gilt:
kpi_typeist entweder'revenue'oder'non_revenue'.
Pandas-DataFrames oder andere Datenformate
So laden Sie ein anderes Format für simulierte Daten (z. B. excel) mit DataFrameInputDataBuilder:
Lesen Sie die Daten (z. B. eine
excel-Tabelle) in ein oder mehrere Pandas-DataFrames ein.import pandas as pd df = pd.read_excel( 'https://github.com/google/meridian/raw/main/meridian/data/simulated_data/xlsx/national_media.xlsx', engine='openpyxl', )Verwenden Sie einen
DataFrameInputDataBuilder, um Spaltennamen den Variablentypen zuzuordnen, die in Meridian-Eingabedaten erforderlich sind. Die Definition der einzelnen Variablen finden Sie unter Daten erheben und organisieren.from meridian.data import data_frame_input_data_builder as data_builder builder = data_builder.DataFrameInputDataBuilder( kpi_type='non_revenue', default_kpi_column="conversions", default_revenue_per_kpi_column="revenue_per_conversion", ) builder = ( builder .with_kpi(df) .with_revenue_per_kpi(df) .with_controls(df, control_cols=["GQV", "Discount", "Competitor_Sales"]) ) channels = ["Channel0", "Channel1", "Channel2", "Channel3", "Channel4", "Channel5"] builder = builder.with_media( df, media_cols=[f"{channel}_impression" for channel in channels], media_spend_cols=[f"{channel}_spend" for channel in channels], media_channels=channels, ) data = builder.build()Dabei gilt:
kpi_typeist entweder'revenue'oder'non_revenue'.
Als Nächstes können Sie Ihr Modell erstellen.