recipes से फीचर इंजीनियरिंग
सामान्यीकरण, एनकोडिंग और इम्प्यूटेशन के लिए पूर्व-संसाधन चरण परिभाषित करें।
recipes से फीचर इंजीनियरिंग, CoddyKit पर R Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह R Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। R Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
रेसिपी क्या है?
tidymodels में recipe आपके डेटा के पूर्व-संसाधन का खाका होता है। यह कच्चे डेटा को मॉडल के लिए तैयार विशेषताओं में बदलने के आवश्यक चरणों को दर्ज करता है — उन्हें तुरंत लागू किए बिना।
मुख्य फ़ंक्शन recipe(outcome ~ ., data = train) है, जो फ़ॉर्मूला और उस संदर्भ डेटा-समुच्चय को निर्धारित करता है जिसका उपयोग पूर्व-संसाधन के दौरान आवश्यक सांख्यिकी का अनुमान लगाने के लिए किया जाता है।
library(recipes)
library(tidymodels)
# Create a recipe using the training data
rec <- recipe(price ~ ., data = train_data)
print(rec)step_normalize()
step_normalize(all_numeric_predictors()) हर संख्यात्मक पूर्वानुमानक को माध्य 0 पर केंद्रित करता है और उसका मानक विचलन 1 करता है। लॉजिस्टिक रिग्रेशन, SVM या न्यूरल नेटवर्क जैसे विशेषता-पैमाने के प्रति संवेदनशील एल्गोरिदम के लिए यह आवश्यक है।
माध्य और SD का परिकलन प्रशिक्षण समुच्चय से किया जाता है और bake() के माध्यम से परीक्षण डेटा पर भी उसी तरह लागू किया जाता है।
rec <- recipe(price ~ ., data = train_data) |>
step_normalize(all_numeric_predictors())
# Check what steps are recorded
print(rec)step_dummy()
step_dummy(all_nominal_predictors()) श्रेणीबद्ध (factor/character) चर को संख्यात्मक डमी (वन-हॉट एन्कोडेड) कॉलम में बदलता है। डिफ़ॉल्ट रूप से k-स्तरीय factor के लिए k-1 कॉलम बनाए जाते हैं, जिससे पूर्ण बहुसह-रैखिकता से बचा जाता है।
ट्री-आधारित मॉडल के लिए, जिन्हें पूर्ण वन-हॉट एन्कोडिंग से लाभ मिलता है, one_hot = TRUE का उपयोग करें।
rec <- recipe(price ~ ., data = train_data) |>
step_dummy(all_nominal_predictors())
# After prep and bake, factor columns become 0/1 numeric columns
prepped <- prep(rec)
baked <- bake(prepped, new_data = NULL)
names(baked)step_impute_median()
गुम मानों के कारण अधिकांश मॉडल इंजन विफल हो जाएँगे। step_impute_median(all_numeric_predictors()) NA मानों को प्रशिक्षण समुच्चय से परिकलित माध्यिका से बदलता है। माध्य से मान भरने की तुलना में माध्यिका बाहरी मानों के प्रति अधिक स्थिर होती है।
श्रेणीबद्ध चरों के लिए, सबसे अधिक बार आने वाले मान से भरने हेतु step_impute_mode() का उपयोग करें।
rec <- recipe(price ~ ., data = train_data) |>
step_impute_median(all_numeric_predictors()) |>
step_impute_mode(all_nominal_predictors())
print(rec)step_zv() — शून्य प्रसरण हटाना
step_zv(all_predictors()) ऐसे किसी भी पूर्वानुमानक को हटा देता है जिसमें केवल एक विशिष्ट मान हो (शून्य प्रसरण)। ऐसे कॉलम कोई जानकारी नहीं देते और कुछ मॉडल इंजनों में त्रुटियाँ उत्पन्न कर सकते हैं।
लगभग-शून्य प्रसरण के लिए step_nzv(all_predictors()) का उपयोग करें, जो उन कॉलमों को भी हटा देता है जिनमें कोई एक मान अत्यधिक रूप से प्रमुख होता है।
rec <- recipe(price ~ ., data = train_data) |>
step_impute_median(all_numeric_predictors()) |>
step_dummy(all_nominal_predictors()) |>
step_zv(all_predictors()) |>
step_normalize(all_numeric_predictors())
print(rec)prep() — रेसिपी को प्रशिक्षित करना
prep(recipe) चरणों के लिए आवश्यक सभी पैरामीटर का अनुमान लगाता है — जैसे सामान्यीकरण के लिए माध्य/SD और मान भरने के लिए माध्यिकाएँ — और इसके लिए प्रशिक्षण डेटा का उपयोग करता है। परिणाम एक prepped रेसिपी होती है, जिसे सभी रूपांतरण पैरामीटर ज्ञात होते हैं।
परीक्षण समुच्चय से डेटा-रिसाव से बचने के लिए हमेशा केवल प्रशिक्षण डेटा पर prep करें।
# Build the full recipe
rec <- recipe(price ~ ., data = train_data) |>
step_impute_median(all_numeric_predictors()) |>
step_dummy(all_nominal_predictors()) |>
step_zv(all_predictors()) |>
step_normalize(all_numeric_predictors())
# Estimate parameters from training data
prepped_rec <- prep(rec)
print(prepped_rec)bake() — नए डेटा पर लागू करना
bake(prepped_recipe, new_data = test_data) पहले से अनुमानित पैरामीटर का उपयोग करके किसी भी डेटा-समुच्चय पर सभी पूर्व-संसाधन चरण लागू करता है। इससे प्रशिक्षण और परीक्षण के बीच रूपांतरण एकसमान रहते हैं।
prep() के दौरान उपयोग किए गए प्रशिक्षण डेटा पर लागू करने के लिए new_data = NULL दें।
# Apply recipe to test data
baked_test <- bake(prepped_rec, new_data = test_data)
head(baked_test)
# Apply to training data (same as juice())
baked_train <- bake(prepped_rec, new_data = NULL)
dim(baked_train)juice() — संसाधित प्रशिक्षण डेटा निकालना
juice(prepped_recipe), bake(prepped_recipe, new_data = NULL) के समतुल्य एक सुविधाजनक फ़ंक्शन है। यह prep() के दौरान उपयोग किए गए प्रशिक्षण डेटा का पूर्व-संसाधित संस्करण लौटाता है।
ध्यान दें: juice(), bake(prep, new_data = NULL) की तुलना में थोड़ा अप्रचलित है, लेकिन पुराने tidymodels कोड में आपको यह दिखाई देगा।
# juice() extracts the processed training data
train_processed <- juice(prepped_rec)
glimpse(train_processed)
# Equivalent modern approach
train_modern <- bake(prepped_rec, new_data = NULL)
identical(train_processed, train_modern) # TRUEकई चरणों को संयोजित करना
चरणों को उसी क्रम में लागू किया जाता है जिसमें उन्हें जोड़ा जाता है। एक सामान्य उत्पादन रेसिपी का क्रम इस प्रकार होता है:
- मान भरना (पहले NAs ठीक करें)
- विशेषता निर्माण (इंटरैक्शन, बहुपद)
- डमी एन्कोडिंग (factors बदलें)
- शून्य-प्रसरण हटाना
- सामान्यीकरण (अंत में पैमाना बदलें)
यह क्रम महत्वपूर्ण है — उदाहरण के लिए, डमी एन्कोडिंग से पहले सामान्यीकरण करने पर परिणाम गलत होंगे।
full_rec <- recipe(sale_price ~ ., data = housing_train) |>
step_impute_median(all_numeric_predictors()) |>
step_impute_mode(all_nominal_predictors()) |>
step_log(sale_price, base = 10) |>
step_other(all_nominal_predictors(), threshold = 0.05) |>
step_dummy(all_nominal_predictors()) |>
step_zv(all_predictors()) |>
step_normalize(all_numeric_predictors())
print(full_rec)prep परिणामों की जाँच करना
prep() कॉल करने के बाद, tidy(prepped_rec) से जाँच सकते हैं कि हर चरण ने क्या किया। हर चरण की एक संख्यात्मक id होती है, और अनुमानित पैरामीटर देखने के लिए tidy(prepped_rec, number = 1) से उसकी विस्तृत जाँच कर सकते हैं।
prepped_rec <- prep(full_rec)
# View all steps and their status
tidy(prepped_rec)
# Inspect normalization parameters (mean, sd per column)
tidy(prepped_rec, number = 5) # step_normalize is step 5व्यवहार में रेसिपी
वर्कफ़्लो के साथ संयोजित करने पर रेसिपी सबसे अधिक उपयोगी होती हैं। prep() और bake() को हाथ से कॉल करने के बजाय, आप रेसिपी को वर्कफ़्लो में जोड़ते हैं और tidymodels fit() तथा predict() के दौरान prep/bake को अपने-आप संभालता है।
इससे उस सामान्य त्रुटि-स्रोत से बचा जा सकता है जिसमें प्रशिक्षण और अनुमान के समय पूर्व-संसाधन अलग-अलग तरीके से लागू होता है।
library(workflows)
# Recipe + model spec combined in a workflow
wf <- workflow() |>
add_recipe(full_rec) |>
add_model(linear_reg() |> set_engine('lm'))
# fit() internally calls prep() + bake() on training data
fitted_wf <- fit(wf, data = housing_train)
# predict() applies bake() to new data automatically
predictions <- predict(fitted_wf, new_data = housing_test)
head(predictions)त्वरित जाँच
tidymodels रेसिपी फ़्रेमवर्क में prep(recipe) कॉल करने पर क्या होता है?
रेसिपी का पुनरावलोकन
रेसिपी के साथ विशेषता इंजीनियरिंग से मुख्य बातें:
recipe(outcome ~ ., data = train)पूर्व-संसाधन का खाका निर्धारित करता है।step_normalize(),step_dummy(),step_impute_median(),step_zv()सबसे अधिक उपयोग किए जाने वाले चरण हैं।prep()केवल प्रशिक्षण डेटा से पैरामीटर का अनुमान लगाता है — परीक्षण डेटा से कभी नहीं।bake(prepped, new_data)प्रशिक्षित रेसिपी को किसी भी डेटा-समुच्चय पर लागू करता है।- चरणों का क्रम महत्वपूर्ण है: मान भरना → बनाना → एन्कोड करना → हटाना → पैमाना बदलना।
- उत्पादन में, fit और predict के दौरान prep/bake को स्वचालित करने के लिए रेसिपी को
workflow()में रखें।
# Full pipeline in 6 lines
rec <- recipe(target ~ ., data = train) |>
step_impute_median(all_numeric_predictors()) |>
step_dummy(all_nominal_predictors()) |>
step_zv(all_predictors()) |>
step_normalize(all_numeric_predictors())
prepped <- prep(rec)
train_baked <- bake(prepped, new_data = NULL)
test_baked <- bake(prepped, new_data = test)एआई शिक्षक के साथ R सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 43
- पाठ
- 159
अक्सर पूछे जाने वाले प्रश्न
क्या “recipes से फीचर इंजीनियरिंग” पाठ निःशुल्क है?
हाँ — R Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “recipes से फीचर इंजीनियरिंग” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। R Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“recipes से फीचर इंजीनियरिंग” में मैं क्या सीखूँगा?
सामान्यीकरण, एनकोडिंग और इम्प्यूटेशन के लिए पूर्व-संसाधन चरण परिभाषित करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ R Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या R Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर R Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“recipes से फीचर इंजीनियरिंग” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस R Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर R Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- recipes से फीचर इंजीनियरिंग
- parsnip से मॉडल विनिर्देश
- वर्कफ़्लो: रेसिपी और मॉडल का संयोजन
- rsample से पुनर्नमूनाकरण और क्रॉस-वैलिडेशन