Uygulanabilir yemek tarifleri öneren bir algoritma nasıl tasarlanır?


15

Bir keresinde kursumda yemek tarifleri önerecek bir algoritma oluşturan bir gazi vardı. İlk başta, her türlü çılgın tarif ortaya çıkacaktı. Daha sonra, pişirme algoritmasını gerçek tariflerle eğitecek ve sonunda çok iyi olanları önerecektir.

Bayes Teoremi veya Kümeleme ile ilgili bir şey kullandığına inanıyorum, ama çoktan gitti ve algoritma da öyle. İnternette arama yaptım ama yemek tarifleri aramak her türlü sonucu getirecek, ancak aradığımdan değil. Benim sorum şu:

(Rasgele) uygulanabilir tarifler öneren bir algoritmayı tasarlamak için hangi teknikler kullanılabilir (sabit tarifler veritabanı kullanılmadan)?

Neden bir pişirme algoritması aramaya çalışayım ki? Temel kavramların gerçek dünya uygulamasının çok iyi bir örneğiydi ve bu algoritma, gerçek dünyaya daha yakın olan farklı ortamlarda yararlı olabilir.


1
Çeşitli evrimsel algoritma
Henry

7
... veya hafif rahatlama için, bu xkcd
Henry'den

2
@Henry: Ve fitness için hangi işlevi kullanırdınız? Sorunun ana noktası budur!
Raphael

1
Kapatmaya oy veren kişi, oyunun arkasındaki nedeni açıklayabilir mi? Sebep göstermeden kapanmaya oy vermek OP'nin sorusunu geliştirmesine yardımcı olmaz.
Alex ten Brink

1
Yorumlar sorunun kendisinden daha egzotik görünüyor.
Oeufcoque Penteano

Yanıtlar:


4

Hmm, eski tariflerden yeni tarifler yapmak için Bayes Teoremini kullanarak. Öncelikle algoritmanın malzemeleri anladığı bir forma ayırmasını istediğinizi düşünüyoruz (bunun için NLP kullanıp kullanmadığımızdan veya verileri kendinize manuel olarak girdiğinizden emin değilim, ne burada ne de orada.) .

Böyle bir şey öngörüyorum.

Test Verileri analiz edildi. Şimdi bir tarifler listesi ve her bir bileşenin başka bir bileşenle birlikte ve hangi miktarlarda gerçekleşme olasılıkları var. Bu verilere sahip olduktan sonra, program yeni tarifleri rastgele yapar. İlk önce bilinen tüm bileşenlerin bir listesi arasında geçiş yapar, daha sonra rastgele bir ana bileşen seçer, oradan başka bir bileşen verilen bir bileşenin olasılıklarını kullanarak daha rastgele bileşenler atmaya başlamak için kullanır, bu arada miktarlar için uygun eğitilmiş veriler eşleşir ve uyumlu malzemeler.

Yeni bir tarif oluştururken, programa tatlı bir şey veya ekşi bir şey veya örneğin çoğunlukla buğdaydan oluşan bir şey istiyorum gibi bilgi verilmesini öneririm.

Umarım bu biraz yardımcı olur.


3

Yaklaşık 2000 tarifin ABD merkezli geniş bir veri kümesi için Silahlı Kuvvetler Tarif Servisi'ne bakabilirsiniz . Bu, sorunuza cevap vermez, ancak size gerçek dünyadaki eğitim verilerini sağlar.

Sorunun gerekliliklerinin çoğu insan için açıkça ifade edilmesi zordur ve seçilen yaklaşım muhtemelen uygunluğu önerdiğiniz şekilde dolaylı olarak ayarlayacaktır. Geenral'daki yiyecekler kültüre özgüdür ve yaklaşım kapsamlı bir ayarlama yapmadan muhtemelen çok kötü seyahat edecektir.

Bu aynı zamanda sadece bir içerik listesinden daha fazlasını hazırlamak için önemli bir sematik ve alan bilgisine ihtiyaç duyar. Sonuçta, gofret, kafe au lait ve kruvasan ve tira misu ile kahve aromalı dondurma aksi ayırt edilemez.


"Bu soruya cevap vermiyor" - tam olarak, bu yüzden bir yorum olmalı. Henüz yorum yapma izniniz olmadığını görüyorum; Dönüşüm için işaretledim.
Raphael

@Raphael: bunu dönüştürmüyor, çünkü çok uzun ve - ideal bir cevap olmasa da - bir bütün olarak sorunu ele almaya çalışıyor. Yararsız olduğunu düşünüyorsanız, lütfen aşağı oy verin. Pekka, bu yeni mutfak sanatının en verimli kaynağı olmasa da, ilginç ve ilişkilendirilebilir bir sorundur ... Böyle bir algoritma geliştirmenin özelliklerini tartışmak için cevabınızı genişletebilirseniz, daha kabul edilebilir olabilir.
Shog9

3

Reçete oluşturma, Vaka Bazlı Akıl Yürütme sistemleri için örnek uygulama olarak yaygın olarak kullanılmaktadır. Wikipedia Sayfasında örnek olarak bile kullanılır . "Vaka tabanlı muhakeme tarifleri" için yapılan bir Google araması sayısız sonuç verir.


1

Aradığınız algoritma sınıfı eşkıyalardan biridir. Genellikle bir sınıflandırma probleminin keşif kısmını ele almak için kullanılırlar.

Temel bir yaklaşım, tarifleri sınırlı bir bileşen torbası (en fazla k 0 olmayan değere sahip booleans vektörü) olarak temsil etmek ve bir bileşen kümesi seçmek için LinUCB'yi kullanmak olacaktır. O zaman geri bildirim 'beğen' veya 'beğenme' olacaktır. Tabii ki bir bayesiyseniz Trueskill'i (Adpredictor varyantını kullanarak) kullanmayı tercih edebilirsiniz.

Daha az temel bir şey için doğrusal ayırma yerine bir çekirdek kullanılması gerekir. Çekirdek ucb bu parçayı ele almaya yardımcı olabilir. Ama bir noktada, ittifakların kimyasal bileşimlerine dikkat etmenin faydalı olacağını düşünüyorum, çünkü sonunda muhtemelen farklı temel tatlar arasında bir denge kurmak istersiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.