شعار زيفيرنت

توقع أجرة الطيران باستخدام التعلم الآلي

التاريخ:

الإستنباط: هنا بمساعدة مخطط القط نحاول رسم مخطط الصندوق بين سعر الرحلة وشركة الطيران ويمكننا أن نستنتج ذلك جت إيرويز لديها أكثر القيم المتطرفة من حيث السعر.

الإستنباط: الآن بمساعدة مخطط القط فقط ، نرسم مخططًا مربعًا بين سعر الرحلة ومكان المصدر أي. المكان الذي سيسافر منه الركاب إلى الوجهة ويمكننا أن نرى أن بانجلور كموقع المصدر لديها أكثر القيم المتطرفة بينما تشيناي لديها الأقل.

الإستنباط: نحن هنا نرسم مخطط الصندوق بمساعدة مخطط قطة بين سعر الرحلة والوجهة التي يسافر إليها الراكب واكتشف ذلك نيودلهي لديها أكثر القيم المتطرفة وكلكتا أقلها.

دعنا نرى بياناتنا المعالجة أولاً

train_df.head ()

الإخراج:

هندسة الميزات

هنا أولاً نقسم الميزات والتسميات ثم نحول الساعات بالدقائق.

train_df ['Duration'] = train_df ['Duration']. str.replace ("h"، '* 60'). str.replace (''، '+'). str.replace ('m'، '* 1 '). تطبيق (EVAL) test_df [' Duration '] = test_df [' Duration ']. str.replace ("h"،' * 60 '). str.replace (' '،' + '). str. استبدل ('m'، '* 1'). تطبيق (EVAL)

تاريخ_من_الرحلة: نحن هنا ننظم تنسيق تاريخ الرحلة في مجموعة البيانات الخاصة بنا لتحسين المعالجة المسبقة في مرحلة النموذج.

train_df ["Journey_day"] = train_df ['Date_of_Journey']. str.split ('/'). str [0] .astype (int) train_df ["Journey_month"] = train_df ['Date_of_Journey']. str.split ( '/').str[1].astype(int) train_df.drop (["Date_of_Journey"]، axis = 1، inplace = True)

وقت_النشرة: هنا نقوم بتحويل وقت المغادرة إلى ساعات ودقائق

train_df ["Dep_hour"] = pd.to_datetime (train_df ["Dep_Time"]). dt.hour train_df ["Dep_min"] = pd.to_datetime (train_df ["Dep_Time"]). dt.minute train_df.drop (["" Dep_min "] = pd.to_datetime (train_df [" Dep_Time "]). Dep_Time "] ، المحور = 1 ، inplace = True)

وقت الوصول: وبالمثل نقوم بتحويل وقت الوصول إلى ساعات ودقائق.

train_df ["Arrival_hour"] = pd.to_datetime (train_df.Arrival_Time) .dt.hour train_df ["Arrival_min"] = pd.to_datetime (train_df.Arrival_Time) .dt.minute train_df.drop (["Arrival_Time"] ، المحور = 1 ، inplace = صحيح)

الآن بعد المعالجة النهائية النهائية ، دعنا نرى مجموعة البيانات الخاصة بنا

train_df.head ()

الإخراج:

الإخراج | التنبؤ باستخدام التعلم الآلي

رسم مخطط شريطي للأشهر (المدة) مقابل عدد الرحلات

plt.figure (figsize = (10، 5)) plt.title ('عدد الرحلات بالشهر الحكيم') ax = sns.countplot (x = 'Journey_month'، data = train_df) plt.xlabel ('month') plt. ylabel ('عدد الرحلات') لـ p في ax.patches: ax.annotate (int (p.get_height ())، (p.get_x () + 0.25، p.get_height () + 1)، va = 'bottom "، اللون =" أسود ")

الإخراج:

الإخراج | التنبؤ باستخدام التعلم الآلي

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

رسم مخطط شريطي لأنواع شركات الطيران مقابل عدد الرحلات

plt.figure (figsize = (20,5،45)) plt.title ('عدد الرحلات مع خطوط جوية مختلفة') ax = sns.countplot (x = 'Airline'، data = train_df) plt.xlabel ('Airline') plt .ylabel ('عدد الرحلات') plt.xticks (rotation = 0.25) for p in ax.patches: ax.annotate (int (p.get_height ())، (p.get_x () + 1، p.get_height ( ) +XNUMX)، va = 'bottom'، color = 'black')

الإخراج:

التنبؤ باستخدام التعلم الآلي

الإستنباط: الآن من الرسم البياني أعلاه يمكننا أن نرى ذلك بين نوع شركة الطيران و عدد الرحلات يمكننا أن نرى أن جت إيرويز لديها أكبر عدد من الرحلات على متن الطائرة.

التآمر على أسعار التذاكر VS الخطوط الجوية

plt. ) plt.ylabel ("سعر التذكرة") plt.xticks (الدوران = 15,4)

