BaşlayınÜcretsiz başlayın

Gradient boosted trees: modelleme

Gradient boosting, diğer modellerin performansını iyileştirmek için kullanılan bir tekniktir. Fikir şu: Zayıf ama hesaplaması kolay bir model çalıştırırsın. Sonra yanıt değerlerini bu modelin artık değerleriyle (residual) değiştirir ve başka bir model kurarsın. Orijinal yanıt tahmin modeli ile yeni artık değer tahmin modelini "ekleyerek" daha isabetli bir model elde edersin. Bu süreci tekrar tekrar uygulayabilir, önceki modellerin artıklarını tahmin eden yeni modeller çalıştırabilir ve sonuçları ekleyebilirsin. Her yinelemede model giderek güçlenir.

Daha somut bir örnek vermek gerekirse, sparklyr gradient boosted trees kullanır; yani zayıf-ama-hesaplaması-kolay model olarak karar ağaçlarıyla gradient boosting yapar. Bunlar hem sınıflandırma problemlerinde (yanıt değişkeni kategorik olduğunda) hem de regresyon problemlerinde (yanıt değişkeni sürekli olduğunda) kullanılabilir. Burada kullanacağın regresyon durumunda, bir noktanın ne kadar kötü uydurulduğunun ölçüsü artık değerdir.

Karar ağaçları hakkında daha ayrıntılı bilgi için Supervised Learning in R: Classification ve Supervised Learning in R: Regression kurslarına bakabilirsin. İkincisi ayrıca gradient boosting konusunu da kapsar.

sparklyr içinde bir gradient boosted trees modeli çalıştırmak için ml_gradient_boosted_trees() fonksiyonunu çağır. Bu fonksiyonun kullanımı bu bölümün ilk egzersizinde tartışılmıştı.

Bu egzersiz, kursun bir parçasıdır

R ile sparklyr kullanarak Spark’a Giriş

Kursa Göz Atın

Egzersiz talimatları

spark_conn olarak bir Spark bağlantısı senin için oluşturuldu. Spark'ta saklanan birleştirilmiş ve filtrelenmiş parça meta verisi/timbre verisine bağlı bir tibble track_data_to_model_tbl olarak önceden tanımlandı.

  • Özellik olarak kullanmak üzere "timbre" dizesini içeren sütunları al.
    • track_data_to_model_tbl'nin sütun adlarını almak için colnames() kullan. names() istediğin sonucu vermez, buna dikkat et.
    • Sütunları filtrelemek için str_subset() kullan.
    • Bu fonksiyonun pattern argümanı fixed("timbre") olmalı.
    • Sonucu feature_colnames değişkenine ata.
  • Model için formula oluşturmak üzere reformulate() kullan.
    • termlabels argümanı (formülün girdileri) feature_colnames olmalı.
    • response argümanı (formülün çıktısı) "year" olmalı.
    • Sonucu year_formula değişkenine ata.
    • reformulate()'i bu şekilde kullanmak, feature_colnames içindeki tüm değişkenleri + işaretiyle birleştirerek formula'nın sağ tarafını oluşturur. Bu da modelde yer alacak değişkenler arasındaki ilişkiyi tanımlayan year ~ timbre1 + timbre2 + ... + timbre12 şeklinde bir formül verir.
  • Gradient boosting modelini çalıştır.
    • ml_gradient_boosted_trees() fonksiyonunu, tek argüman olarak oluşturduğun year_formula ile çağır.
    • Sonucu gradient_boosted_trees_model değişkenine ata.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

# track_data_to_model_tbl has been pre-defined
track_data_to_model_tbl

feature_colnames <- track_data_to_model_tbl %>%
  # Get the column names
  ___ %>%
  # Limit to the timbre columns
  ___(___(___))

feature_colnames

# Create the formula for the model
year_formula <- ___

gradient_boosted_trees_model <- track_data_to_model_tbl %>%
  # Run the gradient boosted trees model
  ___
Kodu Düzenle ve Çalıştır