gpt4 book ai didi

python - 用于返回下一个特征以 split 树的决策树实现

转载 作者:行者123 更新时间:2023-11-28 18:49:30 27 4
gpt4 key购买 nike

假设我的数据由水果组成,用它们的颜色和形状和更多功能。我想返回最多 X 个具有用户陈述的特征的水果,并且我想在最少的问题中做到这一点。

我总是问用户的第一个问题是水果的颜色和形状。根据用户的回答,我想要求 K 更多功能,如纹理大小、剥离类型等。我希望 K 是最小的数字,它将返回最准确的 X 结果,因此我想知道下一个功能是什么我应该问用户。我的数据库由分类为特征(任意值)的水果组成。

这是机器学习问题吗?我应该使用什么算法以及我应该使用哪种实现。我试图在 scikit-learn、nltk、weka 中寻找合适的算法来回答这个问题。要么这些算法不适合回答这个问题,要么我需要更具体的指导来使用它们。

谢谢!

最佳答案

是的。

决策树将点转换到每个特征上并找到最佳分割。这种分割可以通过不同的指标来确定,例如:gini 指数或熵(信息增益)Sci-kit 学习在 sklearn.tree 中有这个

假设您有 5 个数据点:

 color   shape   fruit
orange oblong orange
red round apple
orange round orange
red oblong apple
red round apple

所以为了训练你会做这样的事情:

feature   class  |  feature  class
orange orange | oblong orange
red apple | round apple
orange orange | round orange
red apple | oblong apple
red apple | round apple

如您所见,最好的分割是颜色,因为对于此数据集,如果颜色 = 红色,则水果 = 苹果,如果颜色 = 橙色,则水果 = 橙色。

在这些数据点上进行训练,您将拥有决策树:

        color
___________________
| |
| |
red orange
apple orange

在现实生活中,这些拆分将基于数值,即 num > .52

至于为此使用什么算法,则视情况而定。您必须对自己的数据进行研究,因为它更多的是针对每个数据集/偏好的事情。

您可以像这样在上面的示例中使用 sci-kit 学习:

from sklearn.trees import DecisionTreeClassifier
#make your sample matrix
samples = [[1,1], [0,0], [1,0], [0,1], [0,0]]
#make your target vector ( in this case fruit)
fruitname = [1, 0, 1, 0, 0]
#create and fit the model
dtree = DecisionTreeClassifier()
dtree = dtree.fit(samples, fruitname)
#test an unknown red fruit that is oblong
dtree.predict([0,1])

注意color=1表示水果是橙色的,shape=1表示水果是长方形的。

通过sci-kit看看user guide以获得更深入的概述。

关于python - 用于返回下一个特征以 split 树的决策树实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15154658/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com