Re: 复杂商品分类的表如何建立?

[quote="zww80216"]复杂商品的分类,类似淘宝的分类
1.每类商品有无限级分类
2.每个商品可能会有交叉分类
3.每类商品的扩展属性不一样
比如:
夹克的扩展属性为
款式: 拉链夹克 风格: 休闲 品牌: other/其它 适合季节: 春秋 尺码: M L 颜色: 其它颜色 质地: 纯棉
主板的扩展属性为
品牌: 微星/MSI 类型: Socket478 芯片组: Intel 845 平台类型: Intel平台 宝贝成色: 8成新

这些扩展属性都会动态的变化

那么问题来了:
1.全文搜索如何合理建立?
2.可能后台扩展属性表是否需要动态建立?
3.如果单件商品属于交叉分类的话,查询结果记录重复是否需要?
4.高效的无限级分类算法大家可否指点一二,这个困惑了我很久了?

不求完整解决,给个思路也成[/quote]

你的问题很多,分别回答。
1.无限分类。树形结构,一般可以认为分类变化的频度很低,所以比较适合于损失插入修改性能以提高查询性能。
树形结构的查询,一般最关心和最区别于普通字典数据的地方就是查询子树问题,在Oracle里对应hierarchical query,即使用connect by语句的递归查询。子树举例说:生物分类中,给出所有的鸟类。
一般的树形结构在表里的物理存储方式有两大类:
1.链表方式。
有各种变形,典型的如,一条记录有唯一id,还有parentId保存父节点的ID。查询子树时需要用SQL递归查询,需要多条SQL。
2.ID即是节点在树中的路径。
比如生物id为001,哺乳动物则为001001,鸟类为001002,前三位是父节点的id,后三位是在本级中节点的ID。依此类推。
这种方案有每级节点数量的限制,因此有其他方案来弥补,比如另设一个字段保存上级节点的ID,这样本级节点的长度实际上是算出来的,而不是固定的。但这些方案的共同点就是,对子树问题,都采取id like '父节点%'的方式,只需一句SQL,但是like的效率并不算很高。
3.Nested Sets方式。
用两个字段保存树形结构关系,left数和right数,规则是:子的left>父的left,子的right<父的right。这种算法专门针对子树问题优化,根据上述规则,它只需要where left>currentNode.left and right<currentNode.right即可。因为left,right都是数字,所以可以利用索引,可以想见,查询的速度非常快,比用Oracle 的connect by实现内部递归的方式更快。
具体参考:http://www.developersdex.com/gurus/articles/112.asp
### RE-weight概念及应用 #### 重新加权(Re-weighting)概述 重新加权(re-weighting),通常用于机器学习领域,特别是在处理不平衡数据集时。通过调整不同样本或类别的权重,可以改善模型的学习效果和泛化能力。对于类别不均衡的数据集而言,简单地最小化整体错误率可能会使模型偏向多数类而忽略少数类的现。 为了应对这种问题,可以通过赋予较少见的类别更高的权重来平衡损失函数的影响[^1]。具体来说,在训练过程中给定一个样本 \( x_i \) 和其对应的标签 \( y_i \),如果属于某个特定的小众分类,则增加该实例对总体代价贡献的比例;反之则减少常见类型的影响力。 #### 应用场景 - **图像识别**:当目标检测或者分割任务存在大量背景像素点与少量前景对象时; - **自然语言处理**:情感分析中正面评价远超负面反馈的情况; - **推荐系统**:某些商品购买频率极高掩盖了其他潜在好物的价值评估偏差修正。 #### 实现方式 常见的实现方法包括但不限于: - **静态重采样**:直接修改输入批次内的比例关系,比如欠抽样主流群体或是过抽样稀少种类。 - **动态调整系数**:基于当前迭代轮次、历史现等因素自适应改变各部分的重要性因子。 ```python def compute_class_weights(labels): """ 计算每个类别的权重 """ class_counts = np.bincount(labels) total_samples = sum(class_counts) weights = [total_samples / (len(class_counts) * count) for count in class_counts] return torch.tensor(weights).float() ``` - **成本敏感型学习框架下的优化算法调参**:如XGBoost支持设置`scale_pos_weight`参数以控制正负样本间的相对重要程度。 #### 结合神经网络的具体实践案例 在网络量化研究中提到的方法也体现了类似的思路——即通过对不同分支之间的权重分布进行精细化管理,从而缓解因量化带来的精度损失问题。这明即使是面对复杂的深度学习模型结构调整需求,合理运用重新加权策略同样有助于维持甚至提高最终预测性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值