तो, कहानी यह है—मैंने हाल ही में प्रोफेसर ज़ुआंग के एक स्कूल असाइनमेंट पर काम किया, जिसमें इंक्रीमेंटल एसोसिएशन मार्कोव ब्लैंकेट (आईएएमबी) नामक एक बहुत अच्छा एल्गोरिदम शामिल था। अब, मेरे पास डेटा विज्ञान या सांख्यिकी में कोई पृष्ठभूमि नहीं है, इसलिए यह मेरे लिए नया क्षेत्र है, लेकिन मुझे कुछ नया सीखना पसंद है। लक्ष्य? डेटासेट में सुविधाओं का चयन करने के लिए IAMB का उपयोग करें और देखें कि यह मशीन-लर्निंग मॉडल के प्रदर्शन को कैसे प्रभावित करता है।
हम IAMB एल्गोरिथम की बुनियादी बातों पर गौर करेंगे और इसे जेसन ब्राउनली के डेटासेट से पिमा इंडियंस डायबिटीज डेटासेट पर लागू करेंगे। यह डेटासेट महिलाओं के स्वास्थ्य डेटा को ट्रैक करता है और इसमें यह भी शामिल है कि उन्हें मधुमेह है या नहीं। हम यह पता लगाने के लिए IAMB का उपयोग करेंगे कि मधुमेह की भविष्यवाणी के लिए कौन सी विशेषताएं (जैसे बीएमआई या ग्लूकोज स्तर) सबसे अधिक मायने रखती हैं।
आईएएमबी एल्गोरिथ्म एक मित्र की तरह है जो आपको किसी रहस्य में संदिग्धों की सूची को साफ करने में मदद करता है - यह एक सुविधा चयन विधि है जो केवल उन चर को चुनने के लिए डिज़ाइन की गई है जो वास्तव में आपके लक्ष्य की भविष्यवाणी करने के लिए महत्वपूर्ण हैं। इस मामले में, लक्ष्य यह है कि क्या किसी को मधुमेह है।
सरल शब्दों में, IAMB केवल सबसे प्रासंगिक सुविधाओं का चयन करके हमारे डेटासेट में अव्यवस्था से बचने में हमारी मदद करता है। यह विशेष रूप से तब उपयोगी होता है जब आप चीजों को सरल रखना चाहते हैं, मॉडल के प्रदर्शन को बढ़ावा देना चाहते हैं और प्रशिक्षण समय को तेज करना चाहते हैं।
स्रोत: बड़े पैमाने पर मार्कोव कंबल डिस्कवरी के लिए एल्गोरिदम
यहां वह जगह है जहां alpha आता है। आंकड़ों में, अल्फा (α) वह सीमा है जिसे हम यह तय करने के लिए निर्धारित करते हैं कि "सांख्यिकीय रूप से महत्वपूर्ण" के रूप में क्या गिना जाता है। प्रोफेसर द्वारा दिए गए निर्देशों के भाग के रूप में, मैंने 0.05 के अल्फा का उपयोग किया, जिसका अर्थ है कि मैं केवल उन विशेषताओं को रखना चाहता हूं जिनके लक्ष्य चर के साथ यादृच्छिक रूप से जुड़े होने की 5% से कम संभावना है। इसलिए, यदि किसी फीचर का पी-वैल्यू 0.05 से कम है, तो इसका मतलब है कि हमारे लक्ष्य के साथ एक मजबूत, सांख्यिकीय रूप से महत्वपूर्ण जुड़ाव है।
इस अल्फ़ा थ्रेशोल्ड का उपयोग करके, हम केवल सबसे सार्थक चर पर ध्यान केंद्रित कर रहे हैं, उन सभी को अनदेखा कर रहे हैं जो हमारे "महत्व" परीक्षण को पास नहीं करते हैं। यह एक फ़िल्टर की तरह है जो सबसे अधिक प्रासंगिक सुविधाओं को बनाए रखता है और शोर को दूर करता है।
यहां सेटअप है: पीमा इंडियंस डायबिटीज डेटासेट में स्वास्थ्य विशेषताएं (रक्तचाप, आयु, इंसुलिन स्तर, आदि) और हमारा लक्ष्य, परिणाम (चाहे किसी को मधुमेह हो)।
सबसे पहले, हम डेटा लोड करते हैं और उसकी जांच करते हैं:
import pandas as pd # Load and preview the dataset url = 'https://raw.githubusercontent.com/jbrownlee/Datasets/master/pima-indians-diabetes.data.csv' column_names = ['Pregnancies', 'Glucose', 'BloodPressure', 'SkinThickness', 'Insulin', 'BMI', 'DiabetesPedigreeFunction', 'Age', 'Outcome'] data = pd.read_csv(url, names=column_names) print(data.head())
यहां IAMB एल्गोरिथम का हमारा अद्यतन संस्करण है। हम यह तय करने के लिए पी-वैल्यू का उपयोग कर रहे हैं कि कौन सी सुविधाएं रखनी हैं, इसलिए केवल हमारे अल्फा (0.05) से कम पी-वैल्यू वाले लोगों का चयन किया जाता है।
import pingouin as pg def iamb(target, data, alpha=0.05): markov_blanket = set() # Forward Phase: Add features with a p-value alpha for feature in list(markov_blanket): reduced_mb = markov_blanket - {feature} result = pg.partial_corr(data=data, x=feature, y=target, covar=reduced_mb) p_value = result.at[0, 'p-val'] if p_value > alpha: markov_blanket.remove(feature) return list(markov_blanket) # Apply the updated IAMB function on the Pima dataset selected_features = iamb('Outcome', data, alpha=0.05) print("Selected Features:", selected_features)
जब मैंने इसे चलाया, तो इसने मुझे उन विशेषताओं की एक परिष्कृत सूची दी जो IAMB के अनुसार मधुमेह के परिणामों से सबसे अधिक निकटता से संबंधित थीं। यह सूची हमारे मॉडल के निर्माण के लिए आवश्यक वेरिएबल्स को कम करने में मदद करती है।
Selected Features: ['BMI', 'DiabetesPedigreeFunction', 'Pregnancies', 'Glucose']
एक बार जब हमारे पास हमारी चयनित विशेषताएं होती हैं, तो वास्तविक परीक्षण मॉडल के प्रदर्शन की तुलना सभी सुविधाओं बनाम आईएएमबी-चयनित सुविधाओं से करता है। इसके लिए, मैंने एक सरल गॉसियन नाइव बेयस मॉडल अपनाया क्योंकि यह सीधा है और संभावनाओं के साथ अच्छा प्रदर्शन करता है (जो पूरे बायेसियन वाइब के साथ जुड़ा हुआ है)।
मॉडल को प्रशिक्षित और परीक्षण करने के लिए यहां कोड है:
from sklearn.model_selection import train_test_split from sklearn.naive_bayes import GaussianNB from sklearn.metrics import accuracy_score, f1_score, roc_auc_score # Split data X = data.drop('Outcome', axis=1) y = data['Outcome'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) # Model with All Features model_all = GaussianNB() model_all.fit(X_train, y_train) y_pred_all = model_all.predict(X_test) # Model with IAMB-Selected Features X_train_selected = X_train[selected_features] X_test_selected = X_test[selected_features] model_iamb = GaussianNB() model_iamb.fit(X_train_selected, y_train) y_pred_iamb = model_iamb.predict(X_test_selected) # Evaluate models results = { 'Model': ['All Features', 'IAMB-Selected Features'], 'Accuracy': [accuracy_score(y_test, y_pred_all), accuracy_score(y_test, y_pred_iamb)], 'F1 Score': [f1_score(y_test, y_pred_all, average='weighted'), f1_score(y_test, y_pred_iamb, average='weighted')], 'AUC-ROC': [roc_auc_score(y_test, y_pred_all), roc_auc_score(y_test, y_pred_iamb)] } results_df = pd.DataFrame(results) display(results_df)
तुलना इस प्रकार दिखती है:
केवल IAMB-चयनित सुविधाओं का उपयोग करने से सटीकता और अन्य मेट्रिक्स में थोड़ी वृद्धि हुई। यह कोई बहुत बड़ी छलांग नहीं है, लेकिन यह तथ्य कि हमें कम सुविधाओं के साथ बेहतर प्रदर्शन मिल रहा है, आशाजनक है। साथ ही, इसका मतलब है कि हमारा मॉडल "शोर" या अप्रासंगिक डेटा पर निर्भर नहीं है।
मुझे आशा है कि यह IAMB को एक मैत्रीपूर्ण परिचय देगा! यदि आप उत्सुक हैं, तो इसे आज़माएं—यह मशीन लर्निंग टूलबॉक्स में एक उपयोगी उपकरण है, और आप अपनी परियोजनाओं में कुछ अच्छे सुधार देख सकते हैं।
स्रोत: बड़े पैमाने पर मार्कोव कंबल डिस्कवरी के लिए एल्गोरिदम
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3