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

Zaman Özelliklerini Ayarlama

Bu kursta, eğitim sırasında modele bilgi sızdırmanın bazı tehlikelerinden bahsettik. Veri sızıntısı, modelinin doğruluk metriklerini aşırı iyimser gösterir; ancak gerçek verilerle çalıştırıldığında sonuçlar çoğu zaman hayal kırıklığı yaratır.

Bu egzersizde, DAYSONMARKET değerinin yalnızca tahmin anında elimizde olan bilgiyi yansıtmasını sağlayacağız. Yani, ev hâlâ piyasadaysa, daha kaç gün piyasada kalacağını bilmiyoruz. test_df'i, 2017-12-10 tarihi itibarıyla elimizde olan bilgileri yansıtacak şekilde ayarlamamız gerekiyor.

NOT: Bu örnekte lit() fonksiyonu kullanılacaktır. Bu fonksiyon, bir fonksiyon çağrısında tüm bir sütun beklenirken tekil değer kullanabilmemizi sağlar.

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

PySpark ile Özellik Mühendisliği

Kursa Göz Atın

Egzersiz talimatları

  • Daha sonra kullanmak üzere pyspark.sql.functions içinden şu fonksiyonları içe aktar: datediff(), to_date(), lit().
  • '2017-12-10' tarih string'ini önce lit() ile literal'e çevirip sonra to_date() çağırarak bir pyspark tarihine dönüştür.
  • where() kullanarak OFFMKTDATE değeri split_date'e büyük veya eşit ve LISTDATE değeri split_date'e küçük veya eşit olanları filtreleyip test_df'i oluştur.
  • DAYSONMARKET sütununu, split_date ile LISTDATE arasındaki farkı hesaplayan yeni bir DAYSONMARKET sütunu ile değiştir; tarih hesaplaması için datediff() kullan. Verilen kodla yeni sütunu ve orijinalini incele.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

from pyspark.sql.functions import ____, ____, ____

split_date = ____(____('2017-12-10'))
# Create Sequential Test set
test_df = df.____(df[____] >= ____).____(df[____] <= ____)

# Create a copy of DAYSONMARKET to review later
test_df = test_df.withColumn('DAYSONMARKET_Original', test_df['DAYSONMARKET'])

# Recalculate DAYSONMARKET from what we know on our split date
test_df = test_df.withColumn(____, ____(____, ____))

# Review the difference
test_df[['LISTDATE', 'OFFMKTDATE', 'DAYSONMARKET_Original', 'DAYSONMARKET']].show()
Kodu Düzenle ve Çalıştır