Son zamanlarda benzer bir sorunla karşılaştım: Hepsinin ne olacağını önceden bilmeden, büyük bir veri kümesinden çeşitli özelliklerin çıkarılması nasıl yönetilir. (Ortalama değerleri tekrar tekrar hesaplamak bile hesaplama açısından pahalı olacaktır.) Ayrıca, farklı özellik kümelerine dayalı tahminleri nasıl yönetebilirim? Yani, yeni bir özellik ekleseydim, hangi özellikleri yeni özellikler konusunda eğiteceğini nasıl bilebilirim? Hızla büyük bir karmaşa içine kartopu olabilir.
Şu anki çözümüm hepsini yerel bir NoSQL veritabanında (MongoDB) izlemek. Örneğin features
, her girdisinin bir adı, özelliğin nasıl hesaplandığına ilişkin bir açıklama, ayıklamayı çalıştıran python dosyası vb.Gibi bir koleksiyonum olabilir .
Benzer şekilde, bir koleksiyon models
veriler üzerinde çalışan modelleri içerir. Her girişin bir adı, modeli eğitmek için kullanılan özelliklerin bir listesi, nihai parametreleri, bir beklemedeki test setindeki tahmini değerler, modelin nasıl performans gösterdiğine ilişkin metrikler vb.
Bakış açımdan, bunun birkaç faydası var:
- Tahminleri kaydederek bunları daha sonra topluluk tahminlerinde kullanabilirim.
- Hangi özelliklerin kullanıldığını takip ettiğim için, daha fazla özellik çıkardığımda hangilerinin yeniden eğitilmesi gerektiğini biliyorum.
- Model açıklamalarını kaydederek, ne denediğimi her zaman bildiğimi garanti ederim. Hiç merak etmem gerekmiyor, "LASSO'yu ızgara arama özgeçmişiyle ayarlanan düzenleme parametreleriyle denedim mi?" Her zaman arayabilirim ve ne kadar başarılı olduğunu görebilirim.
Sorunuzdan, bu yaklaşımı probleminizin iş akışına uyarlayabileceğiniz anlaşılıyor. Mongo'yu veya başka bir tercih edilen veritabanını kurun ve ardından her deneysel çalışmayı, girdilerini, sonuçlarını ve proje boyunca izlemek isteyebileceğiniz her şeyi kaydedin. Bunun sorgulanması en azından bir e-tablodan çok daha kolay olmalıdır.