تحسين إيرادات بائع التجزئة باستخدام الذكاء الاصطناعي لتوقع المبيعات
نشرت: 2022-03-11التنبؤ هو تقنية تستخدم البيانات والأحداث التاريخية لبناء تقديرات حول الاتجاهات المستقبلية والكوارث المحتملة والسلوك العام لأي موضوع. يمكن استخدام التنبؤ كدعم احتمالي لتحليل القرار ، لتقدير النفقات والإيرادات وخطط الميزانية.
يمكن تقسيم التنبؤ في الأعمال إلى فئتين متميزتين: التنبؤ النوعي والتنبؤ الكمي .
- التنبؤ النوعي. يهتم التنبؤ النوعي بأبحاث السوق واستراتيجيات السوق ، وبالتالي فهو مدفوع بالخبراء ويتأثر بالعوامل البشرية. وعادة ما يهدف إلى بناء إستراتيجية قصيرة المدى.
- التنبؤ الكمي. يستبعد التنبؤ الكمي أي عامل بشري. يعتمد ذلك فقط على البيانات التاريخية التي يمتلكها الكيان ويهدف إلى التنبؤ ببعض العوامل مثل المبيعات والأسعار والجوانب المالية الأخرى على المدى الطويل.
لمزيد من المعلومات ، يمكنك إلقاء نظرة على كتاب Investopedia's Financial Forecast التمهيدي.
أظهر كلا النوعين من التنبؤات الكثير من الأمل وتمكنا من إنشاء تحسينات في الأعمال للعديد من الكيانات.
إذا كنت ترغب في معرفة المزيد حول كيفية تأثير التنبؤ على قرارات السوق ، فإن أفضل مكان للبدء هو Prediction Markets: الأساسيات والتصميمات والتطبيقات بواسطة Stefan Luckner et al.
إحدى المشكلات التي يمكننا معالجتها باستخدام التنبؤ الكمي هي التنبؤ بالطلب أو التنبؤ بالمبيعات.
أساليب التنبؤ بالطلب والتنبؤ بالمبيعات
لنفترض أنك بائع تجزئة تدير الكثير من المتاجر ، ولكل متجر نظام تجديد مخزون ثابت من المنتجات بناءً على القرارات البشرية التي تستند إلى أحداث معينة مثل المواسم واتجاهات السوق.
من حين لآخر ، ستواجه إحدى هذه المشكلات التي يمكن أن تؤدي إلى مشكلتين رئيسيتين:
- المنتجات المكدسة. امتلاك مخزون كبير من المنتج المخطط لبيعه خلال فترة زمنية معينة ولكن لم يتم بيعه.
- المنتجات غير المتوفرة في المخزن. وجود فرصة لبيع المنتج ولكن عدم القدرة على البيع بسبب عدم توفر المنتج.
وفقًا لمسح أجرته مجموعة القانون الدولي الإنساني على 600 أسرة وبائع تجزئة ، يفقد تجار التجزئة ما يقرب من 1 تريليون دولار من المبيعات سنويًا بسبب مشاكل عدم توفر المخزون.
"يواجه المتسوقون نفاد المخزون في رحلة واحدة من كل ثلاث رحلات تسوق ، وفقًا للتقرير ، الذي تم إرساله عبر البريد الإلكتروني إلى Retail Dive. في متاجر بيع المواد الغذائية والأدوية والبيع بالتجزئة ، يواجهون عناصر غير متوفرة في رحلة واحدة من كل خمس رحلات ، وفي المتاجر الكبرى وتجار التجزئة المتخصصين تكون واحدة من كل أربع رحلات ، وفي متاجر الإلكترونيات واحد من كل ثلاث رحلات ، " وجدت IHL Group.
كما يبدو ، تؤدي هاتان المشكلتان إلى انخفاض في الإيرادات لأننا إما فقدنا احتمالية البيع أو استثمرنا المزيد من الأموال في المنتجات غير المباعة ، مما يعني وجود أصول لن تدر إيرادات في أي وقت قريب لتعويض تكاليفها.
من الواضح أن هذا يضر بالتدفق النقدي للكيان ، ولمعالجة هذه المخاطر ، نحتاج إلى شيئين:
- المزيد من المدخلات لمساعدتنا في اتخاذ القرار
- فريق تنبؤ يمكنه القيام بالتخطيط الاستراتيجي طويل المدى لأنظمة تجديد المخزون
إذن ، السؤال هو: ما هي المؤشرات التي تحتاجها لاعتماد الذكاء الاصطناعي في شركتك للمساعدة في عملية التنبؤ الخاصة بك؟
لاتخاذ هذا القرار ، تحتاج إلى إجابات الخبراء على الأسئلة التالية:
- هل التنبؤ بخط أنابيب مبيعاتك صعب؟
- هل تنبؤات المبيعات الخاصة بك غير دقيقة أو غير دقيقة بما يكفي (على الرغم من أن لديك بيانات تاريخية)؟
- هل تعاني من مشاكل في المخزون أو نقص في المخزون؟
- هل أنت غير قادر على استخراج رؤى وصفية واستنتاجية من البيانات التي تمتلكها لتوجيه قراراتك وتخطيطك؟
يجب أن تكون الإجابات على هذه الأسئلة إشارة واضحة تساعدك على تحديد ما إذا كنت ستبدأ في استخدام الذكاء الاصطناعي في استراتيجيات التنبؤ الخاصة بك أم لا.
كيف يمكن للذكاء الاصطناعي الاستفادة من عملية التنبؤ بالمبيعات؟
أظهر الذكاء الاصطناعي نتائج رائعة في التفوق على التوقعات البشرية في العديد من الشركات ، مما يتيح اتخاذ قرارات وتخطيط أسرع بالإضافة إلى استراتيجيات إدارة مخاطر أكثر موثوقية. هذا هو السبب في أن الشركات الكبرى تتبنى الذكاء الاصطناعي في تخطيطها.
عند التعامل مع مشكلة التنبؤ بالطلب ، يمكن استخدام طريقة التنبؤ بالسلسلة الزمنية للتنبؤ بالمبيعات لكل منتج ، مما يسمح للشركات بتحسين تجديد المخزون وتقليل حدوث المشكلات المذكورة أعلاه. ومع ذلك ، فإن العديد من النماذج تكافح مع التنبؤ على مستوى المنتج الفردي ، أو مستوى فئة المنتج ، بسبب نقص الميزات الضرورية. لذا ، فإن السؤال هو: كيف يمكننا أن نجعلها تعمل ونستفيد إلى أقصى حد من بياناتنا؟
بالنسبة لتجار التجزئة الواقعيين ، فإن هذه المشكلات ليست سوى تافهة. إما أن يكون لديك أكثر من 1000 منتج تقدم الكثير من العناصر غير الخطية في مجموعة البيانات والتبعيات متعددة المتغيرات ، أو يجب أن يتم تحذيرك بشأن مقدار تجديد المخزون المتوقع مع الكثير من الإخطار المسبق لتتمكن من إنتاجه أو شرائه ، أو افعل كل ما تحتاجه للحصول عليها بحلول الوقت الذي يتحقق فيه الطلب.
في هذه الحالة ، لن تعمل النماذج الكلاسيكية مثل ARIMA و ETS ، وسنحتاج إلى طريقة أكثر قوة مثل RNNs و XGBoost ، ولهذا السبب نحتاج إلى الكثير من إنشاء الميزات لمعالجة هذه المشكلة.
لكي ينجح هذا ، نحتاج إلى:
- اكتساب ميزات الإدخال الضرورية المطلوبة لشرح تنوع وتنوع المنتجات.
- صنف بياناتنا ، بحيث تكون كل فئة من نفس سلوك السلاسل الزمنية ، وسيتم التعامل مع كل فئة باستخدام نموذج مستقل.
- تدريب نماذجنا على ميزات الإدخال المصنفة المكتسبة.
من أجل هذه المقالة ، سوف نأخذ XGBoost كمثال على هذا النموذج.
الميزات المطلوبة في نماذج التنبؤ بالمبيعات
يتم تصنيف مجموعة الميزات المطلوبة لهذه المشكلة إلى أربع مجموعات رئيسية:
- الميزات المتعلقة بالوقت
- الميزات المتعلقة بالمبيعات
- الميزات المتعلقة بالسعر
- الميزات المتعلقة بالأسهم
الميزات المتعلقة بالوقت
على عكس التعلم العميق (الشبكة العصبية المتكررة) ، لا يمكن لنماذج التعلم الآلي الحصول على تبعيات طويلة المدى أو قصيرة المدى خلال سلسلة زمنية دون إنشاء طبقة استخراج ميزة يدويًا لميزة التاريخ والوقت .
يمكن استخراج العديد من الميزات من التاريخ ، مثل:
- سنة
- يوم
- ساعة
- عطلة نهاية الأسبوع أو أيام الأسبوع (سواء كان اليوم أحد أيام الأسبوع أو عطلة نهاية الأسبوع)
- يوم من الأسبوع
تستخرج العديد من الأساليب ميزات الوقت هذه وتستخدمها كمدخلات ونماذج تدريب ، ولكن يمكن القيام بمزيد من الهندسة. كما نرى ، فإن الميزات (اليوم ، الساعة ، اليوم من الأسبوع) دورية ، مما يعني أن لديها مجموعة من القيم المتكررة. كيف يمكن للنموذج التعامل مع هذا؟
الإجابة المختصرة هي ، لا يمكن ذلك لأن ما يراه النموذج هو أن الساعة 00:00 تبعد 23 ساعة عن 23:00 ، لكنها في الحقيقة تبعد ساعة واحدة. تتمثل إحدى طرق حل هذه المشكلة في تحويل هذه الميزات إلى تحويل دوري.
باستخدام مفهوم الجيب وجيب التمام ، أو التمثيل المتجه ، يمكن للمرء تحويل كل ساعة (24 ساعة) إلى زاوية ، واستخدام الخطيئة وجيب التمام لهما سيجعل من السهل على النموذج اكتشاف النسب الحقيقية بين الساعات ، بغض النظر عن من الدورية.
سيؤدي هذا إلى إزالة الانقطاع الذي يحدث في ميزات الوقت الدورية ، أو أي ميزة دورية.
بالنسبة لمقالنا ، سنستخدم مجموعة بيانات Sample Superstore الموجودة علنًا ونحاول التنبؤ بالمبيعات الشهرية المستهدفة لفئة منتج معينة.
أيضًا ، سوف نستخدم بيئة Python 3.7 مع المكتبات التالية:
- نومبي
- الباندا
- XGBoost
- Sklearn
الآن ، سأوضح لك كيفية إنشاء وظيفة تحويل ميزة الفترة واختبار ما إذا كانت مفيدة أم لا.

