R Academy · पाठ

वर्कफ़्लो: रेसिपी और मॉडल का संयोजन

पूर्व-संसाधन और मॉडल को एक ही वर्कफ़्लो ऑब्जेक्ट में समाहित करें।

पाठ 3, कुल 4 में से13 चरण

वर्कफ़्लो: रेसिपी और मॉडल का संयोजन, CoddyKit पर R Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह R Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। R Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

वर्कफ़्लो क्या है?

एक वर्कफ़्लो recipe और मॉडल विनिर्देशन को एक ही ऑब्जेक्ट में समाहित करता है। इससे एक महत्वपूर्ण समस्या हल होती है: क्रॉस-वैलिडेशन और अंतिम प्रशिक्षण के दौरान पूर्व-संसाधन और मॉडलिंग चरणों को एक इकाई के रूप में संभालना चाहिए, वरना normalization के औसत जैसे पैरामीटर test folds से लीक हो सकते हैं।

library(workflows)

# Start an empty workflow
wf <- workflow()
print(wf)

# Workflows have two slots: preprocessor and model
# Both must be filled before fitting

add_recipe() और add_model()

recipe पूर्व-संसाधक जोड़ने के लिए add_recipe(rec) और parsnip मॉडल विनिर्देशन जोड़ने के लिए add_model(spec) का उपयोग करें। पाइप ऑपरेटर इसे बहुत स्पष्ट और पढ़ने योग्य बनाता है।

library(recipes)
library(parsnip)
library(workflows)

rec <- recipe(price ~ ., data = train) |>
  step_impute_median(all_numeric_predictors()) |>
  step_dummy(all_nominal_predictors()) |>
  step_normalize(all_numeric_predictors())

spec <- linear_reg() |> set_engine('lm')

wf <- workflow() |>
  add_recipe(rec) |>
  add_model(spec)

print(wf)

वर्कफ़्लो पर fit()

वर्कफ़्लो पर fit(wf, data = train) कॉल करने पर recipe, training data का उपयोग करके अपने-आप prep() कॉल करती है और फिर पूर्व-संसाधित features पर मॉडल को प्रशिक्षित करती है। आपको स्वयं prep() या bake() कॉल करने की आवश्यकता नहीं होती।

fitted_wf <- fit(wf, data = housing_train)

# The fitted workflow stores both the prepped recipe
# and the trained model
print(fitted_wf)

प्रशिक्षित वर्कफ़्लो पर predict()

जब आप predict(fitted_wf, new_data = test) कॉल करते हैं, तो वर्कफ़्लो पूर्वानुमान बनाने से पहले प्रशिक्षित recipe का उपयोग करके नए डेटा पर अपने-आप bake() लागू करता है। इससे test डेटा को पूर्व-संसाधित करना भूलने का जोखिम समाप्त हो जाता है।

# Predictions automatically preprocess the test data
preds <- predict(fitted_wf, new_data = housing_test)
head(preds)

# For classification
preds_prob <- predict(fitted_wf, new_data = test_df, type = 'prob')
preds_class <- predict(fitted_wf, new_data = test_df, type = 'class')

last_fit() — सभी डेटा पर प्रशिक्षण, test पर मूल्यांकन

last_fit(wf, split) आपका अंतिम वर्कफ़्लो और आरंभिक training/test विभाजन ऑब्जेक्ट लेता है। यह training भाग पर वर्कफ़्लो को प्रशिक्षित करता है और test भाग पर उसका मूल्यांकन करता है — tuning पूरी होने के बाद अंतिम मॉडल के मूल्यांकन का मानक चरण।

library(rsample)

split <- initial_split(housing_data, prop = 0.8, strata = price)

# Fit on training, evaluate on test
final_res <- last_fit(wf, split)

# View performance on the held-out test set
collect_metrics(final_res)

extract_fit_parsnip()

extract_fit_parsnip(fitted_wf) प्रशिक्षित वर्कफ़्लो से प्रशिक्षित parsnip मॉडल ऑब्जेक्ट निकालता है। इसके बाद आप इसका उपयोग coefficients और variable importance देखने या इसे मॉडल-व्याख्या टूल में भेजने के लिए कर सकते हैं।

fitted_wf <- fit(wf, data = housing_train)

# Extract the parsnip model
parsnip_fit <- extract_fit_parsnip(fitted_wf)

# Now access the underlying model
tidy(parsnip_fit)      # coefficients for lm
vip::vip(parsnip_fit)  # variable importance plot

extract_recipe()

extract_recipe(fitted_wf) प्रशिक्षित वर्कफ़्लो से तैयार की गई recipe लौटाता है। यह देखने के लिए उपयोगी है कि कौन-से transformations लागू किए गए थे, या प्रशिक्षित पूर्व-संसाधन को निकालकर बाहरी डेटा पर स्वतंत्र रूप से लागू करने के लिए।

fitted_wf <- fit(wf, data = housing_train)

# Get the prepped recipe
prepped_rec <- extract_recipe(fitted_wf)

# Inspect normalization stats
tidy(prepped_rec, number = 3)  # step_normalize details

# Apply recipe to completely new external data
new_baked <- bake(prepped_rec, new_data = brand_new_df)

वर्कफ़्लो पर augment()

augment(fitted_wf, new_data) इनपुट डेटा फ़्रेम लौटाता है, जिसमें पूर्वानुमान वाले कॉलम जोड़ दिए जाते हैं। प्रतिगमन के लिए यह .pred जोड़ता है; वर्गीकरण के लिए यह .pred_class और प्रत्येक वर्ग के लिए संभाव्यता वाले कॉलम जोड़ता है।

