0Pricing
R Academy · Ders

parsnip ile Model Belirtimleri

Model türlerini ve motorlarını eğitim adımından bağımsız olarak belirtin.

parsnip ile Model Belirtimleri, CoddyKit'te ücretsiz bir R Academy dersidir. Bu, 4 dersinin 2. 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.

parsnip Nedir?

parsnip, yüzlerce model motoru için birleşik bir arayüz sağlar. Her paketin kendine özgü söz dizimini (glm(), randomForest(), e1071::svm()) öğrenmek yerine tek bir tutarlı belirtim yazar ve parsnip'e temel olarak hangi motoru kullanacağını söylersiniz.

Böylece tek bir bağımsız değişkeni değiştirerek motorları değiştirebilirsiniz — örneğin Bayesçi lojistik regresyon için glm yerine stan kullanabilirsiniz.

library(parsnip)

# The same interface, different engines
logistic_reg() |> set_engine('glm')    # base R
logistic_reg() |> set_engine('glmnet') # regularized
logistic_reg() |> set_engine('stan')   # Bayesian

Sınıflandırma için logistic_reg()

logistic_reg(), ikili sınıflandırma için lojistik regresyon modelini belirtir. R'nin yerleşik GLM motorunu kullanmak için set_engine('glm') zincirini ekleyin ve görev türünü açıkça bildirmek için set_mode('classification') kullanın.

Her iki görevi de destekleyen model türleri için kipin ('classification' veya 'regression') belirtilmesi gerekir.

log_spec <- logistic_reg() |>
  set_engine('glm') |>
  set_mode('classification')

print(log_spec)
# Logistic Regression Model Specification (classification)
# Computational engine: glm

tune() ile rand_forest()

rand_forest(), rastgele orman modelini belirtir. mtry (bölme başına özellik sayısı) ve trees gibi parametreler sabitlenebilir veya hiperparametre araması için yer tutucu olarak tune() şeklinde ayarlanabilir.

tune() aktardığınızda tidymodels, çapraz doğrulama sırasında bir değerler ızgarası üzerinde arama yapar.

rf_spec <- rand_forest(
  mtry  = tune(),
  trees = 500,
  min_n = tune()
) |>
  set_engine('ranger', importance = 'impurity') |>
  set_mode('classification')

print(rf_spec)

Regresyon için linear_reg()

linear_reg() doğrusal regresyon modelini belirtir. set_engine('lm') kullanıldığında sıradan en küçük kareler yöntemi uygulanırken set_engine('glmnet'), penalty ve mixture parametreleri aracılığıyla L1/L2 düzenlileştirmesini etkinleştirir.

# OLS linear regression
lm_spec <- linear_reg() |>
  set_engine('lm')

# Ridge regression (penalty > 0, mixture = 0)
ridge_spec <- linear_reg(penalty = 0.01, mixture = 0) |>
  set_engine('glmnet')

# Lasso (penalty > 0, mixture = 1)
lasso_spec <- linear_reg(penalty = tune(), mixture = 1) |>
  set_engine('glmnet')

boost_tree() — Gradyan Artırma

boost_tree() gradyan artırmalı ağaç modelini belirtir. xgboost, lightgbm veya C5.0 motorunu hedefleyebilirsiniz. Ayarlanabilir parametreler arasında tree_depth, learn_rate ve loss_reduction bulunur.

xgb_spec <- boost_tree(
  trees      = 500,
  tree_depth = tune(),
  learn_rate = tune(),
  loss_reduction = tune()
) |>
  set_engine('xgboost') |>
  set_mode('classification')

print(xgb_spec)

fit() — Modeli Eğitme

fit(spec, formula, data), model belirtimini gerçek veriler üzerinde eğitir. parsnip, belirtimi dahili olarak uygun motor çağrısına dönüştürür. Sonuç, eğitilmiş bir parsnip model nesnesidir.

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

# Fit the model on training data
lm_fit <- fit(lm_spec, mpg ~ wt + hp + cyl, data = mtcars)

# The fitted object wraps the engine result
print(lm_fit)

# Access the underlying lm object
extract_fit_engine(lm_fit)

fit_xy() — Matris Arayüzü

fit_xy(spec, x, y), fit(spec, formula, data) işlevine bir alternatiftir. Bir tahminci matrisi olan x'i ve yanıt vektörü olan y'yi doğrudan kabul eder. Bu, verileriniz sayısal bir matrise önceden işlenmişse kullanışlıdır; sinir ağlarında veya XGBoost'ta bu durum yaygındır.

x_train <- train_baked |> select(-price)
y_train <- train_baked$price

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

# Matrix-style fit
lm_fit_xy <- fit_xy(lm_spec, x = x_train, y = y_train)

print(lm_fit_xy)

translate() — Motor Kodunu Görüntüleme

