توقع أسعار اللابتوب باستخدام بايثون بسهولة
إذا كنت تفكر في شراء لابتوب جديد، قد تتساءل عن المبلغ الذي يجب أن تدفعه. يمكنك البحث في المواقع المختلفة، لكن بعض أكواد بايثون وقليل من الانحدار الخطي قد تجعل هذه المهمة أسهل.
لماذا نبني نموذج توقع أسعار اللابتوب؟
يمكنك البحث في آلاف الصفحات والتجول في المتاجر، لكن هذا سيستغرق الكثير من الوقت. أنا أحب الكمبيوترات، لكن ليس لدي الوقت أو الرغبة في القيام بذلك. لدي أشياء أخرى أود القيام بها. أود أن يكون لدي برنامج يمكنني من إدخال مواصفات مثل مقدار الذاكرة العشوائية (RAM) التي أريدها أو دقة الشاشة التي أحتاجها، وأن أحصل على سعر.
هناك العديد من الأجهزة في السوق لدرجة أنه سيكون من الصعب علي حساب كل هذه المعلومات يدويًا. كما اعتقدت أن مشاركة هذه المعلومات مع الآخرين الذين قد يكونون في السوق لشراء لابتوب جديد قد تكون مفيدة. من يريد دفع مبلغ زائد على جهاز؟ أنا لا أريد ذلك، وأستطيع أن أُخمّن أنك لا تريد ذلك أيضًا.
أرفض شراء لابتوب بدون هذه الميزات العشر
لا أطلب الكثير؛ يجب أن تكون هذه الميزات معيارية.
مع معرفتي بالانحدار الخطي من الإحصائيات، أدركت أنه يمكنني بسهولة بناء نموذج للإجابة على هذه الأسئلة. بايثون هي لغة رائعة، وكان لدي بالفعل بعض المعرفة الأساسية بها. لقد أصبحت شائعة في تحليل البيانات لأنها بسيطة بما يكفي ليتمكن الأشخاص الذين ليس لديهم خلفية في علوم الكمبيوتر من استخدامها، لكنها تقدم مكتبات قوية لتحليل البيانات.
تجميع مجموعة أدوات بايثون الإحصائية
في هذا المشروع، استخدمت أجزاء من النظام الإحصائي لبايثون التي كنت مرتاحًا بها بالفعل.
لقد قمت بالفعل بإعداد بيئة Mamba مع هذه الأدوات. بينما تتضمن العديد من الأنظمة، بما في ذلك لينكس، بايثون، إلا أنها مخصصة لدعم النظام وأقل للاستخدام من قبل المستخدمين. إذا قمت بترقية بايثون الخاص بالنظام، قد تجد أن السكربتات التي تعتمد عليه ستتعطل. هناك أدوات لتثبيت بيئات مخصصة مثل VirtualEnv.
المكون الأول هو NumPy. إنها مكتبة شائعة لجميع أنواع العمليات العددية، وخاصة العمليات الإحصائية والجبر الخطي التي ستحدث في الخلفية.
المكتبة التالية التي ستحتاجها هي Pandas، والتي ستتيح لك استيراد مجموعة البيانات وعرضها في أعمدة كـ "إطار بيانات". إنها تشبه إلى حد ما مزيجًا بين قاعدة بيانات علائقية وورقة عمل. يمكنك أيضًا إجراء بعض التلاعبات القوية على بياناتك.
Seaborn هي مكتبة لرؤية الرسوم البيانية الإحصائية. أستخدمها لتصور توزيعات البيانات في الرسوم البيانية الشريطية، والرسوم المبعثرة، والانحدارات الخطية.
كيف أستكشف وأصور البيانات باستخدام بايثون وSeaborn
إنشاء الرسوم البيانية أسهل وأفضل مما تتخيل مع Seaborn.
أخيرًا، تتيح لي Pingouin إجراء العديد من الاختبارات الإحصائية بسهولة، دون الحاجة إلى حفظ جميع تلك الصيغ التي نسيتها في صف الإحصاء في الكلية قبل سنوات. هذا هو البرنامج الذي سيبني النموذج من خلال الانحدار الخطي المتعدد لسعر التجزئة مقابل جميع خصائص اللابتوب.
جمع كل هذا معًا بسيط في معظم البيئات الشبيهة بـ Unix، بما في ذلك ويندوز باستخدام نظام ويندوز الفرعي لـ لينكس. يمكنك اتباع التعليمات الموجودة على صفحة الويب لتثبيته.
توفر دفاتر Jupyter طريقة سهلة نسبيًا لتشغيل أوامر بايثون وعرض النتائج، بالإضافة إلى تخزين النتائج للاستخدام لاحقًا، لكن هذا اختياري تمامًا. أنشأت دفتر Jupyter، وسأقوم بعرض أمثلة من الكود منه. لقد نشرته على GitHub الخاص بي، حتى تتمكن من رؤية الكود وبعض الأمثلة التي لم أستطع تغطيتها في هذا المقال.
مع تثبيت Mamba، يمكنك إنشاء البيئة التي تحتاجها. مثل عرض الطهي، كان لدي واحدة جاهزة بالفعل. لتفعيلها، أكتب هذا في سطر الأوامر في لينكس:
mamba activate statsالحصول على بيانات اللابتوب
لبناء مجموعة البيانات لنموذج الانحدار، يمكنني البحث في المتاجر عبر الإنترنت وبناء قاعدة بيانات شاملة من اللابتوبات. سيستغرق ذلك وقتًا طويلاً لبناءها، بالإضافة إلى تنظيف البيانات بحيث تكون متسقة. لحسن الحظ، قام شخص ما بذلك بالفعل.
هناك قاعدة بيانات للابتوبات تحتوي على مواصفات معينة مثل سرعة المعالج، ومقدار الذاكرة العشوائية (RAM)، ومقدار التخزين، ودقة الشاشة الأفقية والعمودية متاحة على Kaggle.
كانت أسعار اللابتوبات باليورو، لكن تحقق سريع على Xe.com في يوليو 2025 أظهر أن سعر الصرف بين اليورو والدولار الأمريكي قريب جدًا.
بناء نموذج الانحدار
مع تجميع البيئة والحصول على البيانات، حان الوقت الآن لبناء النموذج. أولاً، يجب أن أستورد المكتبات التي سأستخدمها.
import numpy as np import pandas as pd import seaborn as sns %matplotlib inline import pingouin as pg
تستورد هذه الأسطر مكتبات NumPy وPandas وSeaborn وPingouin. يتم اختصار NumPy وPandas وSeaborn وPingouin إلى "np وpd وsns وpg". السطر الذي يبدأ بـ "%" مخصص للاستخدام في دفاتر Jupyter. يخبرها باستخدام مكتبة Matplotlib التي ترسم الرسوم البيانية لعرضها داخل دفتر Jupyter. خلاف ذلك، سيتم عرضها في نافذة منفصلة.
بعد ذلك، سنستورد البيانات باستخدام Pandas:
laptops = pd.read_csv("data/laptop_prices.csv")
سيؤدي هذا إلى إنشاء إطار بيانات Pandas. يمكننا رؤية كيفية تنظيم البيانات باستخدام طريقة head():
laptops.head()
يمكننا أيضًا رؤية إحصائيات وصفية أساسية لجميع الأعمدة العددية باستخدام طريقة describe().
laptops.describe()
سيظهر هذا المتوسط، الوسيط، والانحراف المعياري، والقيمة الدنيا، والربع الأدنى أو النسبة المئوية 25، والوسيط، والربع الأعلى أو النسبة المئوية 75، والقيمة القصوى لكل عمود.
أحب أيضًا تصور توزيعات البيانات من خلال الرسوم البيانية. تقوم Seaborn's displot بذلك.
لرؤية كيفية توزيع الأسعار:
sns.displot(x='Price_euros',data=laptops)
هذا يخبر Pingouin برسم الأسعار على المحور السيني واستخدام إطار بيانات اللابتوب كمصدر. ذيل التوزيع مائل بشكل ملحوظ إلى اليمين.
سنقوم ببناء نموذج يستخدم مواصفات مختلفة. سيبدو شيئًا مثل هذا:
price = a(سرعة المعالج) + b(الذاكرة العشوائية) + c(الحجم بالبوصات) ...
الحروف هي بدائل للمعاملات المحددة بواسطة الانحدار. إنه مشابه للانحدار الخطي البسيط الذي قد تكون رأيته، لكن بدلاً من ملاءمة خط على رسم مبعثر، أنت تقوم بملاءمة مستوى. نظرًا لوجود أكثر من ثلاثة أبعاد في هذا النموذج، فإنه في الواقع هو مستوى فرعي.
سيعطينا هذا المعادلات الخاصة بمعادلة الانحدار هذه. خيار relimp= سيخبر برنامج Pingouin بحساب مقدار مساهمة كل متغير في السعر. ستظهر المعاملات في العمود الأيسر، بينما سيظهر العمود الأيمن أن ذاكرة الوصول العشوائي (RAM) هي أكبر مؤشر على السعر. الرقم الذي يجب الانتباه إليه لتحديد مدى جودة التوافق هو مربع معامل الارتباط، والذي يُعرف بـ r2 في هذه الجدول. وهو حوالي 0.66، مما يعني أنه توافق جيد جداً.
مع المعاملات المتوقعة، يمكننا الآن إدخال القيم في المعادلة لتوقع السعر. إليك دالة تقوم بذلك:
def price(inches,ram,weight,screenw,screenh,cpu_freq,primary_storage,secondary_storage):
return 77.11 + -69.81*inches + 77.89*ram + 92.04*ram + 0.04*screenw + 0.59*screenh + 284.51 - 0.21*primary_storage + -0.04 * secondary_storage
يجب عليك إدراج المسافة البادئة في السطر الثاني، لكن قيود نظامنا تتطلب مني تقديمها بهذه الطريقة.
هل تختلف الأسعار حقًا بين العلامات التجارية؟
هذا النموذج الانحداري ينظر فقط إلى المواصفات. قد تتساءل عما إذا كان السعر هو حقًا مؤشر على السعر. يمكننا استخدام تحليل التباين، أو ANOVA، لتحديد ما إذا كانت الفروقات بين العلامات التجارية ذات دلالة إحصائية. نظرًا لأن بيانات الأسعار كانت مشوهة، كما يتضح من الرسم البياني، فإن اختبار غير المعلمي سيكون أكثر دقة. يحتوي Pingouin على اختبار Kruskal-Wallis الذي يقوم بذلك.
سيختبر هذا الفرضية الصفرية التي تفيد بعدم وجود علاقة بين السعر والعلامة التجارية:
pg.kruskal(data=laptops,dv='Price_euros',between='Company').round(2)
قيمة p هي 0، مما يعني أن السعر له دلالة إحصائية بالفعل. تم التقريب لجعل قيمة p أكثر وضوحًا. خلاف ذلك، ستظهر في الصيغة العلمية. هذا يعني أنه يمكننا رفض الفرضية الصفرية واستنتاج أن العلامة التجارية هي مؤشر على السعر.
تمكنت من بناء نموذج لتوقع السعر لمساعدتي في تحديد ما هو السعر العادل الذي يجب دفعه مقابل جهاز بناءً على مواصفاته، وآخر لتحديد مدى أهمية العلامة التجارية. هذا يظهر قوة Python وم libraries الخاصة به في جعل شيء قد يكون صعبًا القيام به يدويًا قابلًا للتقليل إلى بضع أسطر من الشيفرة.
المقالة هنا تنتهي. نأمل أن تكون قد وجدت المعلومات المقدمة مفيدة في مساعدتك على اتخاذ قرار مستنير عند شراء الكمبيوتر المحمول القادم.
التعليقات 0
سجل دخولك لإضافة تعليق
لا توجد تعليقات بعد. كن أول من يعلق!