الإخراج:

الإخراج | التنبؤ باستخدام التعلم الآلي

الارتباط بين جميع الميزات

ارتباط التآمر

plt.figure (figsize = (15,15،XNUMX)) sns.heatmap (train_df.corr ()، annot = True، cmap = "RdYlGn") plt.show ()

الإخراج:

الارتباط بين جميع الميزات

إسقاط عمود السعر لأنه لا فائدة منه

data = train_df.drop (["السعر"] ، المحور = 1)

التعامل مع البيانات الفئوية والبيانات العددية

train_categorical_data = data.select_dtypes (استبعاد = ['int64'، 'float'، 'int32']) train_numerical_data = data.select_dtypes (include = ['int64'، 'float'، 'int32']) test_categorical_data = test_df.select_dtypes ( استبعاد = ['int64'، 'float'، 'int32'، 'int32']) test_numerical_data = test_df.select_dtypes (include = ['int64'، 'float'، 'int32']) train_categorical_data.head ()

الإخراج:

التنبؤ باستخدام التعلم الآلي

تشفير التسمية والتشفير السريع للأعمدة الفئوية

le = LabelEncoder () train_categorical_data = train_categorical_data.apply (LabelEncoder (). fit_transform) test_categorical_data = test_categorical_data.apply (LabelEncoder (). fit_transform) train_categorical_data.head ()

الإخراج:

التنبؤ باستخدام التعلم الآلي

ربط كل من البيانات الفئوية والبيانات العددية

X = pd.concat ([train_categorical_data، train_numerical_data]، محور = 1) y = train_df ['Price'] test_set = pd.concat ([test_categorical_data، test_numerical_data]، محور = 1) X.head ()

الإخراج:

البيانات الفئوية | التنبؤ باستخدام التعلم الآلي
y.head ()

الإخراج:

0 3897 1 7662 2 13882 3 6218 4 13302 الاسم: السعر ، النوع: int64

وفي الختام

لذلك كما رأينا أننا أجرينا عملية EDA كاملة ، وحصلنا على رؤى للبيانات ، وهندسة الميزات ، وتصور البيانات أيضًا ، وبعد كل هذه الخطوات يمكن للمرء أن يذهب للتنبؤ باستخدام خطوات صنع نماذج التعلم الآلي.

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

اقرأ على AV المدونة حول التنبؤات المختلفة باستخدام التعلم الآلي.

عني

تحياتي للجميع، أنا أعمل حاليا in TCS وقبل ذلك ، عملت كمحلل لعلوم البيانات in زوربا للاستشارات الهند. إلى جانب العمل بدوام كامل ، لدي اهتمام كبير في نفس المجال ، أي علم البيانات ، إلى جانب مجموعات فرعية أخرى من الذكاء الاصطناعي مثل رؤية الكمبيوتر ، والتعلم الآلي ، والتعلم العميق. لا تتردد في التعاون معي في أي مشروع في المجالات المذكورة أعلاه (لينكدين:).

هنا يمكنك الوصول إلى مقالاتي الأخرى المنشورة على Analytics Vidhya كجزء من Blogathon (الصفحة ).

الوسائط الموضحة في هذه المقالة ليست مملوكة لشركة Analytics Vidhya ويتم استخدامها وفقًا لتقدير المؤلف.

المصدر: https://www.analyticsvidhya.com/blog/2022/01/flight-fare-prediction-using-machine-learning/

بقعة_صورة

أحدث المعلومات الاستخباراتية

بقعة_صورة

الدردشة معنا

أهلاً! كيف يمكنني مساعدك؟