【发布时间】:2019-06-08 04:52:49
【问题描述】:
我正在实施一篇研究论文,其中我必须根据其成分对美食进行分类。提供配料训练数据集和测试数据集。一切正常。模型已根据 SGD、RandomForest 和朴素贝叶斯的准确性使用最佳方法进行训练。我正在使用随机森林,因为它的准确性优于 NB 和 SGD。测试数据集经过测试,预测工作绝对正常。现在我想通过手动输入(使用python的input())成分来预测美食。当我尝试搜索此处命名为Y = train_data['all_ingredients'] OR Y = train_data['ingredients'] 的熊猫系列/数据框时,问题就来了。
def check_ing(ing):
if ing in train_data['all_ingredients'].values:
return True
return False
no_of_ingredients = input("Total Number Of Ingredients: ")
no_of_ingredients = int(no_of_ingredients)
ingredient = []
for i in range(no_of_ingredients):
ing = input("Enter Ingredient " + str(i) + " : ")
if check_ing(ing) is True:
ingredient.append(ing)
print(ingredient)
问题出在函数check_ing(ing)的if语句中。
如何改进搜索用户输入的成分是否有效。
【问题讨论】:
-
我不知道你在问什么。关于训练方法有很多背景故事,但是当我们一开始并不真正了解问题时,您的问题似乎是“改进这一点”
-
我只是添加了背景以确保。
-
我很想编辑它 - 我认为这会分散注意力。但我无法收集问题的症结所在,所以我不想在没有你试图解决的明确问题的情况下留下它
-
不同点是函数
check_ing(ing)中的 if 语句,如我所述。例如,如果用户输入garlic,我该如何改进以搜索整个train_data['ingredients']。
标签: python pandas countvectorizer