translate(spec), belirli bir motor için parsnip'in arka planda tam olarak ne çağıracağını gösterir. Bu işlev, hataları ayıklamak veya parsnip belirtiminizin motorun yerel arayüzüne nasıl eşlendiğini anlamak için son derece değerlidir.

rf_spec <- rand_forest(mtry = 3, trees = 500) |>
  set_engine('ranger') |>
  set_mode('classification')

# See what ranger() call will be generated
translate(rf_spec)

# ranger::ranger(formula = ..., data = ...,
#   num.trees = 500, mtry = 3, ...)

parsnip ile predict()

Tüm eğitilmiş parsnip modelleri aynı predict() arayüzünü paylaşır. Sınıflandırmada type = 'class' tahmin edilen sınıfı, type = 'prob' ise sınıf olasılıklarını döndürür. Bu tutarlılık, parsnip'in başlıca avantajlarından biridir.

log_fit <- fit(logistic_reg() |> set_engine('glm') |> set_mode('classification'),
               species ~ ., data = train_df)

# Predicted classes
predict(log_fit, new_data = test_df, type = 'class')

# Predicted probabilities
predict(log_fit, new_data = test_df, type = 'prob')

augment() — Veriye Eklenen Tahminler

augment(fitted_model, new_data), tahmin sütunlarını doğrudan girdi veri çerçevesine ekler. Bu, değerlendirme için kullanışlıdır: sonuç, gerçek değerleri ve tahminleri yan yana içerir ve ölçüt hesaplamaya hazırdır.

log_fit <- fit(
  logistic_reg() |> set_engine('glm') |> set_mode('classification'),
  species ~ ., data = train_df
)

# Get predictions joined to test data
results <- augment(log_fit, new_data = test_df)
head(results[, c('species', '.pred_class', '.pred_setosa')])

Model Belirtimlerini Karşılaştırma

parsnip'in başlıca faydalarından biri modelleri hızlıca karşılaştırabilmektir. Birden fazla belirtim tanımlar, hepsini aynı verilere uyarlar ve ölçütleri karşılaştırırsınız. Arayüz aynı olduğundan model değiştirmek için yalnızca belirtim tanımını değiştirmeniz gerekir.

specs <- list(
  lm    = linear_reg() |> set_engine('lm'),
  ridge = linear_reg(penalty = 0.01, mixture = 0) |> set_engine('glmnet'),
  rf    = rand_forest(trees = 200) |> set_engine('ranger') |> set_mode('regression')
)

fits <- lapply(specs, fit, mpg ~ ., data = train_mtcars)

preds <- lapply(fits, predict, new_data = test_mtcars)

rmse_vals <- sapply(preds, function(p) {
  sqrt(mean((p$.pred - test_mtcars$mpg)^2))
})
print(rmse_vals)

Kısa Kontrol

parsnip'te translate(spec) ne döndürür?

parsnip Özeti

parsnip ile Model Belirtimleri dersinden önemli noktalar:

  • parsnip birleşik bir arayüz sağlar: model türünü, motoru ve modu birbirinden bağımsız olarak belirtirsiniz.
  • set_engine() temel paketi, set_mode() ise sınıflandırma veya regresyonu seçer.
  • Daha sonra aranacak hiperparametreler için yer tutucu olarak tune() kullanın.
  • fit(spec, formula, data) modeli eğitir; fit_xy(spec, x, y) matrisleri kabul eder.
  • predict(fit, new_data, type) tüm motorlarda tutarlıdır.
  • translate(spec), hata ayıklama için motor çağrısını gösterir.
  • augment(fit, new_data), tahminleri veri çerçevesine ekler.
# Parsnip model comparison template
spec <- rand_forest(trees = 500, mtry = tune()) |>
  set_engine('ranger', importance = 'impurity') |>
  set_mode('classification')

print(translate(spec))

# When mtry is fixed:
spec_fixed <- rand_forest(trees = 500, mtry = 5) |>
  set_engine('ranger') |>
  set_mode('classification')
fit_fixed <- fit(spec_fixed, label ~ ., data = train_df)

Sıkça Sorulan Sorular

“parsnip ile Model Belirtimleri” dersi ücretsiz mi?

Evet — “parsnip ile Model Belirtimleri” 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.

“parsnip ile Model Belirtimleri” dersinde ne öğreneceğim?

Model türlerini ve motorlarını eğitim adımından bağımsız olarak belirtin. 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 2. dersidir.

“parsnip ile Model Belirtimleri” 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

  1. recipes ile Özellik Mühendisliği
  2. parsnip ile Model Belirtimleri
  3. İş Akışları: Tarifleri ve Modelleri Birleştirme
  4. rsample ile Yeniden Örnekleme ve Çapraz Doğrulama
← R Academy Sayfasına Dön