- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一组具有各种属性的服装/配饰产品(由 Python 对象表示)。这些产品是通过查询外部 API 和抓取商家网站以获取各种属性相结合来生成的。
我的目标是开发一个分类器,使用这些属性对产品进行正确分类(即分为裤子、T 恤、连衣裙等类别)。
我有一个训练数据集和一个测试数据集,它们是随机均匀选择的整个数据集的子集,并已手动分类。
我和一位专门研究机器学习的前大学同事交谈过,他建议使用决策树。然而,Python 中的决策树库似乎非常注重数字(而不是专注于基于文本属性对数据进行分类)。
我知道像 Scikit Learn 这样的库但从我的简要分析来看,它们通常涉及比我要求的更简单的规则逻辑。
任何有关方法、库、代码结构等的建议将不胜感激。然而,这个问题的主要焦点是哪个Python机器学习库(如果有)最适合这项任务。
产品属性包括以下内容:
str
)str
)[str, str...]
) float
)str
)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/
是否有显示测试用例数量以提供决策/条件覆盖率的工具? 例如: if(x>0) if(x0) 3 个案例足以覆盖决策/条件。 if(x>0) if(x0) 4 个案例足以覆盖决策/条件。 这是真的吗?
我正在尝试找到一种优雅的方式来实现易于维护的决策算法,因为决策的条件可能经常变化。 我将尝试更具体地举一个例子: 假设我正在尝试管理一家餐厅厨房的 cooking 厨师团队。 每个厨师都知道如何 co
我需要一个 Android Activity ,它应该显示一个字段,如带有图像的标题和其下方的几个动态生成的项目(我认为是 1 到 100)。如果我不想让 headsection 滚动,我会使用 Li
我正在编写函数以从值列表中提供最大值(value)。我的问题是如果所有值都相同怎么办?例如, 30,29,34,45 简单。最大值为 45。现在, 20,20,20,20 这里的最大值是20吗?或者没
我需要知道哪个检索事件日志的速度更快,但我在比较中找不到:假设需要查找的所有列都有btree索引,需要查找的json对象中的所有键都有GIN索引。 case 1: ActivityID (in
我需要在我的 iPhone 应用程序中显示一个表格: neither the number of cells nor the contents are known at compile time, b
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 9 年前。 Improve this ques
这是针对在 MinGW/Windows 上使用 SDL 的小型游戏项目。 我正在研究一个物理引擎,我的想法是拥有一个Physics::Object,所有物理对象都应该派生自它,并且它会在全局 Phys
我有一个小的 LINQ 查询来填充下拉控件(WinForms Telerik 应用程序),其中的数据行显示两个值(ITNBR 和描述): var query = from i in db.ItemMa
我正在尝试使用 antlr 3 为我的语法生成词法分析器和解析器。有人可以解释这个错误是什么意思吗? error(211): T.g:14:6: [fatal] rule stmt has non-L
partykit包很好地表示了决策树。我遇到的唯一问题是标签很长然后它们重叠。是否可以移动这些标签以防止它(见下图中的蓝色箭头)? library("rpart") library("partykit
所以我环顾四周,似乎找不到合适的解决方案来解决我的问题。 问题 在我的布局中,我希望能够根据数据库中的内容选择在运行时是否存在导航项: 当前布局(导航栏) @Html.Acti
我目前正在创建一个机器学习 jupyter 笔记本作为一个小项目,并希望显示我的决策树。但是,我能找到的所有选项都是导出图形然后加载图片,这相当复杂。 所以想问问有没有办法不用导出加载图形,直接显示我
grammar AdifyMapReducePredicate; PREDICATE : PREDICATE_BRANCH | EXPRESSION ; PREDICA
我是一名优秀的程序员,十分优秀!