İş Akışları: Tarifleri ve Modelleri Birleştirme
Ön işlemeyi ve modeli tek bir iş akışı nesnesinde bir araya getirin.
İş Akışları: Tarifleri ve Modelleri Birleştirme, CoddyKit'te ücretsiz bir R Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, R Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. R Academy kursu toplamda 4 dersten oluşur.
İş Akışı Nedir?
Bir iş akışı, bir reçeteyi ve model belirtimini tek bir nesnede birleştirir. Bu, kritik bir sorunu çözer: aksi takdirde normalleştirme ortalamaları gibi parametreler sınama katlarından sızabileceğinden, ön işleme ve modelleme adımları çapraz doğrulama ve son uyarlama sırasında tek bir birim olarak ele alınmalıdır.
library(workflows)
# Start an empty workflow
wf <- workflow()
print(wf)
# Workflows have two slots: preprocessor and model
# Both must be filled before fittingadd_recipe() ve add_model()
Bir reçete ön işleyicisi eklemek için add_recipe(rec), bir parsnip model belirtimi eklemek için add_model(spec) kullanın. Boru işleci, bu yapının okunmasını oldukça kolaylaştırır.
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)İş Akışında fit()
Bir iş akışında fit(wf, data = train) çağrıldığında, reçete eğitim verileri kullanılarak otomatik olarak prep() ile hazırlanır ve ardından model önceden işlenmiş özellikler üzerinde eğitilir. prep() veya bake() işlevlerini hiçbir zaman elle çağırmanız gerekmez.
fitted_wf <- fit(wf, data = housing_train)
# The fitted workflow stores both the prepped recipe
# and the trained model
print(fitted_wf)Eğitilmiş İş Akışında predict()
predict(fitted_wf, new_data = test) çağrıldığında iş akışı, tahminleri oluşturmadan önce eğitilmiş reçeteyi kullanarak yeni verilere otomatik olarak bake() uygular. Böylece sınama verilerini ön işlemden geçirmeyi unutma riski ortadan kalkar.
# 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() — Tümüyle Eğitme, Sınama Verileriyle Değerlendirme
last_fit(wf, split), son iş akışınızı ve başlangıçtaki eğitim/sınama bölme nesnesini alır. İş akışını eğitim bölümüne uyarlar ve sınama bölümünde değerlendirir. Bu, ayarlama tamamlandıktan sonraki standart son model değerlendirme adımıdır.
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), eğitilmiş parsnip model nesnesini eğitilmiş bir iş akışından çıkarır. Daha sonra bunu katsayıları ve değişken önemini incelemek ya da model açıklama araçlarına aktarmak için kullanabilirsiniz.
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 plotextract_recipe()
extract_recipe(fitted_wf), eğitilmiş bir iş akışındaki hazırlanmış reçeteyi döndürür. Bu, hangi dönüşümlerin uygulandığını incelemek veya eğitilmiş ön işlemeyi dış verilerde bağımsız olarak uygulamak üzere almak için kullanışlıdır.
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)İş Akışlarında augment()
augment(fitted_wf, new_data), girdi veri çerçevesini tahmin sütunları eklenmiş hâliyle döndürür. Regresyonda .pred ekler; sınıflandırmada ise .pred_class ile her sınıf için olasılık sütunlarını ekler.
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)İş Akışını Güncelleme
Bir iş akışının tek tek bileşenlerini baştan oluşturmadan update_recipe() veya update_model() ile güncelleyebilirsiniz. Aynı reçeteyi korurken model motorunu değiştirmek istediğiniz denemelerde bu özellik kullanışlıdır.
# 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() ve add_recipe() Karşılaştırması
Bir reçeteye ihtiyacınız yoksa ön işleyici olarak add_formula(outcome ~ .) kullanabilirsiniz. Bu, yalnızca formül belirtimini uygulayarak en az düzeyde dönüşüm gerçekleştirir. Özellik mühendisliğine ihtiyacınız olduğunda add_recipe(), hızlı başlangıç modelleri için ise add_formula() kullanın.
# 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)Karşılaştırma için İş Akışı Kümeleri
workflowsets paketindeki workflow_set(), birden fazla reçeteyi ve model belirtimini birleştiren iş akışlarından oluşan bir koleksiyon oluşturur. Ardından workflow_map() ile tüm birleşimleri aynı anda ayarlayıp değerlendirebilirsiniz.
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)Kısa Kontrol
last_fit(workflow, split) kullanmanın elle uyarlama ve tahmin yapmaya göre temel avantajı nedir?
İş Akışları Özeti
Reçeteleri ve Modelleri Birleştiren İş Akışları dersinden önemli noktalar:
workflow() |> add_recipe(rec) |> add_model(spec), ön işleme ile modellemeyi tek yapıda birleştirir.fit(wf, data = train), reçeteyi hazırlar ve modeli tek çağrıda eğitir.predict(fitted_wf, new_data), tahmin yapmadan önce yeni verileri otomatik olarak hazırlar.last_fit(wf, split), eğitim verileriyle eğitir ve sınama verileriyle değerlendirir; son model değerlendirmesi için kullanın.extract_fit_parsnip()veextract_recipe(), inceleme amacıyla bileşenleri alır.augment(), ölçüt hesaplamayı kolaylaştırmak için tahminleri veri çerçevesine ekler.workflow_set(), birden fazla reçete-model birleşimini eş zamanlı olarak karşılaştırır.
# 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)Sıkça Sorulan Sorular
“İş Akışları: Tarifleri ve Modelleri Birleştirme” dersi ücretsiz mi?
Evet — “İş Akışları: Tarifleri ve Modelleri Birleştirme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve R Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. R Academy kursu toplamda 4 dersten oluşur.
“İş Akışları: Tarifleri ve Modelleri Birleştirme” dersinde ne öğreneceğim?
Ön işlemeyi ve modeli tek bir iş akışı nesnesinde bir araya getirin. R Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
R Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te R Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“İş Akışları: Tarifleri ve Modelleri Birleştirme” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu R Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her R Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- recipes ile Özellik Mühendisliği
- parsnip ile Model Belirtimleri
- İş Akışları: Tarifleri ve Modelleri Birleştirme
- rsample ile Yeniden Örnekleme ve Çapraz Doğrulama