0Pricing
R Academy · Ders

rsample ile Yeniden Örnekleme ve Çapraz Doğrulama

Modelleri k-katlı CV, bootstrap ve iç içe yeniden örneklemeyle değerlendirin.

rsample ile Yeniden Örnekleme ve Çapraz Doğrulama, CoddyKit'te ücretsiz bir R Academy dersidir. Bu, 4 dersinin 4. 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.

Yeniden Örnekleme Neden Yapılır?

Tek bir eğitim/sınama bölmesi, model performansına ilişkin gürültülü bir tahmin verir; hangi gözlemlerin sınama kümesine düştüğü konusunda şanslı veya şanssız olabilirsiniz. Yeniden örnekleme, modelinizin yeni verilere ne kadar iyi genelleyeceğine ilişkin kararlı ve güvenilir bir tahmin elde etmek için bu süreci birden çok kez yineler.

library(rsample)

# Single split — performance estimate depends heavily
# on which 20% ended up as test data
split <- initial_split(mtcars, prop = 0.8)
train <- training(split)
test  <- testing(split)

cat('Train:', nrow(train), '| Test:', nrow(test))

initial_split()

initial_split(data, prop, strata), verileri eğitim ve sınama kümelerine ayıran tek bir rastgele bölme oluşturur. Her iki bölümde de sınıf dengesinin korunmasını sağlamak amacıyla bir sütuna (örneğin sonuç değişkenine) göre katmanlı bölme yapmak için strata kullanın.

library(rsample)

# Stratified split by outcome variable
split <- initial_split(ames, prop = 0.8, strata = Sale_Price)

train <- training(split)
test  <- testing(split)

cat('Train rows:', nrow(train))
cat('Test rows:', nrow(test))

vfold_cv() — K Katlı Çapraz Doğrulama

vfold_cv(data, v = 10), 10 kat oluşturur. Veriler 10 eşit parçaya bölünür; 9 parça eğitim, 1 parça doğrulama için kullanılır ve tüm katlar sırayla işlenir. Böylece kararlı bir ölçüt elde etmek üzere ortalaması alınan 10 performans tahmini oluşur.

folds <- vfold_cv(housing_train, v = 10, strata = price)

# Each fold is a split object
print(folds)

# Inspect one fold
fold_1 <- folds$splits[[1]]
train_1 <- analysis(fold_1)
val_1   <- assessment(fold_1)
cat('Fold 1 — Train:', nrow(train_1), '| Val:', nrow(val_1))

fit_resamples()

fit_resamples(workflow, resamples, metrics), iş akışınızı her eğitim katına uyarlar ve doğrulama katında değerlendirerek istenen ölçütleri toplar. Sonuçları collect_metrics() ile özetleyebileceğiniz bir tibble döndürür.

library(tune)

folds <- vfold_cv(housing_train, v = 10)

res <- fit_resamples(
  wf,       # your workflow
  folds,
  metrics = metric_set(rmse, rsq)
)

# Average metric across all 10 folds
collect_metrics(res)

collect_metrics()

collect_metrics(resample_result), tüm katlarda model performansını özetleyen düzenli bir tibble döndürür. mean sütunu ortalama ölçütü, std_err ise standart hatayı gösterir ve tahmindeki varyans hakkında fikir verir.

metrics_df <- collect_metrics(res)
print(metrics_df)

#   .metric .estimator   mean  n std_err .config
#   rmse    standard    24500  10   1200  Preprocessor1_Model1
#   rsq     standard    0.882  10  0.012  Preprocessor1_Model1

# Pull a single metric
collect_metrics(res) |>
  dplyr::filter(.metric == 'rmse') |>
  dplyr::pull(mean)

bootstraps() — Bootstrap Yeniden Örneklemesi

bootstraps(data, times = 25), bootstrap örnekleri oluşturur: her örnek, özgün veri kümesiyle aynı boyutta ve yerine koymalı olarak yapılan rastgele bir çekimdir. Çekilmeyen gözlemler, örneklem dışı (OOB) değerlendirme kümesini oluşturur. Bootstrap yöntemlerinin varyansı k katlı yönteme göre daha yüksektir; ancak küçük veri kümelerinde iyi çalışırlar.

boot_samples <- bootstraps(housing_train, times = 25, strata = price)

print(boot_samples)

# Average proportion of unique rows in each bootstrap
mean(sapply(boot_samples$splits, function(s) {
  nrow(analysis(s)) / nrow(housing_train)
}))

Monte Carlo Çapraz Doğrulaması

mc_cv(data, prop, times), her biri verilerin prop oranını eğitim için kullanan times adet rastgele bölme oluşturur. K katlı yöntemin aksine aynı gözlem doğrulama kümesinde birden çok kez yer alabilir. Bu yöntem, k katlı yöntemin sağladığından daha fazla yeniden örnekleme yinelemesine ihtiyaç duyduğunuzda kullanışlıdır.

mc_splits <- mc_cv(housing_train, prop = 0.8, times = 20)

res_mc <- fit_resamples(
  wf,
  mc_splits,
  metrics = metric_set(rmse, rsq)
)

collect_metrics(res_mc)

