शीर्ष उड़ान ट्रैकिंग ऐप, फ़्लाटी, अब देरी के बारे में पहले से चेतावनी संकेत देने और देरी के पीछे का सटीक कारण बताने के लिए मशीन लर्निंग के साथ-साथ विमानन अधिकारियों से डेटा का उपयोग कर रहा है। इस नवीनतम रिलीज़ के साथ, ऐप अब देरी के दो सबसे बड़े कारणों की पहचान करने में सक्षम है - विमान का देर से आना और हवाई क्षेत्र की समस्याएँ - उपयोगकर्ताओं को एयरलाइनों द्वारा ऐसा करने से पहले देरी के बारे में अग्रिम चेतावनी प्रदान करना। अपडेट के पीछे का विचार आपको ऐसी जानकारी देकर आपकी यात्रा योजनाओं के बारे में अधिक सूचित निर्णय लेने में मदद करना है जो एयरलाइनें आमतौर पर नहीं देती हैं।
उदाहरण के लिए, एयरलाइन आपकी यात्रा में आधे घंटे, फिर एक घंटे और इसी तरह की देरी कर सकती है। फ़्लाइटी आपको पहले से ही सचेत कर सकता है कि आपके हवाई अड्डे पर आधिकारिक ग्राउंड स्टॉप या मौसम संबंधी समस्याओं जैसी किसी चीज़ के कारण आपकी उड़ान में कम से कम पाँच घंटे की देरी होने की संभावना है। आप हवाई अड्डे पर जाने के लिए फिर से बुकिंग या थोड़ा और इंतज़ार करने जैसे कदम उठाना चाह सकते हैं।
हम फ्लाइटी की नई सुविधा के पीछे की कार्यप्रणाली के बारे में गहराई से जानेंगे और आपके प्रोजेक्ट में इस शक्तिशाली सुविधा को जोड़ने में आपकी मदद करेंगे: एलएसटीएम का उपयोग करके उड़ान में देरी की भविष्यवाणी करना।
उड़ान में देरी का पूर्वानुमान लगाना बहुत चुनौतीपूर्ण हो सकता है क्योंकि कई कारक देरी का कारण बन सकते हैं, जो कि ज्यादातर मौसम, हवाई यातायात और तकनीकी समस्याओं से संबंधित होते हैं। इस तरह के पूर्वानुमान मॉडल एयरलाइनों को परिचालन को अनुकूलित करने, यात्री संतुष्टि में सुधार करने और परिचालन लागत को कम करने में मदद करने में महत्वपूर्ण हो सकते हैं।
उड़ान में देरी का पूर्वानुमान लगाने के लिए प्रभावी मॉडल बनाने के लिए, देरी को प्रभावित करने वाली कई विशेषताओं का उपयोग करना आवश्यक है। इस लेख में, हम निम्नलिखित विशेषताओं का उपयोग करेंगे:
FL_DATE
: उड़ान की तारीख.DEP_DELAY
: प्रस्थान में देरी मिनटों में.ORIGIN_CITY_NAME
: वह शहर जहां से उड़ान रवाना होगी.DEST_CITY_NAME
: गंतव्य शहर.CRS_DEP_TIME
: निर्धारित प्रस्थान समय.DISTANCE
: उड़ान की दूरी मील में.डेटा तैयार करना मशीन-लर्निंग मॉडल बनाने की प्रक्रिया में प्रमुख चरणों में से एक है। हम उड़ानों के बारे में कुछ ऐतिहासिक डेटा का उपयोग करेंगे और कुछ प्रीप्रोसेसिंग चरण निष्पादित करेंगे: गुम मानों को संभालना, श्रेणीबद्ध विशेषताओं को एन्कोड करना और डेटा को सामान्य बनाना।
import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn.preprocessing import MinMaxScaler from tensorflow.keras.models import Sequential from tensorflow.keras.layers import LSTM, Dense, Dropout # Load the flight data flights_df = pd.read_csv('path_to_your_flight_data.csv') # Convert FL_DATE to datetime and set as index flights_df['FL_DATE'] = pd.to_datetime(flights_df['FL_DATE']) flights_df.set_index('FL_DATE', inplace=True) # Select relevant columns and drop rows with NaN values features = ['DEP_DELAY', 'ORIGIN_CITY_NAME', 'DEST_CITY_NAME', 'CRS_DEP_TIME', 'DISTANCE'] flights_df = flights_df[features].dropna() # Convert categorical features to dummy variables flights_df = pd.get_dummies(flights_df, columns=['ORIGIN_CITY_NAME', 'DEST_CITY_NAME']) # Normalize the data scaler = MinMaxScaler() scaled_data = scaler.fit_transform(flights_df)
आवर्ती तंत्रिका नेटवर्क का एक प्रकार लॉन्ग शॉर्ट-टर्म मेमोरी या LSTM नेटवर्क है, जिसे विशेष रूप से समय श्रृंखला डेटा में दीर्घकालिक निर्भरता सीखने के लिए डिज़ाइन किया गया है। सबसे पहले, LSTM का उपयोग करके डेटा बिंदुओं का एक क्रम बनाना आवश्यक होगा।
# Create sequences def create_sequences(data, seq_length): sequences = [] for i in range(len(data) - seq_length): seq = data[i:i+seq_length] target = data[i+seq_length][0] # DEP_DELAY is the target sequences.append((seq, target)) return sequences seq_length = 30 sequences = create_sequences(scaled_data, seq_length)
इसके बाद, हमने मॉडल के प्रदर्शन का मूल्यांकन करने के लिए अनुक्रमों को प्रशिक्षण और परीक्षण सेटों में विभाजित किया।
# Split into train and test sets train_size = int(len(sequences) * 0.8) train_sequences = sequences[:train_size] test_sequences = sequences[train_size:] # Prepare the input and output X_train, y_train = zip(*train_sequences) X_train, y_train = np.array(X_train), np.array(y_train) X_test, y_test = zip(*test_sequences) X_test, y_test = np.array(X_test), np.array(y_test)
फिर हम एक LSTM मॉडल को परिभाषित और प्रशिक्षित करते हैं। मॉडल में ओवरफिटिंग को रोकने के लिए ड्रॉपआउट परतों के साथ दो LSTM परतें और एक सघन आउटपुट परत शामिल है।
# Build the LSTM model model = Sequential() model.add(LSTM(50, return_sequences=True, input_shape=(seq_length, X_train.shape[2]))) model.add(Dropout(0.2)) model.add(LSTM(50)) model.add(Dropout(0.2)) model.add(Dense(1)) model.compile(optimizer='adam', loss='mean_squared_error') # Train the model model.fit(X_train, y_train, epochs=20, batch_size=32, validation_data=(X_test, y_test))
मॉडल को प्रशिक्षित करने के बाद, हम इसका उपयोग परीक्षण डेटा पर पूर्वानुमान लगाने और परिणामों को देखने के लिए कर सकते हैं।
# Make predictions predictions = model.predict(X_test) predictions = scaler.inverse_transform(np.concatenate((predictions, np.zeros((predictions.shape[0], scaled_data.shape[1] - 1))), axis=1))[:, 0] from sklearn.preprocessing import MinMaxScaler future_flight_data = { 'DEP_DELAY': 0, 'ORIGIN_CITY_NAME': 'San Francisco, CA', 'DEST_CITY_NAME': 'New York, NY', 'CRS_DEP_TIME': 1230, 'DISTANCE': 2904 } future_flight_df = pd.DataFrame([future_flight_data]) future_flight_df = pd.get_dummies(future_flight_df, columns=['ORIGIN_CITY_NAME', 'DEST_CITY_NAME']) scaler_columns = list(scaler.feature_names_in_) for col in scaler_columns: if col not in future_flight_df.columns: future_flight_df[col] = 0 future_flight_df = future_flight_df[scaler_columns] # Normalize the data using the fitted scaler scaled_future_flight = scaler.transform(future_flight_df) seq_length = 30 # Repeat the future flight data to create a sequence future_sequence = np.array([scaled_future_flight] * seq_length) future_sequence = future_sequence.reshape(1, seq_length, future_sequence.shape[2]) predicted_delay = model.predict(future_sequence) predicted_delay = scaler.inverse_transform( np.concatenate( (predicted_delay, np.zeros((predicted_delay.shape[0], scaled_future_flight.shape[1] - 1))), axis=1 ) )[:, 0] print(f"Predicted delay for the specific future flight: {predicted_delay[0]:.2f} minutes")
Predicted delay for the specific future flight: 4.10 minutes
उपरोक्त प्लॉट वास्तविक और अनुमानित देरी को दर्शाता है। यदि दो रेखाएँ बहुत कम विचलन दिखाती हैं, तो मॉडल देरी की भविष्यवाणी करने का अच्छा काम कर रहा है। हालाँकि, हाइपरपैरामीटर को ठीक करके या अधिक सुविधाएँ जोड़कर या अधिक उन्नत आर्किटेक्चर का उपयोग करके मॉडल में सुधार की हमेशा गुंजाइश होती है।
लाभों के बावजूद, कई चुनौतियाँ और विचारणीय बातें हैं:
सामान्य तौर पर, उड़ान में देरी की भविष्यवाणी करने में मशीन लर्निंग एक बहुत शक्तिशाली उपकरण है; यह एयरलाइनों को उनके संचालन में बहुत अधिक दक्षता लाने और यात्रियों को बेहतर यात्रा अनुभव प्रदान करने में मदद कर सकता है। उड़ान में देरी की भविष्यवाणी करने वाले अपने स्वयं के मॉडल को लागू करने के लिए इस लेख में दिए गए उदाहरणों को देखें और इस क्षेत्र में काम करने वाली मशीन लर्निंग की शक्ति का अनुभव करें।
यह फ़्लोटी की नई विशेषताओं में से एक है, जो वास्तविक दुनिया की समस्याओं को हल करने के लिए मशीन लर्निंग के साथ क्या संभव है, इस पर प्रकाश डालती है। तकनीकी और डेटा विज्ञान उन्नति की प्रक्रिया में, इस तरह के मॉडल की सटीकता और इसे लागू किए जा सकने वाली समस्याओं के प्रकारों में सुधार होता रहेगा, जिससे स्मार्ट और अधिक कुशल हवाई यात्रा का मार्ग प्रशस्त होगा।
जो लोग अपने मॉडल को और बेहतर बनाने में रुचि रखते हैं, वे निम्नलिखित पर विचार करें:
निरंतर पुनरावृत्ति और सुधार के माध्यम से, अधिक विश्वसनीय भविष्यवाणियों के लिए उच्च सटीकता प्राप्त की जा सकती है, जिससे हवाई यात्रा अधिक सुचारू और कुशल हो जाएगी।