Bunu göstermek için kullanılan en basit örnek, XOR problemidir (aşağıdaki resme bakınız). Size tahmin edilen ve koordinatlarını ve ikili sınıfı içeren veriler verildiğini hayal edin . Makine öğrenme algoritmanızın kendi başına doğru karar sınırını bulmasını bekleyebilirsiniz, ancak ek özelliğini oluşturduysanız , size sınıflandırma için neredeyse mükemmel bir karar kriteri verir ve basit aritmetik kullandığınızda sorun önemsiz hale gelir !xyz= x yz> 0
Bu nedenle, birçok durumda algoritmadan çözümü bulmayı beklerken alternatif olarak, özellik mühendisliği ile sorunu basitleştirebilirsiniz . Basit problemleri çözmek daha kolay ve daha hızlıdır ve daha az karmaşık algoritmalara ihtiyaç duyar. Basit algoritmalar genellikle daha sağlamdır, sonuçlar genellikle daha fazla yorumlanabilir, daha ölçeklenebilir (daha az hesaplama kaynağı, eğitim zamanı vb.) Ve taşınabilir. Londra'daki PyData konferansında verilen Vincent D. Warmerdam'ın harika konuşmasında daha fazla örnek ve açıklama bulabilirsiniz .
Dahası, makine öğrenim pazarlamacılarının size söylediği her şeye inanmayın. Çoğu durumda, algoritmalar "kendi kendine öğrenmez". Genellikle sınırlı bir zamana, kaynağa, hesaplama gücüne sahip olursunuz ve veriler genellikle sınırlı boyuttadır ve gürültülüdür.
Bunu uç noktalara alarak, verilerinizi deney sonucunun el yazısı notlarının fotoğrafları olarak sunabilir ve bunları karmaşık sinir ağına aktarabilirsiniz. Önce resimlerdeki verileri tanımayı, sonra onu anlamayı ve öngörülerde bulunmayı öğrenirdi. Bunu yapmak için, modeli eğitmek ve ayarlamak için güçlü bir bilgisayara ve çok zamana ihtiyacınız olacak ve karmaşık sinir ağı kullanarak büyük miktarda veriye ihtiyacınız olacak. Verileri bilgisayar tarafından okunabilen bir biçimde (sayı tabloları gibi) sağlamak, tüm karakter tanıma işlemlerine ihtiyaç duymadığınız için sorunu büyük ölçüde basitleştirir. Özellik mühendisliğini, verileri anlamlı yaratacak şekilde dönüştürdüğünüz bir sonraki adım olarak düşünebilirsiniz.özellikleri, böylece algoritması kendi başına anlamak için daha az sahiptir. Bir benzetme yapmak için, yabancı bir dilde bir kitap okumak istemeniz gerekir, böylece ilk önce dili öğrenmek zorunda kaldınız, anladığınız dile çevrilmiş olarak okumak.
Titanik veri örneğinde, algoritmanızın aile üyelerini toplamanın "aile büyüklüğü" özelliğini elde etmek için mantıklı olduğunu bulması gerekir (evet, burada kişiselleştiriyorum). Bu, bir insan için bariz bir özelliktir, ancak verileri sayıların yalnızca bir sütunu olarak görüp görmediğiniz belli değildir. Diğer sütunlarla birlikte ele alındığında hangi sütunların anlamlı olduğunu bilmiyorsanız, algoritma bu tür sütunların olası her bir kombinasyonunu deneyerek çözebilir. Elbette, bunu yapmanın akıllıca yollarına sahibiz, ancak bilgiler algoritmaya hemen verilirse, yine de çok daha kolaydır.