tune_grid() — Hiperparametre Araması

İş akışınızda tune() yer tutucuları bulunduğunda, bir hiperparametre değerleri ızgarasında arama yapmak için tune_grid(wf, resamples, grid) kullanın. Her birleşim tüm katlarda değerlendirilir ve en iyi yapılandırma select_best() ile seçilir.

rf_spec <- rand_forest(mtry = tune(), trees = tune()) |>
  set_engine('ranger') |>
  set_mode('regression')

wf_tune <- workflow() |> add_recipe(rec) |> add_model(rf_spec)

grid <- grid_regular(mtry(range = c(2, 10)), trees(range = c(100, 500)), levels = 3)

tune_res <- tune_grid(wf_tune, resamples = folds, grid = grid)
collect_metrics(tune_res) |> head()

select_best() ve finalize_workflow()

Ayarlamadan sonra select_best(tune_res, metric), ortalama ölçütü en iyi olan hiperparametre birleşimini seçer. finalize_workflow(wf, best_params), tune() yerine bu değerleri yerleştirerek yeni bir iş akışı oluşturur.

best_params <- select_best(tune_res, metric = 'rmse')
print(best_params)

# Substitute best values into the workflow
final_wf <- finalize_workflow(wf_tune, best_params)

# Fit on all training data, evaluate on test
final_fit <- last_fit(final_wf, split)
collect_metrics(final_fit)

İç İçe Çapraz Doğrulama

Hiperparametreleri de ayarladığınızda gerçekten tarafsız bir değerlendirme için iç içe çapraz doğrulama kullanın: performans tahmini için dış döngü, ayarlama için iç döngü kullanılır. rsample'da bir dış vfold_cv oluşturun ve iç katları kullanarak her dış kat içinde ayarlama yapın.

# Outer folds for unbiased evaluation
outer_folds <- vfold_cv(housing_train, v = 5)

# For each outer fold, tune on the inner training data
res_nested <- tune_grid(
  wf_tune,
  resamples = outer_folds,
  grid = 10,  # 10 random configurations
  metrics = metric_set(rmse)
)

collect_metrics(res_nested)

Yeniden Örnekleme Stratejilerini Karşılaştırma

Her yeniden örnekleme stratejisinin farklı avantaj ve dezavantajları vardır. Seçiminizi veri kümenizin boyutuna ve hesaplama bütçenize göre yapın:

  • k katlı (v=10): Düşük yanlılık, orta düzeyde varyans. Çoğu sorun için varsayılan seçimdir.
  • Bootstrap: Çok küçük verilerle çalışır; k katlı yönteme göre varyansı daha yüksektir.
  • Monte Carlo CV: Daha esnektir; zaman kısıtlı ayarlama için uygundur.
  • Yinelenmiş k katlı: Daha düşük varyans sağlar; daha fazla hesaplama gücü ayırabildiğinizde kullanın.
# Repeated k-fold: 5-fold repeated 3 times = 15 models fitted
repeated_folds <- vfold_cv(housing_train, v = 5, repeats = 3)

res_rep <- fit_resamples(
  wf,
  repeated_folds,
  metrics = metric_set(rmse, rsq)
)

collect_metrics(res_rep)

Kısa Kontrol

fit_resamples() sonucuna uygulandığında collect_metrics() ne döndürür?

Yeniden Örnekleme Özeti

rsample ile Yeniden Örnekleme ve Çapraz Doğrulama dersinden önemli noktalar:

  • initial_split(data, prop, strata), katmanlı bir eğitim/sınama bölmesi oluşturur.
  • vfold_cv(data, v = 10), k katlı çapraz doğrulama katları oluşturur.
  • bootstraps(data, times), küçük veri kümeleri için bootstrap örnekleri oluşturur.
  • fit_resamples(wf, folds, metrics), bir iş akışını tüm katlarda değerlendirir.
  • collect_metrics(), sonuçları ortalama ve standart hatayla özetler.
  • tune_grid() hiperparametreleri arar; select_best() en iyi seçeneği belirler.
  • finalize_workflow() + last_fit(), ayarlamadan kullanıma alma sürecini tamamlar.
# Full rsample pipeline
split  <- initial_split(data, prop = 0.8, strata = y)
train  <- training(split)
folds  <- vfold_cv(train, v = 10)

res    <- fit_resamples(wf, folds, metrics = metric_set(rmse, rsq))
collect_metrics(res)

# After tuning
best   <- select_best(tune_res, metric = 'rmse')
fin_wf <- finalize_workflow(wf_tune, best)
last_fit(fin_wf, split) |> collect_metrics()

Sıkça Sorulan Sorular

“rsample ile Yeniden Örnekleme ve Çapraz Doğrulama” dersi ücretsiz mi?

Evet — “rsample ile Yeniden Örnekleme ve Çapraz Doğrulama” 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.

“rsample ile Yeniden Örnekleme ve Çapraz Doğrulama” dersinde ne öğreneceğim?

Modelleri k-katlı CV, bootstrap ve iç içe yeniden örneklemeyle değerlendirin. 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 4. dersidir.

“rsample ile Yeniden Örnekleme ve Çapraz Doğrulama” 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