html
बीमा डेटा पर बहुपद प्रतिगमन और निर्णय वृक्ष प्रतिगामी लागू करना: एक व्यापक मार्गदर्शिका
मशीन लर्निंग के क्षेत्र में, प्रतिगमन मॉडल निरंतर परिणामों की भविष्यवाणी में महत्वपूर्ण भूमिका निभाते हैं। यह लेख एक बीमा डेटासेट पर बहुपद प्रतिगमन और निर्णय वृक्ष प्रतिगामी के अनुप्रयोग में गहराई से जाता है, जिसमें डेटा पूर्व-प्रसंस्करण, मॉडल निर्माण, मूल्यांकन, और अनुकूलन के लिए चरण-दर-चरण मार्गदर्शिका प्रदान की गई है। चाहे आप एक अनुभवी डेटा वैज्ञानिक हों या एक नवोदित उत्साही, यह व्यापक मार्गदर्शिका आपको इन प्रतिगमन तकनीकों को प्रभावी ढंग से लागू करने और तुलना करने के लिए ज्ञान से लैस करेगी।
सामग्री तालिका
- परिचय
- डेटासेट अवलोकन
- डेटा पूर्व-प्रसंस्करण
- डेटा को प्रशिक्षण और परीक्षण सेट में विभाजित करना
- बहुपद प्रतिगमन मॉडल का निर्माण और मूल्यांकन
- निर्णय वृक्ष प्रतिगामी लागू करना
- हाइपरपैरामीटर ट्यूनिंग और इसका प्रभाव
- क्रॉस-वैलिडेशन और मॉडल स्थिरता
- मॉडलों की तुलना
- निष्कर्ष और सर्वोत्तम प्रथाएं
परिचय
मशीन लर्निंग विभिन्न भविष्यवाणी कार्यों के लिए उपयुक्त प्रतिगमन तकनीकों की एक विस्तृत श्रृंखला प्रदान करता है। यह मार्गदर्शिका दो ऐसी विधियों पर केंद्रित है:
- बहुपद प्रतिगमन: स्वतंत्र और आश्रित चर के बीच बहुपद संबंधों पर विचार करके रैखिक प्रतिगमन को विस्तारित करता है।
- निर्णय वृक्ष प्रतिगामी: निर्णयों के वृक्ष-समान मॉडल का उपयोग करके निरंतर मानों की भविष्यवाणी करता है।
इन मॉडलों को एक बीमा डेटासेट पर लागू करने से हमें आयु, बीएमआई, धूम्रपान की आदतें, और अन्य कारकों के आधार पर बीमा शुल्क की भविष्यवाणी करने में मदद मिलती है।
डेटासेट अवलोकन
हम कागल से बीमा डेटासेट का उपयोग करते हैं, जिसमें निम्नलिखित विशेषताएँ शामिल हैं:
- आयु: मुख्य लाभार्थी की आयु।
- लिंग: लाभार्थी का लिंग।
- बीएमआई: बॉडी मास इंडेक्स।
- बच्चे: बीमा द्वारा कवर किए गए बच्चों की संख्या।
- धूम्रपान: धूम्रपान की स्थिति।
- क्षेत्र: लाभार्थी का निवास क्षेत्र।
- शुल्क: स्वास्थ्य बीमा द्वारा बिल किए गए व्यक्तिगत चिकित्सा लागत।
लक्ष्य अन्य विशेषताओं के आधार पर शुल्क
की भविष्यवाणी करना है।
डेटा पूर्व-प्रसंस्करण
सटीक मशीन लर्निंग मॉडल बनाने के लिए प्रभावी डेटा पूर्व-प्रसंस्करण महत्वपूर्ण है। यह खंड श्रेणीबद्ध चर को संभालने के लिए लेबल कोडिंग और वन-हॉट कोडिंग को कवर करता है।
लेबल कोडिंग
लेबल कोडिंग श्रेणीबद्ध पाठ डेटा को संख्यात्मक रूप में परिवर्तित करती है, जो मशीन लर्निंग एल्गोरिदम के लिए आवश्यक है।
1234567891011121314
from sklearn import preprocessingimport pandas as pd # Load datasetdata = pd.read_csv('S07_datasets_13720_18513_insurance.csv')X = data.iloc[:, :-1]Y = data.iloc[:, -1] # Initialize LabelEncoderle = preprocessing.LabelEncoder() # Encode 'sex' and 'smoker' columnsX['sex'] = le.fit_transform(X['sex'])X['smoker'] = le.fit_transform(X['smoker'])
आउटपुट:
1234
age sex bmi children smoker region 0 19 0 27.900 0 1 southwest 1 18 1 33.770 1 0 southeast ...
वन-हॉट कोडिंग
वन-हॉट कोडिंग श्रेणीबद्ध चर को ऐसी रूप में बदलती है जिसे एमएल एल्गोरिदम भविष्यवाणी में बेहतर काम कर सकें।
123456789
from sklearn.preprocessing import OneHotEncoderfrom sklearn.compose import ColumnTransformer # Initialize ColumnTransformer with OneHotEncoder for 'region'columnTransformer = ColumnTransformer([('encoder', OneHotEncoder(), [5])], remainder='passthrough') # Apply transformationX = columnTransformer.fit_transform(X)print(X)
आउटपुट:
1234
[[0. 0. 0. ... 27.9 0. 1.] [0. 0. 1. ... 33.77 1. 0.]...]
डेटा को प्रशिक्षण और परीक्षण सेट में विभाजित करना
डेटासेट को विभाजित करने से यह सुनिश्चित होता है कि मॉडल के प्रदर्शन का मूल्यांकन अनदेखे डेटा पर किया जाए, जिससे इसके वास्तविक दुनिया में प्रदर्शन का बेहतर आकलन होता है।
1234
from sklearn.model_selection import train_test_split # Split data into training and testing sets (80-20 split)X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.20, random_state=1)
बहुपद प्रतिगमन मॉडल का निर्माण और मूल्यांकन
बहुपद प्रतिगमन मॉडल को स्वतंत्र और आश्रित चर के बीच गैर-रैखिक संबंध फिट करने की अनुमति देता है।
123456789101112131415161718
from sklearn.linear_model import LinearRegressionfrom sklearn.preprocessing import PolynomialFeaturesfrom sklearn.metrics import r2_score # Initialize PolynomialFeatures with degree 2poly = PolynomialFeatures(degree=2)X_poly = poly.fit_transform(X_train) # Initialize and fit Linear Regression modelmodel = LinearRegression()model.fit(X_poly, y_train) # Predict on test sety_pred = model.predict(poly.transform(X_test)) # Evaluate modelr2 = r2_score(y_test, y_pred)print(f'Polynomial Regression R2 Score: {r2:.2f}')
आउटपुट:
1
Polynomial Regression R2 Score: 0.86
0.86 का R² स्कोर इंगित करता है कि बीमा शुल्क में लगभग 86% विचलन मॉडल द्वारा समझाया जाता है।
निर्णय वृक्ष प्रतिगामी लागू करना
निर्णय वृक्ष डेटा को विशेषताओं के मानों के आधार पर उपसमुच्चयों में विभाजित करते हैं, जिससे संबंधों के जटिल मॉडलिंग की अनुमति मिलती है।
123456789101112
from sklearn.tree import DecisionTreeRegressor # Initialize Decision Tree Regressor with max_depth=4dt_model = DecisionTreeRegressor(max_depth=4)dt_model.fit(X_train, y_train) # Predict on test sety_pred_dt = dt_model.predict(X_test) # Evaluate modelr2_dt = r2_score(y_test, y_pred_dt)print(f'Decision Tree Regressor R2 Score: {r2_dt:.2f}')
आउटपुट:
1
Decision Tree Regressor R2 Score: 0.87
आश्चर्यजनक रूप से, इस मामले में निर्णय वृक्ष प्रतिगामी ने बहुपद प्रतिगमन मॉडल की तुलना में थोड़ा अधिक R² स्कोर प्राप्त किया।
हाइपरपैरामीटर ट्यूनिंग और इसका प्रभाव
जैसे max_depth
, हाइपरपैरामीटर मॉडल के प्रदर्शन को नियंत्रित करने में महत्वपूर्ण भूमिका निभाते हैं, विशेष रूप से निर्णय वृक्ष की जटिलता को नियंत्रित करके।
1234567
# Experimenting with different max_depth valuesfor depth in [2, 3, 4, 10]: dt_model = DecisionTreeRegressor(max_depth=depth, random_state=1) dt_model.fit(X_train, y_train) y_pred_dt = dt_model.predict(X_test) r2_dt = r2_score(y_test, y_pred_dt) print(f'max_depth={depth} => R2 Score: {r2_dt:.2f}')
आउटपुट:
1234
max_depth=2 => R2 Score: 0.75max_depth=3 => R2 Score: 0.86max_depth=4 => R2 Score: 0.87max_depth=10 => R2 Score: 0.75
- Max Depth=2: कम R² स्कोर के साथ मॉडल को अपर्याप्त फिट करना।
- Max Depth=3 & 4: उच्चतर R² स्कोर के साथ इष्टतम प्रदर्शन।
- Max Depth=10: ओवरफिटिंग, जो परीक्षण सेट पर प्रदर्शन को घटा देता है।
निष्कर्ष: उपयुक्त max_depth
का चयन पक्षपात और परिवर्तनशीलता के बीच संतुलन बनाए रखने के लिए महत्वपूर्ण है, यह सुनिश्चित करते हुए कि मॉडल अनदेखे डेटा पर अच्छी तरह से सामान्यीकृत हो।
क्रॉस-वैलिडेशन और मॉडल स्थिरता
क्रॉस-वैलिडेशन, विशेष रूप से K-Fold क्रॉस-वैलिडेशन, मॉडल के प्रदर्शन का एक अधिक मजबूत आकलन प्रदान करती है, डेटा को k उपसमुच्चयों में विभाजित करके और क्रमिक रूप से मॉडल को प्रशिक्षण और परीक्षण करके।
12345678910
from sklearn.model_selection import cross_val_score # Initialize Decision Tree Regressordt_model = DecisionTreeRegressor(max_depth=4, random_state=1) # Perform 5-Fold Cross-Validationcv_scores = cross_val_score(dt_model, X, Y, cv=5, scoring='r2') print(f'Cross-Validation R2 Scores: {cv_scores}')print(f'Average R2 Score: {cv_scores.mean():.2f}')
आउटपुट:
12
Cross-Validation R2 Scores: [0.85 0.86 0.87 0.88 0.86]Average R2 Score: 0.86
लाभ: क्रॉस-वैलिडेशन एकल ट्रेन-टेस्ट विभाजन पर आधारित मॉडल मूल्यांकन के जोखिम को कम करती है, जिससे एक अधिक सामान्यीकृत प्रदर्शन मीट्रिक प्रदान होती है।
मॉडलों की तुलना
मॉडल
R² स्कोर
बहुपद प्रतिगमन
0.86
निर्णय वृक्ष प्रतिगामी
0.87
अंतरदृष्टि:
- निर्णय वृक्ष प्रतिगामी इस मामले में बहुपद प्रतिगमन से थोड़ा बेहतर प्रदर्शन करता है।
- उचित हाइपरपैरामीटर ट्यूनिंग ने निर्णय वृक्ष के प्रदर्शन को काफी हद तक बढ़ा दिया है।
- दोनों मॉडलों के अपने-अपने फायदे हैं; चयन विशिष्ट उपयोग के केस और डेटा की विशेषताओं पर निर्भर करता है।
निष्कर्ष और सर्वोत्तम प्रथाएं
इस मार्गदर्शिका में, हमने एक बीमा डेटासेट पर बहुपद प्रतिगमन और निर्णय वृक्ष प्रतिगामी के लागूकरण की खोज की। मुख्य निष्कर्ष शामिल हैं:
- डेटा पूर्व-प्रसंस्करण: श्रेणीबद्ध चर की उचित कोडिंग मॉडल की सटीकता के लिए आवश्यक है।
- मॉडल मूल्यांकन: R² स्कोर मॉडल के प्रदर्शन का आकलन करने के लिए एक विश्वसनीय मीट्रिक के रूप में काम करता है।
- हाइपरपैरामीटर ट्यूनिंग:
max_depth
जैसे पैरामीटर को समायोजित करने से ओवरफिटिंग और अपर्याप्त फिटिंग को रोका जा सकता है।
- क्रॉस-वैलिडेशन: प्रदर्शन मीट्रिक की विश्वसनीयता को बढ़ाती है।
सर्वोत्तम प्रथाएं:
- अपने डेटा को समझें: मॉडलिंग से पहले, डेटासेट का अन्वेषण करें और समझें ताकि पूर्व-प्रसंस्करण और मॉडलिंग निर्णयों को सूचित किया जा सके।
- फीचर इंजीनियरिंग: अंतर्निहित पैटर्न को पकड़ने के लिए नए फीचर्स बनाने या मौजूदा को परिवर्तित करने पर विचार करें।
- मॉडल चयन: अपने विशिष्ट कार्य के लिए सर्वश्रेष्ठ प्रदर्शन करने वाले पहचानने के लिए कई एल्गोरिदम के साथ प्रयोग करें।
- नियमकरण तकनीक: ओवरफिटिंग को रोकने के लिए निर्णय वृक्ष में प्रूनिंग जैसी तकनीकों का उपयोग करें।
- निरंतर सीखना: नवीनतम मशीन लर्निंग तकनीकों और सर्वोत्तम प्रथाओं के साथ अपडेट रहें।
इन प्रथाओं का पालन करके, आप अपने डेटासेट और उद्देश्यों के अनुरूप मजबूत और सटीक भविष्यवाणी मॉडल बना सकते हैं।
इन मॉडलों के साथ विभिन्न डेटासेट पर प्रयोग करके और मॉडल प्रदर्शन को आगे बढ़ाने के लिए उन्नत तकनीकों का अन्वेषण करके अपनी डेटा विज्ञान यात्रा को सशक्त करें।