加入新推出的
Discord 社区,展开实时讨论,获得同行支持,并直接与 Meridian 团队互动!
নাগাল এবং ফ্রিকোয়েন্সি ছাড়াই ভূ-স্তরের ডেটা লোড করুন
সেভ করা পৃষ্ঠা গুছিয়ে রাখতে 'সংগ্রহ' ব্যবহার করুন
আপনার পছন্দ অনুযায়ী কন্টেন্ট সেভ করুন ও সঠিক বিভাগে রাখুন।
নিম্নলিখিত বিভাগে প্রতিটি ডেটা টাইপ এবং বিন্যাসের জন্য একটি উদাহরণ হিসাবে সিমুলেটেড ডেটা সরবরাহ করা হয়েছে।
CSV
CsvDataLoader
ব্যবহার করে সিমুলেটেড CSV ডেটা লোড করতে:
পরিবর্তনশীল প্রকারে কলামের নাম ম্যাপ করুন। প্রয়োজনীয় পরিবর্তনশীল প্রকারগুলি হল time
, geo
, controls
, population
, kpi
, revenue_per_kpi
, media
, এবং media_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',
'Channel4_impression',
'Channel5_impression',
],
media_spend=[
'Channel0_spend',
'Channel1_spend',
'Channel2_spend',
'Channel3_spend',
'Channel4_spend',
'Channel5_spend',
],
)
মিডিয়া ভেরিয়েবল ম্যাপ করুন এবং মিডিয়া যে চ্যানেলের নামগুলিকে দুই-পৃষ্ঠার আউটপুটে প্রদর্শন করতে চান তার জন্য ব্যয় করে। নিম্নলিখিত উদাহরণে, Channel0_impression
এবং Channel0_spend
একই চ্যানেল, Channel0
এর সাথে সংযুক্ত।
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',
}
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()
কোথায়:
-
kpi_type
হয় 'revenue'
বা 'non_revenue'
। -
PATH
হল ডেটা ফাইলের অবস্থানের পথ। -
FILENAME
হল আপনার ডেটা ফাইলের নাম৷
Xarray ডেটাসেট
XrDatasetDataLoader
ব্যবহার করে সিমুলেটেড Xarray ডেটাসেট লোড করতে:
pickle
ব্যবহার করে ডেটা লোড করুন:
import pickle
with open(f'/{PATH}/{FILENAME}.pkl', 'r') as fh:
XrDataset=pickle.load(fh)
কোথায়:
-
PATH
হল ডেটা ফাইলের অবস্থানের পথ। -
FILENAME
হল আপনার ডেটা ফাইলের নাম৷
XrDatasetDataLoader
এ ডেটাসেট পাস করুন। স্থানাঙ্ক এবং অ্যারে ম্যাপ করতে name_mapping
আর্গুমেন্ট ব্যবহার করুন। ইনপুট ডেটাসেটের নামগুলি প্রয়োজনীয় নামের থেকে আলাদা হলে ম্যাপিং প্রদান করুন৷ প্রয়োজনীয় স্থানাঙ্কের নাম হল geo
, time
, control_variable
এবং media_channel
। প্রয়োজনীয় ডেটা ভেরিয়েবলের নামগুলি হল kpi
, revenue_per_kpi
, controls
, population
, media
, এবং media_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()
কোথায়:
-
kpi_type
হয় 'revenue'
বা 'non_revenue'
।
DataFrameDataLoader
ব্যবহার করে সিমুলেটেড অন্যান্য ডেটা ফরম্যাট (যেমন excel
) লোড করতে:
পরিবর্তনশীল প্রকারে কলামের নাম ম্যাপ করুন। প্রয়োজনীয় পরিবর্তনশীল প্রকারগুলি হল time
, geo
, controls
, population
, kpi
, revenue_per_kpi
, media
, এবং media_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',
'Channel4_impression',
'Channel5_impression',
],
media_spend=[
'Channel0_spend',
'Channel1_spend',
'Channel2_spend',
'Channel3_spend',
'Channel4_spend',
'Channel5_spend',
],
)
মিডিয়া ভেরিয়েবল ম্যাপ করুন এবং মিডিয়া যে চ্যানেলের নামগুলিকে দুই-পৃষ্ঠার আউটপুটে প্রদর্শন করতে চান তার জন্য ব্যয় করে। নিম্নলিখিত উদাহরণে, Channel0_impression
এবং Channel0_spend
একই চ্যানেল, Channel0
এর সাথে সংযুক্ত।
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',
}
DataFrameDataLoader
এ ডেটা পড়ুন (যেমন excel
) এবং তারপর ডেটা লোড করুন:
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,
)
data = loader.load()
কোথায়:
-
kpi_type
হয় 'revenue'
বা 'non_revenue'
। -
PATH
হল ডেটা ফাইলের অবস্থানের পথ। -
FILENAME
হল আপনার ডেটা ফাইলের নাম৷
এর পরে, আপনি আপনার মডেল তৈরি করতে পারেন।
অন্য কিছু উল্লেখ না করা থাকলে, এই পৃষ্ঠার কন্টেন্ট Creative Commons Attribution 4.0 License-এর অধীনে এবং কোডের নমুনাগুলি Apache 2.0 License-এর অধীনে লাইসেন্স প্রাপ্ত। আরও জানতে, Google Developers সাইট নীতি দেখুন। Java হল Oracle এবং/অথবা তার অ্যাফিলিয়েট সংস্থার রেজিস্টার্ড ট্রেডমার্ক।
2025-01-24 UTC-তে শেষবার আপডেট করা হয়েছে।
[null,null,["2025-01-24 UTC-তে শেষবার আপডেট করা হয়েছে।"],[[["\u003cp\u003eSimulated data examples are provided for CSV, Xarray Dataset, and other formats like Excel to demonstrate data loading.\u003c/p\u003e\n"],["\u003cp\u003eLoading CSV data requires mapping column names to predefined variable types and mapping media variables and spends to specific channel names using \u003ccode\u003eCsvDataLoader\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eLoading Xarray Dataset data involves using \u003ccode\u003epickle\u003c/code\u003e to read in data, and \u003ccode\u003eXrDatasetDataLoader\u003c/code\u003e for processing, which also requires mapping if dataset names differ from the required coordinate and variable names.\u003c/p\u003e\n"],["\u003cp\u003eLoading other data formats, like Excel, requires mapping column names and media channels, similar to CSV, but uses \u003ccode\u003eDataFrameDataLoader\u003c/code\u003e after reading the data into a dataframe.\u003c/p\u003e\n"],["\u003cp\u003eAfter loading the data in any of these formats, you may then proceed to creating a model.\u003c/p\u003e\n"]]],[],null,["# Load geo-level data without reach and frequency\n\nSimulated data is provided as an example for each data type and format in the\nfollowing sections.\n\nCSV\n---\n\nTo load the\n[simulated CSV](https://github.com/google/meridian/tree/main/meridian/data/simulated_data/csv/geo_media.csv)\ndata using `CsvDataLoader`:\n\n1. Map the column names to the variable types. The required variable types are\n `time`, `geo`, `controls`, `population`, `kpi`, `revenue_per_kpi`, `media`,\n and `media_spend`. For the definition of each variable, see\n [Collect and organize your data](/meridian/docs/user-guide/collect-data).\n\n coord_to_columns = load.CoordToColumns(\n time='time',\n geo='geo',\n controls=['GQV', 'Discount', 'Competitor_Sales'],\n population='population',\n kpi='conversions',\n revenue_per_kpi='revenue_per_conversion',\n media=[\n 'Channel0_impression',\n 'Channel1_impression',\n 'Channel2_impression',\n 'Channel3_impression',\n 'Channel4_impression',\n 'Channel5_impression',\n ],\n media_spend=[\n 'Channel0_spend',\n 'Channel1_spend',\n 'Channel2_spend',\n 'Channel3_spend',\n 'Channel4_spend',\n 'Channel5_spend',\n ],\n )\n\n2. Map the media variables and the media spends to the designated channel names\n that you want to display in the two-page output. In the following example,\n `Channel0_impression` and `Channel0_spend` are connected to the same\n channel, `Channel0`.\n\n correct_media_to_channel = {\n 'Channel0_impression': 'Channel0',\n 'Channel1_impression': 'Channel1',\n 'Channel2_impression': 'Channel2',\n 'Channel3_impression': 'Channel3',\n 'Channel4_impression': 'Channel4',\n 'Channel5_impression': 'Channel5',\n }\n correct_media_spend_to_channel = {\n 'Channel0_spend': 'Channel0',\n 'Channel1_spend': 'Channel1',\n 'Channel2_spend': 'Channel2',\n 'Channel3_spend': 'Channel3',\n 'Channel4_spend': 'Channel4',\n 'Channel5_spend': 'Channel5',\n }\n\n3. Load the data using `CsvDataLoader`:\n\n loader = load.CsvDataLoader(\n csv_path=f'/{PATH}/{FILENAME}.csv',\n kpi_type='non_revenue',\n coord_to_columns=coord_to_columns,\n media_to_channel=correct_media_to_channel,\n media_spend_to_channel=correct_media_spend_to_channel,\n )\n data = loader.load()\n\n Where:\n - `kpi_type` is either `'revenue'` or `'non_revenue'`.\n - `PATH` is the path to the data file location.\n - `FILENAME` is the name of your data file.\n\nXarray Dataset\n--------------\n\nTo load the pickled\n[simulated Xarray Dataset](https://github.com/google/meridian/tree/main/meridian/data/simulated_data/pkl/geo_media.pkl)\nusing `XrDatasetDataLoader`:\n\n1. Load the data using `pickle`:\n\n import pickle\n with open(f'/{PATH}/{FILENAME}.pkl', 'r') as fh:\n dataset = pickle.load(fh)\n\n Where:\n - `PATH` is the path to the data file location.\n - `FILENAME` is the name of your data file.\n2. Pass the dataset to `XrDatasetDataLoader`. Use the `name_mapping` argument\n to map the coordinates and arrays. Provide mapping if the names in the input\n dataset are different from the required names. The required coordinate\n names are `geo`, `time`, `control_variable` and `media_channel`. The\n required data variables names are `kpi`, `revenue_per_kpi`, `controls`,\n `population`, `media`, and `media_spend`.\n\n loader = load.XrDatasetDataLoader(\n dataset,\n kpi_type='non_revenue',\n name_mapping={\n 'channel': 'media_channel',\n 'control': 'control_variable',\n 'conversions': 'kpi',\n 'revenue_per_conversion': 'revenue_per_kpi',\n 'control_value': 'controls',\n 'spend': 'media_spend',\n },\n )\n\n data = loader.load()\n\n Where:\n - `kpi_type` is either `'revenue'` or `'non_revenue'`.\n\nNumpy ndarray\n-------------\n\nTo load numpy ndarrays directly, use `NDArrayInputDataBuilder`:\n\n1. Create the data into separate numpy ndarrays.\n\n import numpy as np\n\n kpi_nd = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])\n controls_nd = np.array([\n [[1, 5], [2, 6], [3, 4]],\n [[7, 8], [9, 10], [11, 12]],\n [[13, 14], [15, 16], [17, 18]],\n ])\n population_nd = np.array([1, 2, 3])\n revenue_per_kpi_nd = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])\n media_nd = np.array([\n [[1, 5], [2, 6], [3, 4]],\n [[7, 8], [9, 10], [11, 12]],\n [[13, 14], [15, 16], [17, 18]],\n ])\n media_spend_nd = np.array([\n [[1, 5], [2, 6], [3, 4]],\n [[7, 8], [9, 10], [11, 12]],\n [[13, 14], [15, 16], [17, 18]],\n ])\n\n2. Use a\n [`NDArrayInputDataBuilder`](https://github.com/google/meridian/blob/4624447e0aace5c24d42b58dd1cfd8fe0dc00971/meridian/data/nd_array_input_data_builder.py#L25)\n to set time and geos, as well as give channel or dimension\n names as required in a Meridian input data.\n For the definition of each variable, see\n [Collect and organize your data](/meridian/docs/user-guide/collect-data).\n\n from meridian.data import nd_array_input_data_builder as data_builder\n\n builder = (\n data_builder.NDArrayInputDataBuilder(kpi_type='non_revenue')\n )\n builder.time_coords = ['2024-01-02', '2024-01-03', '2024-01-01']\n builder.media_time_coords = ['2024-01-02', '2024-01-03', '2024-01-01']\n builder.geos = ['B', 'A', 'C']\n builder = (\n builder\n .with_kpi(kpi_nd)\n .with_revenue_per_kpi(revenue_per_kpi_nd)\n .with_population(population_nd)\n .with_controls(\n controls_nd,\n control_names=[\"control0\", \"control1\"])\n .with_media(\n m_nd=media_nd,\n ms_nd=media_spend_nd,\n media_channels=[\"channel0\", \"channel1\"]\n )\n )\n\n data = builder.build()\n\n Where:\n - `kpi_type` is either `'revenue'` or `'non_revenue'`.\n\nPandas DataFrames or other data formats\n---------------------------------------\n\nTo load the\n[simulated other data format](https://github.com/google/meridian/tree/main/meridian/data/simulated_data/xlsx/geo_media.xlsx)\n(such as `excel`) using `DataFrameInputDataBuilder`:\n\n1. Read the data (such as an `excel` spreadsheet) into one or more Pandas\n `DataFrame`(s).\n\n import pandas as pd\n\n df = pd.read_excel(\n 'https://github.com/google/meridian/raw/main/meridian/data/simulated_data/xlsx/geo_media.xlsx',\n engine='openpyxl',\n )\n\n2. Use a\n [`DataFrameInputDataBuilder`](https://github.com/google/meridian/blob/4624447e0aace5c24d42b58dd1cfd8fe0dc00971/meridian/data/data_frame_input_data_builder.py#L25)\n to map column names to the variable types required in a Meridian input data.\n For the definition of each variable, see\n [Collect and organize your data](/meridian/docs/user-guide/collect-data).\n\n from meridian.data import data_frame_input_data_builder as data_builder\n\n builder = data_builder.DataFrameInputDataBuilder(\n kpi_type='non_revenue',\n default_kpi_column=\"conversions\",\n default_revenue_per_kpi_column=\"revenue_per_conversion\",\n )\n builder = (\n builder\n .with_kpi(df)\n .with_revenue_per_kpi(df)\n .with_population(df)\n .with_controls(df, control_cols=[\"GQV\", \"Discount\", \"Competitor_Sales\"])\n )\n channels = [\"Channel0\", \"Channel1\", \"Channel2\", \"Channel3\", \"Channel4\", \"Channel5\"]\n builder = builder.with_media(\n df,\n media_cols=[f\"{channel}_impression\" for channel in channels],\n media_spend_cols=[f\"{channel}_spend\" for channel in channels],\n media_channels=channels,\n )\n\n data = builder.build()\n\n Where:\n - `kpi_type` is either `'revenue'` or `'non_revenue'`.\n\nNext, you can [create your model](/meridian/docs/user-guide/modeling-overview)."]]