决策树分类模型预测服装搭配效果

    李佳宣越

    

    

    【摘 要】 随着网络电商平台的逐渐发展,网络购物成为人们日常的经济活动之一,而服装的购买又是网络购物中的巨头。越来越多的人忠于购买搭配好的衣服以至于产生依赖性,当需要自己搭配的时候却无从下手。本文从服装搭配的角度出发,使用决策树的预测功能为用户提供服装搭配效果的建议,以解决用户不知该如何进行服装搭配的问题。

    【关键词】 服装搭配 决策树 预测模型

    1.引言

    1.1问题的提出

    随着社会科技的高速发展,网络电商平台以日渐成熟的技术逐渐成为现代人生活的必备工具之一,根据中商情报网讯:截至2018年12月,我国网络购物消费者规模达6.10亿,较2017年底增长14.4%,占网民整体比例达73.6%。手机网络购物消费者规模达5.92亿,较2017年底增长17.1%,使用比例达72.5%。随着竞争的激烈,消费者对现有电商平台的要求也越来越高,为了提供更个性化的优质服务,电商平台也在不断优化自己的推荐系统,提升消费者体验感,增加企业营业收入额。

    随着服装推荐系统的日渐成熟与功能趋向完整,消费者在购买衣服时的搭配烦恼也慢慢减少,按照商家或淘宝推荐购买搭配好的套装逐渐成为网购服装的趋势。于是可能就会存在一些潜在的问题。消费者购买套装中的搭配数量是有限的,比如:一件上装可能最多购买了和它搭配的下装三件。而当这三套搭配穿厌烦了,消费者想要和其他衣服搭配的时候却无从下手,不知道该怎么搭配。一些消费者可能会借鉴一些搭配app上的推荐搭配,但是有可能推荐的服装款式自己并没有,或者并不是自己喜欢穿的类型,又由于信息过载严重,搜索引擎的功能不完善等等情况,最后导致不能搭配的衣服被压在箱底,然而这些衣服却可能并没有穿过几次。

    1.2调查研究

    为了了解目前是否存在这一问题,本次研究之前在网上进行了关于网购与服装搭配情况的调查。调查共收集了252份有效问卷,其中有207人进行过服装网购,被调查的全体均在实体店购买过衣服。调查结果显示,不论线上线下购物,购买商家搭配好的套装人数均多于自己搭配的人数,其次线上购物的消费者购买淘宝推荐的搭配多于自己的搭配。而被调查的所有消费者购买单件物品对应的搭配衣物最多为5件,其中购买2件的人数最多。另外,有80.3%的人表示购买推荐搭配套装之后,都是按照购买回去的套装进行着装。在同一套搭配穿上一段时间之后感到厌烦时,68.75%的人不知道该怎么搭配,其中78.03%的人会参考推荐搭配的app。在使用过搭配推荐app的人中,僅有52.68%的人认为搭配app可以解决他们的问题,也就是说现有的平台不足以解决用户对搭配的需求,有很多服装在被购买之后并没有得到充分的利用,在一定程度上造成了资源的浪费。虽然电商推荐系统的完善推动了消费,但是如果不能提供更好的后续服务,消费者不能很好的处理买回去的衣服,就会产生更多的问题,比如“浙江退货女”“退货交流群”等,其中的一个原因有可能就是在厌烦了穿着给定好的搭配之余消费者不知道该怎么进行搭配。

    1.3方法的提出

    那么有没有办法解决这个问题,让购买的衣服充分利用起来,减少资源的浪费呢。前面也提到了现在有很多服装搭配的app,主要给到消费者搭配意见,提供搭配指导,这是解决前面问题的一种方式,但是同时它涉及到一个问题,如果给出的搭配推荐中的单品是消费者没有的,这时消费者的搭配问题就不能被解决。那么可不可以存在这样一个系统,用户可以直接将想要搭配衣服的标签输入系统,系统根据收集到的信息将搭配效果按某一指标输出,用户可以直观获取搭配效果,从而解决前面提到的搭配问题。

    目前已有的研究大多是对服装推荐系统的优化,而没有能给出直观服装搭配效果的研究,如果将这一功能加入电商平台,那么消费在购买服装是也可以知道自己想要搭配服装的效果,因为原来购买套装的数量是有限的,这一系统有可能会在之前的消费基础上进一步提高销售额,而且消费者购买回去的衣服也得到了解决,因为不知道怎么穿的衣服的退货情况也会有所缓解,这一功能还会提高平台的点击量,从而不管是对平台还是对用户,都会有一定程度上的提升。

    2.方法介绍

    决策树顾名思义是用来决策的树,是机器学习中最基础的一种算法。决策树是一类常见的机器学习方法,决策树是基于树结构来进行决策的,这恰是人类在面对决策问题时一种很自然的处理机制。我们可以利用决策树的分类作用进行决策,从而判断搭配效果。

    决策过程中每个判定问题都是对某个属性的“测试”,每个测试的结果或是导出最终结论,或是导出进一步的判定问题。

    决策树的主要优势就在于数据形式非常容易理解。那么问题就来了,如何构建决策树呢?决策树的构建是数据逐步分裂的过程,构建的步骤如下:

    步骤 1:将所有的数据看成是一个节点,进入步骤 2;

    步骤 2:从所有的数据特征中挑选一个数据特征对节点进行分割,进入步骤 3;

    步骤 3:生成若干孩子节点,对每一个孩子节点进行判断,如果满足停止分裂的条件,进入

    步骤 4;否则,进入步骤 2;

    步骤 5:设置该节点是子节点,其输出的结果为该节点数量占比最大的类别。

    从上述步骤可以看出,决策生成过程中有三个重要的问题:

    (1)数据如何分割

    (2)如何选择分裂的属性

    (3)什么时候停止分裂

    2.1 数据分割

    假如我们已经选择了一个分裂的属性,那怎样对数据进行分裂呢?

    分裂属性的数据类型分为离散型和连续性两种情况,对于离散型的数据,按照属性值进行分裂,每个属性值对应一个分裂节点;对于连续性属性,一般性的做法是对数据按照该属性进行排序,再将数据分成若干区间,如[0,10]、[10,20]、[20,30]…,一个区间对应一个节点,

    若数据的属性值落入某一区间则该数据就属于其对应的节点。

    2.2 分裂属性的选择

    我们知道了分裂属性是如何对数据进行分割的,那么我们怎样选择分裂的属性呢?

    决策树采用贪婪思想进行分裂,即选择可以得到最优分裂结果的属性进行分裂。那么怎

    样才算是最优的分裂结果?最理想的情况当然是能找到一个属性刚好能够将不同类别分开,但是大多数情况下分裂很难一步到位,我们希望每一次分裂之后孩子节点的数据尽量”纯”,选择分裂属性是要找出能够使所有孩子节点数据最纯的属性,决策树使用信息增益或者信息

    增益率作为选择属性的依据。

    用信息增益表示分裂前后跟的数据复杂度和分裂节点数据复杂度的变化值,计算公式表示为:

    (1)

    其中Gain表示节点的复杂度,Gain越高,说明复杂度越高。信息增益说白了就是分裂前的数据复杂度减去孩子节点的数据复杂度的和,信息增益越大,分裂后的复杂度减小得越多,分类的效果越明显。

    节点的复杂度可以用以下两种不同的计算方式:

    a)熵

    熵描述了数据的混乱程度,熵越大,混乱程度越高,也就是纯度越低;反之,熵越小,混乱程度越低,纯度越高。熵的计算公式如下所示:

    (2)

    其中Pi表示类i的数量占比。以二分类问题为例,如果两类的数量相同,此时分类节点的纯度最低,熵等于1;如果节点的数据属于同一类时,此时节点的纯度最高,熵等于0。

    b)基尼值

    基尼值计算公式如下:

    (3)

    其中Pi表示类i的数量占比。其同样以上述熵的二分类例子为例,当两类数量相等时,基尼值等于0.5;当节点数据属于同一类时,基尼值等于0。基尼值越大,数据越不纯。

    (2)信息增益率

    使用信息增益作为选择分裂的条件有一个不可避免的缺点:倾向选择分支比较多的属性

    进行分裂。为了解决这个问题,引入了信息增益率这个概念。信息增益率是在信息增益的基

    础上除以分裂节点数据量的信息增益,其计算公式如下:

    (4)

    其中Info _ Gain表示信息增益,InstrinsicInfo表示分裂子节点数据量的信息增益,其计算公式为:

    (5)

    其中m表示子节点的数量,i n表示第i个子节点的数据量,N表示父节点数据量,其实 InstrinsicInfo是分裂节点的熵,如果节点的数据链越接近,InstrinsicInfo 越大,如果子节点越大,InstrinsicInfo 越大,而Info _ Ratio就会越小,能够降低节点分裂时选择子节点多的分裂属性的倾向性。信息增益率越高,说明分裂的效果越好。

    2.3 停止分裂的条件

    决策树不可能不限制地生长,总有停止分裂的时候,最极端的情况是当节点分裂到只剩

    下一个数据点时自动结束分裂,但这种情况下树过于复杂,而且预测的经度不高。一般情况

    下为了降低决策树复杂度和提高预测的经度,会适当提前终止节点的分裂。以下是决策树节点停止分裂的一般性条件:

    (1)最小节点数

    当节点的数据量小于一个指定的数量时,不继续分裂。两个原因:一是数据量较少时,再做分裂容易强化噪声数据的作用;二是降低树生长的复杂性。提前结束分裂一定程度上有

    利于降低过拟合的影响。

    (2)熵或者基尼值小于阀值。

    由上述可知,熵和基尼值的大小表示数据的复杂程度,当熵或者基尼值过小时,表示数据的纯度比较大,如果熵或者基尼值小于一定程度数,节点停止分裂。

    (3)决策树的深度达到指定的条件

    节点的深度可以理解为节点与决策树跟节点的距离,如根节点的子节点的深度为1,因为这些节点与跟节点的距离为1,子节点的深度要比父节点的深度大1。决策树的深度是所

    有叶子节点的最大深度,当深度到达指定的上限大小时,停止分裂。

    (4)所有特征已经使用完毕,不能继续进行分裂。

    被动式停止分裂的条件,当已经没有可分的属性时,直接将当前节点设置为叶子节点。

    3.实验与分析

    3.1数据来源

    实验数据来自淘宝,根据淘宝服装详情页面的信息,将服装按厚度指数,弹力指数,版型指数,长度指数,款式,面料主要成分,颜色深度。本文收集一件上装的多种下装搭配作为训练集,训练出决策树,以消费者想要搭配的下装作为测试集,测试出其搭配效果。搭配效果评价指标:消费者点赞数和购买数,这两个指标综合进行评价,比例各占一半。

    首先以一件上衣为例说明本文使用到的方法原理。选取和这件上衣搭配的推荐下装20条数据作为实验集,5条数据作为训练集。根据服装描述性指标收集20个下装的信息见表1。

    当然在实际进行试验时,款式不会仅限于这几种,会根据淘宝数据平台天池提供的数据信息进行全面的分类,在这里现已20中为例说明决策原理。用上述数据训练构建决策树,收集20件下装的月售销量,好评数,差评数,按一定的比例换算为统一单位指标作为搭配效果的评分,参考罗宾漂流记的方法用python初步进行决策树构建如下图1所示。

    根据后退法对决策树进行剪枝优化决策树,最终得到的决策树再用5条训練集进行检验看结果是否与实际相符,若相符则将想要搭配的衣服指标键入,即可得到用该决策树预测的服装搭配效果。若不相符,则对决策树进行改进或随机训练多个决策树构成随机森林达到更精确更准确预测模型。

    4.总结

    服装搭配是近年来一直被各大电商平台关注的一个问题,而现有的搭配是有限的、固定的,一定程度上不够灵活多变,这样就有可能会产生以下两个问题,一方面当用户不想买商家搭配好的服装,想要和自己已有的衣服进行搭配却无从得知自己想买的衣服的搭配效果;另一方面当消费者买回家之后对搭配好的衣服穿厌烦时又不知道该如何搭配。这两个问题都有可能产生资源的浪费,从而可能最终导致电商平台产生泡沫经济。本文针对以上的行为问题提出了使用决策树进行决策的解决方案,使用决策树为用户提供搭配效果的预测,进而缓解这一问题。当然决策树在决策过程中可能会存在一些过拟合的缺点,可以考虑随机产生多个决策树构成决策森林来改善过拟合的问题。

    【参考文献】

    [1] 周志华,机器学习[M],北京:清华大学出版社,2018,73-95.

    [2] 李钰通,决策树分类模型预测网站热度[J],技术交流,2018,162-163.

    [3] 罗宾漂流记,机器学习算法-决策树[Z],博客园,2017.

    [4] 北门大官人,决策树系列(一)——基础知识回顾与总结[Z],CSDN,2018.

相关文章!
  • 融资融券对日历效应的影响:来

    王璐摘 要:过去的研究表明,中国股市的运行效率受到政府监管与干预并存在非对称交易的现象。2010年3月31日,中国股票市场实行了融资融券

  • 理性看待“不买房一代”的选择

    中国社会科学院近日发布《社会蓝皮书:2015年中国社会形势分析与预测》。根据该蓝皮书的调查显示,毕业一年后,约三成90后大学毕业生居住面

  • 公司治理、内部控制对盈余管理

    金玉娜柏晓峰摘 要:按照形成原因——作用机理——解决机制的路径,对抑制盈余管理有效途径的实证研究表明:机会主义偏误和技术性错误是盈余