كيف قمت بتحليل سيارات الأجرة الخاصة بي

في كل مرة أستقل فيها سيارة أجرة ، يأتي إلى بريدي تقرير رحلة بمعلومات مختلفة. على وجه الخصوص ، تحتوي على تاريخ ووقت السفر وطراز السيارة واسم السائق. جاءتني فكرة - لتحليل التقارير من Yandex Taxi والحصول على المعلومات الأكثر إثارة للاهتمام منها. ربما تساءلت دائمًا أيضًا عن عدد المرات التي قادت فيها نفس السيارة أو كم مرة أخذك نفس السائق؟





يمكن أن تكون المهمة الموضحة هنا تمرينًا جيدًا للمحللين المبتدئين. سيكون هناك كل شيء: Python مع الباندا وتحليل HTML والتعبيرات العادية وقواعد البيانات مع SQL.





نحصل على المعلومات

هذا جزء غير ممتع ، هنا سأصف كيف استرجعت المعلومات من صندوق البريد ، لرؤية الكود في النهاية سأرفق رابطًا بجهاز الكمبيوتر المحمول Python. كانت أسهل طريقة هي تفريغ صندوق البريد بتنسيق * .mbox. إنه أسهل من التعامل مع gmail api ، وصندوق بريدي موجود. لن يؤدي هذا تلقائيًا إلى إضافة الرحلات التي كانت بعد التفريغ ، ولكن هذا ليس بالغ الأهمية لأغراضنا.





من أجل تحليل الأرشيف ، سنستخدم مكتبة صندوق البريد. سيسمح لك بالوصول إلى الخصائص الأساسية لكل رسالة من صندوق البريد ، بما في ذلك المرسل ونص الرسالة نفسها.





بعد اختيار الحروف اللازمة ، أي تلك التي جاءت من taxi.yandex.ru المرسل ، نواجه مشكلة على الفور. تقوم Yandex بتغيير هيكل تقاريرها بشكل دوري. ومع ذلك ، فقد تغير الهيكل عالميًا مرة واحدة ، هذا العام. قبل ذلك ، كانت جميع المعلومات حول الرحلة في شكل نص صلب ، والآن يتم تشكيلها في شكل جدول. لذلك ، كان علي أن أكتب وظيفتين منفصلتين لاستخراج المعلومات: إذا كانت الرسالة تحتوي على معلومات في شكل نص صلب ، فإننا ببساطة نجد المعلومات التي نحتاجها باستخدام التعبيرات العادية باستخدام الأقنعة ؛ إذا كان في شكل جدول ، فقم بتحليل كود HTML للحرف باستخدام حساء جميل. نقوم بتحميل البيانات التي تم الحصول عليها في إطار بيانات وقاعدة بيانات سحابية حتى لا تضطر لاحقًا إلى إرجاع المربع بالكامل مع كل قبول.





مشاهدة الرحلات

بعد تلقي البيانات في شكل منظم ، من المثير للاهتمام رؤية الإحصائيات.





, .





تتغير تكلفة السفر بمرور الوقت

. , , , , -.





ذروة ضيقة - مغادرة للعمل ، ذروة - من العمل.
- , - .

. .





- .





- , , . , .









? !

, ?





. , 24 , . . , , , . .





:





3 , , .





DATE





NAME





CAR





CAR_MODEL





NUMBER





NAME_HASH





2020-06-23









Toyota





Camry





37077





-2596682743997844296





2020-06-17









Toyota





Camry





37077





-2596682743997844296





2020-06-05









Toyota





Camry





37077





-2596682743997844296





2019-11-27









Toyota





Camry





37077





-1058569546058211362









, , - , . , , .





DATE





TARIF





NAME





CAR





CAR_MODEL





NUMBER





NAME_HASH





2017-10-11













Hyundai





i40





20377





7008433025181534578





2020-04-16





+









Toyota





Camry





67877





7008433025181534578





2018-04-11













Kia





Rio





67077





-2646868843695703984





2020-04-17





+









Kia





Optima





58777





-2646868843695703984





, , 150-200 . .





توزيع الفواصل الزمنية بين الرحلات مع سائق متكرر

, , , , 29 , .





, , , , . , , , , .





توزيع الفجوات بين الرحلات مع تكرار السيارات

:





 pc - 1 , m 





P = \ frac {1} {N} (1-p_c) ^ م

, ,





\ frac {1} {N * p_c} = \ frac {29} {1346}

29 - , 1346 - .





, m m+n:





P_ {m، m + n} = \ frac {(1-p_c) ^ m} {N} * \ frac {1- (1-p_c) ^ {m + n}} {p_c}

. , , - .





 pc  , , . , , . , , .





, pc = 0.0062, :





  • - 257





  • - 7194





- , +. .. , 2 .





:





pc = 0.0076. :





  • - 7039





  • - 209





, . , , , .





, , , : https://colab.research.google.com/drive/1eltee0HilqqVQxpreC9-0w4b08EpMAgM?usp=sharing








All Articles