def convert_periodic(val,period): theta = 2*np.pi*val/period sin_period = np.sin(theta) cos_period = np.cos(theta) return sin_period,cos_period def convert_month(x): return convert_periodic(x,12) df['sin_month'], df['cos_month'] = zip(*df['month'].map(convert_month))
مع وجود هذا في مكانه الصحيح ، نحن على استعداد لاختبار ما إذا كانت الميزة المضافة ستعمل على تحسين الأداء أم لا.
X = df.drop(['Order Date','Sales','sin_month', 'cos_month'],axis = 1) y = np.log1p(df['Sales']) X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.2, shuffle=False)
كما نرى ، قمنا بتحويل log 1p لميزة المبيعات المستهدفة الخاصة بنا ، لأنها ميزة منحرفة (غير موزعة بشكل طبيعي).
الآن ، سوف نضع برنامج XGBoost regressor على البيانات.
y_pred = model.predict(X_test) print(f'Loss without cyclic conversion on testing set is {sqrt(mean_squared_error(y_pred,y_test))}') Loss without cyclic conversion on testing set is 0.4313676193485837
بعد ذلك ، سنحاول باستخدام الميزة التي تم إنشاؤها.
X = df.drop(['Order Date','Sales'],axis = 1) y = np.log1p(df['Sales']) X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.2, shuffle=False) y_pred = model.predict(X_test) print(f'Loss with cyclic conversion on testing set is {sqrt(mean_squared_error(y_pred,y_test))}') Loss with cyclic conversion on testing set is 0.33868030449130826
كما نرى ، تحسن الخسارة من 0.43 RMSE إلى 0.33 RMSE.
بعض الميزات الأخرى المتعلقة بالوقت والتي يمكنك التفكير فيها ، بناءً على مشكلتك ، هي:
- عدد الأشهر منذ أن كان العنصر في المتجر
- عدد الأيام منذ آخر عملية بيع
الميزات المتعلقة بالمبيعات
هذه هي ميزة الإدخال الأساسية اللازمة للتنبؤ بمبيعاتنا ، فكيف نحقق أقصى استفادة من بيانات المبيعات؟ يمكننا تحقيق ذلك باستخدام مفهوم التأخر والارتباط التلقائي.
ميزات التأخير هي سجلات مبيعات تاريخية للمنتجات. على سبيل المثال ، إذا أخذنا ميزة 12-lag للمبيعات الشهرية كمدخل لنموذجنا للتنبؤ بالمبيعات لشهر مايو 2020 ، فهذا يعني أننا سنزود النموذج بسجلات البيانات بين مايو 2019 وأبريل 2020. قد يكون هذا مفيدًا حقًا.
أيضًا ، يمكن تفسيره باستخدام مخططات الارتباط التلقائي للتحقق من مدى ارتباط الميزة المستهدفة بميزاتها المتأخرة. يساعد هذا أيضًا في تحديد الميزات المرتبطة فقط من بين الميزات المتأخرة ، لذلك نقوم بتقليل استخدام الذاكرة وتكرار الميزات.
هذه هي الطريقة التي يمكننا بها إضافة ميزات التأخير إلى إطار البيانات الخاص بنا:
for i in range(3): df[f'lag_{i+1}'] = df['Sales'].shift(i+1) df = df.dropna() df.head()
هنا ، اخترت قيمة ميزة التأخر الثلاثي ليتم تضمينها في مجموعة التدريب الخاصة بنا. هذه الميزة عبارة عن معلمة تشعبية - يمكنك اختيارها بناءً على مخطط الارتباط التلقائي أو عن طريق تجربة العديد من القيم واختيار الأفضل فقط في مرحلة الضبط.
X = df.drop(['Order Date','Sales'],axis = 1) y = np.log1p(df['Sales']) X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.2, shuffle=False) y_pred = model.predict(X_test) print(f'Loss with lag features on testing set is {sqrt(mean_squared_error(y_pred,y_test))}') Loss with lag and aggregated sales features on testing set is 0.2862175857169188
الآن ، تم تحسين RMSE إلى 0.28 ، باستخدام كل من ميزات التأخير والتحويلات الدورية.
بعض الميزات الإضافية المتعلقة بالمبيعات التي يمكنك إضافتها:
- تم بيع جزء العنصر (جزء العناصر المباعة من حيث إجمالي المبيعات في متجر)
- تكرار أحداث البيع لفئة السلعة
- إضافة مفهوم الأقدمية
الأقدمية هي مفهوم تم تقديمه لتعيين مستوى أقدمية للعناصر الجديدة في المتجر:
- الأقدمية 0: عناصر جديدة للشركة
- الأقدمية 1: لم يتم بيع العناصر في هذا المتجر مطلقًا ولكن يتم بيعها في متاجر أخرى للشركة
- الأقدمية 2: العناصر التي تم بيعها في هذا المتجر من قبل
الميزات المتعلقة بالسعر
حجة بسيطة هي أن أحد الأسباب المباشرة لارتفاع المبيعات وانخفاضها هو السعر والعروض الترويجية. السعر هو أحد أفضل الطرق للتمييز بين الفئات والفئات الفرعية والفئات الفائقة للمنتجات.
على سبيل المثال ، بافتراض أنه تم تخصيص فئة وفئة فرعية لكل منتج ، يمكن للمرء إنشاء ميزات السعر التالية:
- (متوسط ، الحد الأقصى ، الحد الأدنى ، المتوسط) الأسعار عبر الفئة
- (المتوسط ، الأقصى ، الأدنى ، المتوسط) عبر الفئات الفرعية
- مقارنات بين تلك الإحصائيات ، مثل الفرق بين كل إحصائية في كل من الفئة والفئة الفرعية
يمكن إجراء هذا التجميع عدة مرات باستخدام العديد من المجموعات حسب الموضوع (على افتراض أننا نهدف إلى توقع الطلب الشهري) ، مثل:
- الشهرية ، المتجر ، الفئة
- الشهرية ، المتجر ، الفئة الفرعية
- الشهرية ، المتجر ، الصنف ، الفئة
- شهريا ، مخزن ، صنف ، فئة فرعية
أيضًا ، يمكن إضافة المزيد من الميزات باستثناء التجميع الشهري لدراسة سلوك الأسعار بشكل عام.
الميزات المتعلقة بالأسهم
هذا ليس شائعًا بين تجار التجزئة والمتنبئين بالمبيعات ، لكنه يحدث فرقًا كبيرًا في نماذج التنبؤ بالمبيعات. تحتوي مجموعات بيانات المخزون بشكل أساسي على بيانات المخزون لكل منتج يوميًا في كل متجر. من هذا ، يمكننا دمجها مع بيانات المبيعات للحصول على معدل دوران شهري لكل منتج. ستشير هذه النسبة إلى مدى سرعة بيع مخزون المنتج بالكامل ، ولها فائدتان رئيسيتان:
- يمكن أن يساعد نموذج التنبؤ بالمبيعات بناءً على مستوى المخزون الحالي.
- يمكن أن تساعدنا في استخدام هذه القيمة لتجميع المنتجات في منتجات بطيئة ومتوسطة وسريعة الحركة. سيساعدنا هذا التجميع في اتخاذ القرار والنمذجة.
لهذا ، تحتاج إلى بيانات المخزون اليومية لكل منتج ، إلى جانب بيانات المبيعات ، وبعد ذلك يمكنك حساب نسبة دوران المخزون على النحو التالي:
تلميح: يتم إجراء هذه التجميعات بناءً على نطاق زمني. على سبيل المثال ، إذا كنا نعمل على التنبؤ بالمبيعات الشهرية ، فسيتم حساب ITO على أنه إجمالي المبيعات في الشهر الماضي على متوسط قيمة المخزون خلال نفس الشهر.
يمكن أن يؤدي التنبؤ بالمبيعات إلى تحويل البيانات إلى فرصة
باختصار ، يمكن أن يساعد التنبؤ بالمبيعات الشركات على زيادة الإيرادات وجني الأرباح ، بشرط أن يكون لديهم خطوط أنابيب البيانات الصحيحة واستخدام أساليب هندسة الميزات الصحيحة. كانت هذه المقالة بمثابة تجربة لإظهار أن جميع أنواع البيانات يمكن أن تكون مفيدة في حل هذه المشكلة.
يجب على كل شركة التحقيق فيما إذا كانت هناك حاجة إلى الذكاء الاصطناعي لمشاكلها المتعلقة بالتنبؤ ، وفي حالة حدوث ذلك ، فإنها ستحتاج إلى مهندسي ذكاء اصطناعي خبراء ومشورة من مهندسي التعلم الآلي لإنشاء نظام توقع مبيعات خاص بها.
إذا كنت شركة / بائع تجزئة على استعداد لتطبيق تقنية التنبؤ بالمبيعات هذه ، فابدأ بجمع كل البيانات الممكنة ، لا سيما المبيعات اليومية والمخزون اليومي والمعاملات اليومية.
بمجرد امتلاكك لهذه البيانات ، يمكنك استخدامها لزيادة إيراداتك وتحسين استراتيجيات تجديد المخزون ، مما يسمح لعملك بتحقيق أعلى ربح ممكن من خلال الموارد المتاحة ، كما هو موضح في العديد من الأمثلة أعلاه ، بالإضافة إلى ممارسات التنبؤ بالمبيعات التي يستخدمها تجار التجزئة الرائدون .
مراجع:
مجموعة البيانات
مزيد من القراءة على التنبؤ المالي