Beyan: İyi Özelliklerin Nitelikleri

Ham verileri uygun özellik vektörleriyle eşlemenin yollarını araştırdık, ancak bu, işin yalnızca bir kısmı. Şimdi de bu özellik vektörlerinde ne tür değerlerin gerçekten iyi özellikler olduğunu keşfetmemiz gerekiyor.

Nadiren kullanılan ayrı özellik değerlerinden kaçının

İyi özellik değerleri, bir veri kümesinde 5'ten fazla kez görünmelidir. Böylece model, bu özellik değerinin etiketle nasıl ilgili olduğunu öğrenebilir. Yani, aynı kesikli değere sahip birçok örneğin bulunması, modele özelliği farklı ayarlarda görme ve bunun sonucunda özelliğin ne zaman etiket için iyi bir ön gösterge olduğunu belirleme şansı verir. Örneğin, bir house_type özelliği, değerinin victorian olduğu birçok örnek içerebilir:

house_type: victorian

Buna karşılık, bir özelliğin değeri yalnızca bir kez veya çok nadiren görünüyorsa model, bu özelliğe dayalı tahminlerde bulunamaz. Örneğin, unique_house_id kötü bir özelliktir, çünkü her değer yalnızca bir kez kullanılacağından model bundan bir şey öğrenemez:

unique_house_id: 8SK982ZZ1242Z

Açık ve net anlamları tercih edin.

Her özelliğin projedeki herkes için açık ve net bir anlamı olmalıdır. Örneğin, aşağıdaki iyi özellik açıkça adlandırılmıştır ve değer, ada göre mantıklıdır:

 house_age_years: 27 

Buna karşılık, aşağıdaki özellik değerinin anlamı, onu oluşturan mühendis dışında hiç kimse tarafından anlaşılamaz:

house_age: 851472000

Bazı durumlarda, gürültülü veriler (kötü mühendislik seçimleri yerine) net olmayan değerlere neden olur. Örneğin, aşağıdaki user_age_years öğesi uygun değerleri kontrol etmeyen bir kaynaktan gelmiştir:

user_age_years: 277

"Sihirli" değerleri gerçek verilerle karıştırmayın

İyi kayan nokta özellikleri, özel aralık dışı süreksizlikler veya "sihirli" değerler içermez. Örneğin, bir özelliğin 0 ile 1 arasında bir kayan nokta değeri olduğunu varsayalım. Aşağıdaki gibi değerler uygun olabilir:

quality_rating: 0.82
quality_rating: 0.37

Bununla birlikte, kullanıcı quality_rating girmediyse veri kümesi bunun olmamasını aşağıdaki gibi bir sihirli değerle temsil ediyor olabilir:

quality_rating: -1

Sihirli değerleri açık bir şekilde işaretlemek için quality_rating sağlanıp sağlanmadığını belirten bir Boole özelliği oluşturun. Bu Boole özelliğine is_quality_rating_defined gibi bir ad verin.

Orijinal özellikte, sihirli değerleri aşağıdaki gibi değiştirin:

  • Sonlu bir değer grubu (farklı değişkenler) alan değişkenler için gruba yeni bir değer ekleyin ve özellik değerinin eksik olduğunu belirtmek için bu değeri kullanın.
  • Sürekli değişkenler için, özellik verilerinin ortalama değerini kullanarak eksik değerlerin modeli etkilemediğinden emin olun.

Yayın öncesi istikrarsızlığı hesaba katın

Bir özelliğin tanımı zaman içinde değişmemelidir. Örneğin, şehir adı muhtemelen değişmeyeceğinden aşağıdaki değer yararlıdır. ("br/sao_paulo" gibi bir dizeyi tek sıcak vektöre dönüştürmemiz gerektiğini unutmayın.)

city_id: "br/sao_paulo"

Ancak, başka bir modelin tahmin ettiği değeri elde etmek ek maliyetler de beraberinde getirir. Şu anda "219" değeri Sao Paulo'yu temsil ediyor olabilir ancak bu temsil, diğer modelin gelecekte tekrar çalıştırılmasıyla kolayca değişebilir:

inferred_city_cluster: "219"