gpt4 book ai didi

Python 复杂对象的决策树分类

转载 作者:行者123 更新时间:2023-11-30 09:37:58 24 4
gpt4 key购买 nike

我有一组具有各种属性的服装/配饰产品(由 Python 对象表示)。这些产品是通过查询外部 API 和抓取商家网站以获取各种属性相结合来生成的。

我的目标是开发一个分类器,使用这些属性对产品进行正确分类(即分为裤子、T 恤、连衣裙等类别)。

我有一个训练数据集和一个测试数据集,它们是随机均匀选择的整个数据集的子集,并已手动分类。

我和一位专门研究机器学习的前大学同事交谈过,他建议使用决策树。然而,Python 中的决策树库似乎非常注重数字(而不是专注于基于文本属性对数据进行分类)。

我知道像 Scikit Learn 这样的库但从我的简要分析来看,它们通常涉及比我要求的更简单的规则逻辑。

任何有关方法、库、代码结构等的建议将不胜感激。然而,这个问题的主要焦点是哪个Python机器学习库(如果有)最适合这项任务

产品属性包括以下内容:

  • 名称(str)
  • 描述(str)
  • available_sizes ([str, str...])
  • available_colours ([str, str...])
  • 价格( float )
  • 网址 (str)
  • category_name (str)
  • 图像([str, str...] - url)

产品示例:

{   'category': u"Men's Accessories",
'colours': [u'White'],
'description': u'Keep your formal style looking classic with this white short sleeve Oxford shirt with roll up sleeve detailing.',
'ean': u'',
'gender': u'M',
'images': [ u'http://media.topman.com/wcsstore/TopMan/images/catalog/83D21DWHT_large.jpg',
u'http://media.topman.com/wcsstore/TopMan/images/catalog/83D21DWHT_2_large.jpg',
u'http://media.topman.com/wcsstore/TopMan/images/catalog/83D21DWHT_3_large.jpg',
u'http://media.topman.com/wcsstore/TopMan/images/catalog/83D21DWHT_4_large.jpg'],
'last_scraped': datetime.datetime(2014, 11, 1, 7, 13, 28, 943000),
'merchant_id': 2479L,
'merchant_uri': u'http://www.topman.com/en/tmuk/product/white-oxford-short-sleeve-shirt-157702?geoip=noredirect',
'name': u'White Oxford Short Sleeve Shirt',
'price': 26.0,
'sizes': [u'XXS', u'XS', u'S', u'M', u'L', u'XL', u'XXL']}

最佳答案

您可以使用 scikit-learn,但您需要预处理数据。决策树的其他实现可以直接处理分类数据,但这并不能解决您的问题。您仍然需要预处理数据。

首先,我会省略图像,因为使用它们有点复杂。对于所有其他变量,您需要以适合机器学习的方式对其进行编码。例如,可用大小可以编码为 0 或 1,具体取决于给定大小是否可用。如果颜色来自一组固定的字符串,则可以将它们编码为分类。如果这是一个自由文本字段,那么使用分类可能不太好(例如人们可能使用灰色和灰色,这将是两个完全不相关的值,或者有拼写错误等)

每个产品的描述和名称可能都是唯一的,因此使用分类变量没有意义,因为每个产品只会被看到一次。对于这些,最好使用词袋方法对它们进行编码。

您可以在 tutorials section of the scikit-learn documentation 中找到有关文本分类的教程。 。您可能还想看看其他教程。

最后,我建议从线性分类器开始,例如朴素贝叶斯或 LinearSVC。如果您想提取实际规则,单树最有用,并且很少用于文本处理(通常有数万或数十万个特征/单词,因此提取有意义的规则很困难)。如果您想使用基于树的方法,那么使用随机森林或梯度提升等集成很可能会产生更好的结果。

关于Python 复杂对象的决策树分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26712080/

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