Однажды в моем курсе был ветеран, который создал алгоритм, который предлагал бы рецепты приготовления. Сначала, все виды сумасшедших рецептов вышли бы. Затем она обучит алгоритм приготовления пищи реальным рецептам, и в итоге он предложит очень хорошие.
Я полагаю, что она использовала что-то, связанное с теоремой Байеса или кластеризацией, но она давно ушла и алгоритм тоже. Я искал в Интернете, но поиск кулинарных рецептов даст любые результаты, но не тот, который я ищу. Итак, мой вопрос:
Какие методы можно использовать для разработки алгоритма, который (случайным образом) предлагает выполнимые рецепты (без использования базы данных фиксированных рецептов)?
Зачем мне искать алгоритм приготовления? Что ж, это был очень хороший пример применения базовых концепций в реальном мире, и такой алгоритм мог бы быть полезен в различных условиях, которые ближе к реальному миру.
источник
Ответы:
Хм, используя теорему Байеса, чтобы сделать новые рецепты из старых рецептов. Я полагаю, вы сначала захотите, чтобы алгоритм разделил ингредиенты в понятную ему форму (не уверен, что для этого мы используем НЛП или если вы вручную вводите данные, это ни здесь, ни там). Оттуда ... ,
Я представляю что-то вроде этого.
Данные теста проанализированы. Теперь у нас есть список рецептов и вероятностей того, что каждый ингредиент будет иметь место вместе с другим ингредиентом, и в каких количествах. После того, как мы получим эти данные, программа получит новые рецепты случайным образом. Сначала он циклически перебирает список всех известных ингредиентов, затем случайным образом выбирает основной ингредиент, оттуда он использует вероятности ингредиента, заданного другим ингредиентом, чтобы начать добавлять больше случайных ингредиентов, все время сопоставляя соответствующие обученные данные для количеств и совместимых ингредиенты.
Могу ли я предложить, чтобы при создании нового рецепта программе была предоставлена такая информация, как, я хочу что-нибудь сладкое, или что-нибудь кислое, или, например, что-то, в основном сделанное из пшеницы.
Надеюсь, это немного поможет.
источник
Широкий набор данных для США, содержащий почти 2000 рецептов, вы можете найти в Службе рецептов Вооруженных сил . Это не ответит на ваш вопрос, но предоставит вам реальные данные обучения.
Требования к проблеме, вероятно, трудно сформулировать для большинства людей, и выбранный подход, скорее всего, в конечном итоге приведет к неявной корректировке физической формы в соответствии с предложенными вами. Еда в целом очень специфична для культуры, и такой подход, вероятно, будет очень плохим без обширной настройки.
Это также требует значительных знаний по предметам и предметной области, чтобы подготовить нечто большее, чем просто список ингредиентов. В конце концов, мороженое со вкусом кофе с вафлей, кафе с молоком и круассаном и тира мису было бы неразличимо.
источник
Генерация рецептов обычно используется в качестве примера приложения для систем обоснования. Это даже используется в качестве примера на странице Википедии . Поиск в Google "рецептов рассуждений по делу" дает множество результатов.
источник
Класс алгоритмов, который вы ищете, является бандитским. Они обычно используются для обработки разведочной части проблемы классификации.
Основной подход состоит в том, чтобы представлять рецепты как ограниченный пакет компонентов (вектор логических значений с не более чем k ненулевыми значениями) и использовать LinUCB для выбора набора компонентов. Тогда обратная связь будет «нравится» или «не нравится». Конечно, если вы байесовец, вы можете предпочесть использовать Trueskill (используя вариант Adpredictor).
Что-то менее основное потребует использования ядра вместо линейного разделения. Ядро UCB может помочь справиться с этой частью. Но в какой-то момент я думаю, что было бы полезно обратить внимание на химический состав пищи, потому что в конце вы, вероятно, захотите достичь баланса между различными основными вкусами.
источник