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

Sürekli değişkenleri mantıksal (logical) değişkenlere dönüştürme

Mantıksal (logical) değişkenler güzeldir, çünkü çoğu zaman sayılardan ziyade "evet ya da hayır" olarak düşünmek daha kolaydır. Örneğin biri sana "Bir fincan çay ister misin?" diye sorduğunda, "Bir fincan çay isteme olasılığım 0.73" demektense evet ya da hayır demek daha uygundur. Bunun gerçek veri bilimi uygulamaları da var. Örneğin, diyabet testi bir hastanın plazma glukoz konsantrasyonunu bir sayı olarak verebilir. Asıl önemsediğin soru "Hastada diyabet var mı?" olduğu için, bu sayıyı bir eşik değere göre mantıksal bir değere dönüştürmen gerekir.

Base R'de bu oldukça basittir, şöyle yapılır:

threshold_mmol_per_l <- 7
has_diabetes <- plasma_glucose_concentration > threshold_mmol_per_l

Tüm sparklyr özellik dönüştürme fonksiyonlarının kullanıcı arayüzü benzerdir. İlk üç argüman her zaman bir Spark tibble'ı, giriş sütununun adını belirten bir string ve çıkış sütununun adını belirten bir string'dir. Yani şu deseni izlerler.

a_tibble %>%
  ft_some_transformation("x", "y", some_other_args)

Sürekli bir değişkeni mantıksala dönüştürmenin sparklyr yolu ft_binarizer() kullanmaktır. Yukarıdaki diyabet örneği aşağıdaki gibi yeniden yazılabilir. Eşik değerinin veri kümesindeki bir sütuna atıfta bulunan bir string değil, bir sayı olması gerektiğine dikkat et.

diabetes_data %>%
  ft_binarizer("plasma_glucose_concentration", "has_diabetes", threshold = threshold_mmol_per_l)

Spark'ın her yerde DoubleType kullanma felsefesine uygun olarak, ft_binarizer() çıktısı aslında mantıksal değil; numeric türündedir. Bu, Spark içinde çalışmaya ve başka dönüşümler yapmaya devam etmen için doğru bir yaklaşımdır; ancak veriyi R'de işlemek istersen, veriyi açıkça mantıksala dönüştürmeyi unutmamalısın. Aşağıdaki, yaygın bir kod desenidir.

a_tibble %>%
  ft_binarizer("x", "is_x_big", threshold = threshold) %>%
  collect() %>%
  mutate(is_x_big = as.logical(is_x_big))

Bu egzersizde, veri kümesi oluşturulduğu sırada sanatçının medyadaki yankısını ölçen, ismi pek de hoş olmayan artist_hotttnesss alanını ele alıyoruz. ggplot2 paketiyle grafik çizme hakkında daha fazla bilgi almak istersen, Introduction to Data Visualization with ggplot2 kursunu inceleyebilirsin.

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 parçaya ait parça meta verilerine bağlı bir tibble track_metadata_tbl olarak önceden tanımlandı.

  • track_metadata_tbl'den hotttnesss adlı bir değişken oluştur.
    • artist_hotttnesss alanını seç.
    • ft_binarizer() kullanarak, artist_hotttnesss 0.5'ten büyük olduğunda true olan is_hottt_or_nottt adlı yeni bir alan oluştur.
    • Sonucu topla (collect).
    • is_hottt_or_nottt alanını mantıksala dönüştür.
  • is_hottt_or_nottt için bir ggplot() çubuk grafiği çiz.
    • ggplot() fonksiyonunun ilk argümanı veri argümanı olan hotttnesss.
    • ggplot() fonksiyonunun ikinci argümanı, aes() içine alınmış is_hottt_or_nottt estetiğidir.
    • Çubukları çizmek için geom_bar() ekle.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

# track_metadata_tbl has been pre-defined
track_metadata_tbl

hotttnesss <- track_metadata_tbl %>%
  # Select artist_hotttnesss
  ___ %>%
  # Binarize to is_hottt_or_nottt
  ___ %>%
  # Collect the result
  ___ %>%
  # Convert is_hottt_or_nottt to logical
  ___

# Draw a barplot of is_hottt_or_nottt
ggplot(___, aes(___)) +
  ___()
Kodu Düzenle ve Çalıştır