fitted_wf <- fit(wf, data = housing_train)

# Append predictions to the test data frame
results <- augment(fitted_wf, new_data = housing_test)

# Now compute metrics directly
library(yardstick)
results |>
  metrics(truth = price, estimate = .pred)

वर्कफ़्लो को अपडेट करना

आप शुरुआत से दोबारा बनाए बिना update_recipe() या update_model() की सहायता से वर्कफ़्लो के अलग-अलग घटकों को अपडेट कर सकते हैं। प्रयोग करते समय यह उपयोगी है, खासकर जब आप वही recipe रखते हुए मॉडल इंजन बदलना चाहते हों।

# Original workflow with lm
wf_lm <- workflow() |>
  add_recipe(rec) |>
  add_model(linear_reg() |> set_engine('lm'))

# Swap model to random forest, keep same recipe
wf_rf <- update_model(
  wf_lm,
  rand_forest(trees = 300) |>
    set_engine('ranger') |>
    set_mode('regression')
)

fit_rf <- fit(wf_rf, data = housing_train)

add_formula() बनाम add_recipe()

यदि आपको recipe की आवश्यकता नहीं है, तो आप पूर्व-संसाधक के रूप में add_formula(outcome ~ .) का उपयोग कर सकते हैं। यह न्यूनतम transformations लागू करता है, यानी केवल formula विनिर्देशन। Feature engineering की आवश्यकता होने पर add_recipe() और त्वरित baseline मॉडल के लिए add_formula() का उपयोग करें।

# Simple baseline — no recipe needed
baseline_wf <- workflow() |>
  add_formula(price ~ sqft + bedrooms + bathrooms) |>
  add_model(linear_reg() |> set_engine('lm'))

baseline_fit <- fit(baseline_wf, data = housing_train)
baseline_preds <- predict(baseline_fit, new_data = housing_test)

# Compare RMSE to recipe-based model
yardstick::rmse_vec(housing_test$price, baseline_preds$.pred)

तुलना के लिए वर्कफ़्लो सेट

workflowsets पैकेज का workflow_set() कई recipes और मॉडल विनिर्देशों को मिलाकर वर्कफ़्लो का संग्रह बनाता है। इसके बाद आप workflow_map() की सहायता से सभी संयोजनों को एक साथ tune और evaluate कर सकते हैं।

library(workflowsets)

all_workflows <- workflow_set(
  preproc = list(basic = basic_rec, full = full_rec),
  models  = list(
    lm  = linear_reg() |> set_engine('lm'),
    rf  = rand_forest(trees = 200) |> set_engine('ranger') |> set_mode('regression')
  )
)

# Fit all 4 combinations on resamples
results <- workflow_map(all_workflows, 'fit_resamples', resamples = cv_folds)
autoplot(results)

त्वरित जाँच

स्वयं प्रशिक्षण और पूर्वानुमान करने के बजाय last_fit(workflow, split) का उपयोग करने का मुख्य लाभ क्या है?

वर्कफ़्लो का पुनरावलोकन

Recipes और मॉडलों को मिलाने वाले वर्कफ़्लो से मुख्य बातें:

  • workflow() |> add_recipe(rec) |> add_model(spec) पूर्व-संसाधन और मॉडलिंग को एक साथ समाहित करता है।
  • fit(wf, data = train) एक ही कॉल में recipe तैयार करता है और मॉडल को प्रशिक्षित करता है।
  • predict(fitted_wf, new_data) पूर्वानुमान से पहले नए डेटा पर अपने-आप bake करता है।
  • last_fit(wf, split) training डेटा पर प्रशिक्षित करता है और test डेटा पर मूल्यांकन करता है — अंतिम मॉडल आकलन के लिए इसका उपयोग करें।
  • extract_fit_parsnip() और extract_recipe() निरीक्षण के लिए घटक निकालते हैं।
  • augment() आसान मीट्रिक गणना के लिए डेटा फ़्रेम में पूर्वानुमान जोड़ता है।
  • workflow_set() कई recipe-मॉडल संयोजनों की एक साथ तुलना करता है।
# Canonical tidymodels workflow pattern
split    <- initial_split(data, prop = 0.8)
train    <- training(split)
test     <- testing(split)

rec  <- recipe(y ~ ., data = train) |> step_normalize(all_numeric_predictors())
spec <- rand_forest(trees = 300) |> set_engine('ranger') |> set_mode('regression')

wf   <- workflow() |> add_recipe(rec) |> add_model(spec)

final_res <- last_fit(wf, split)
collect_metrics(final_res)
शुरुआत निःशुल्क

एआई शिक्षक के साथ R सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
43
पाठ
159

अक्सर पूछे जाने वाले प्रश्न

क्या “वर्कफ़्लो: रेसिपी और मॉडल का संयोजन” पाठ निःशुल्क है?

हाँ — R Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “वर्कफ़्लो: रेसिपी और मॉडल का संयोजन” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। R Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“वर्कफ़्लो: रेसिपी और मॉडल का संयोजन” में मैं क्या सीखूँगा?

पूर्व-संसाधन और मॉडल को एक ही वर्कफ़्लो ऑब्जेक्ट में समाहित करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ R Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या R Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर R Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।

“वर्कफ़्लो: रेसिपी और मॉडल का संयोजन” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस R Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर R Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. recipes से फीचर इंजीनियरिंग
  2. parsnip से मॉडल विनिर्देश
  3. वर्कफ़्लो: रेसिपी और मॉडल का संयोजन
  4. rsample से पुनर्नमूनाकरण और क्रॉस-वैलिडेशन
← R Academy पर वापस जाएँ