一种基于机器学习的玉石价格评估方法及装置转让专利

申请号 : CN201810507857.0

文献号 : CN108734520B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李娜徐竹胜韩震峰于振中李文兴

申请人 : 合肥晌玥科技有限公司

摘要 :

本发明公开了一种基于机器学习的玉石价格评估方法及装置,方法包括:获取玉石图片中的玉石数据;利用感知哈希算法,根据玉石图片,获取玉石图片的感知哈希特征向量;利用颜色简化算法对玉石图片进行处理,获得颜色简化后的玉石图片;并统计颜色简化后的玉石图片对应的颜色分布直方图向量;将除价格以外的玉石数据、感知哈希特征向量以及颜色分布直方图向量组合作为特征向量X;将特征向量X及其对应的价格分为训练集和测试集;利用训练集中的数据训练玉石价格评估模型;使用测试集中的数据评价训练好的玉石价格评估模型;将客户输入的待评估玉石数据输入玉石价格评估模型,获得待评估玉石的评估价格。应用本发明实施例,可以提升用户体验。

权利要求 :

1.一种基于机器学习的玉石价格评估方法,其特征在于,所述方法包括:步骤1:获取玉石图片中的玉石数据,其中,所述玉石数据至少包括:颜色、重量、和真实价格;

步骤2:利用感知哈希算法,根据所述玉石图片,获取所述玉石图片的感知哈希特征向量;

步骤3:利用颜色简化算法对所述玉石图片进行处理,获得颜色简化后的玉石图片;并统计所述颜色简化后的玉石图片对应的颜色分布直方图向量;

步骤4:将除价格以外的玉石数据、所述感知哈希特征向量以及所述颜色分布直方图向量组合作为特征向量X;

将所述特征向量X及其对应的价格分为训练集和测试集;

步骤5:在所得的训练集上,使用机器学习中的K近邻算法、梯度提升决策树方法和多元非线性回归拟合方法构构建的玉石价格评估模型,不断地调整算法中的参数,将评估准确率取最大值时的模型作为最终的玉石价格评估模型,所述K近邻算法包括:针对所述测试集中的每一特征向量,根据当前组合加权向量,利用K近邻算法,计算训练集中的特征向量与测试集中的特征向量的相似度,按照所述测试集中的特征向量与所述训练集中的训练集中的特征向量之间的相似度从大到小的顺序进行排序,将所述排序结果中前K个顺序次序对应的测试集中的特征向量与所述训练集中的训练集中的特征向量之间的相似度作为选择出的K个与所述测试集中的当前特征向量最相似训练集中的特征向量;

步骤6:使用所述测试集中的数据评价训练好的玉石价格评估模型;

步骤7:将客户输入的待评估玉石数据输入玉石价格评估模型,获得待评估玉石的评估价格。

2.根据权利要求1所述的一种基于机器学习的玉石价格评估方法,其特征在于,所述玉石数据还包括:品牌、样式、材料以及尺寸。

3.根据权利要求1所述的一种基于机器学习的玉石价格评估方法,其特征在于,所述步骤2包括:读取所述玉石数据中的每一条记录,然后根据所述玉石图片对应的URL下载图片,然后使用感知哈希算法获取下载的玉石图片的感知哈希特征,其中,感知哈希算法具体步骤包括:

第一步:缩小所述玉石图片的尺寸;

第二步:简化所述玉石图片的色彩;

第三步:计算所述玉石图片的灰度平均值;

第四步:将每个像素的灰度与所述灰度平均值进行比较,将大于或者等于所述灰度平均值的像素的灰度值记为‘1’;小于灰度平均值的,记为‘0’;

第五步:将第四步中的所有比较结果组合在一起构成的字符串作为感知哈希特征。

4.根据权利要求1所述的一种基于机器学习的玉石价格评估方法,其特征在于,所述步骤4包括:将所述特征向量X的集合集分成M个子集,将所述M个子集中的M-1个子集分别作为训练集,将除所述训练集之外的子集作为测试集,其中M为正整数。

5.根据权利要求1所述的一种基于机器学习的玉石价格评估方法,其特征在于,所述K近邻算法还包括:针对所述测试集中的每一特征向量,根据当前组合加权向量,利用K近邻算法,从所述训练集中选择出K个与当前特征向量最相似特征向量;

并根据所述K个与当前特征向量最相似特征向量的真实价格的平均值,获取所述当前特征向量对应的评估价格,其中,所述组合加权向量为,每一特征向量中的各个元素对应的权重的集合。

6.根据权利要求5所述的一种基于机器学习的玉石价格评估方法,其特征在于,利用K近邻算法,从所述训练集中选择出K个与当前特征向量最相似特征向量,包括:利用公式,

计算训练集中的特征向量与测试集中的特征向量的相似度,其中,

similarity(Xi,Xj)为训练集中的特征向量与测试集中的特征向量的相似度;wo为与品牌对应的权重;brandj为训练集中的特征向量对应的品牌特征值;brandi为测试集中的特征向量对应的品牌特征值;w1为与样式对应的权重;w2为与重量对应的权重;w3为与材质对应的权重;w4为与长度对应的权重;w5为与宽度对应的权重;w6为与厚度对应的权重;w7为与内半径对应的权重;w8为与汉明距离对应的权重;w9为与颜色直方图向量的相似度对应的权重;stylej为训练集中的特征向量对应的样式特征值;stylei为测试集中的特征向量对应的样式特征值;weightj为训练集中的特征向量对应的重量特征值;weighti为测试集中的特征向量对应的重量特征值;materialj为训练集中的特征向量对应的材料特征值;materiali为测试集中的特征向量对应的材料特征值;lengthj为训练集中的特征向量对应的长度特征值;lengthi为测试集中的特征向量对应的长度特征值;widthj为训练集中的特征向量对应的宽度特征值;widthi为测试集中的特征向量对应的宽度特征值;thicknessj为训练集中的特征向量对应的厚度特征值;thicknessi为测试集中的特征向量对应的厚度特征值;

inner_radiusj为训练集中的特征向量对应的内尺寸特征值;inner_radiusi为测试集中的特征向量对应的内尺寸特征值;hamming_dist(phashj,phashi)为测试集中的特征向量对应的感知哈希特征与所述训练集中的特征向量对应的感知哈希特征之间的汉明距离;cos<Hj,Hi>为测试集中的特征向量对应的颜色分布直方图向量与训练集中的特征向量对应的颜色分布直方图向量之间的相似度;phashj为训练集中的特征向量对应的感知哈希特征;

phashi为测试集中的特征向量对应的感知哈希特征;Hj为训练集中的特征向量对应的颜色分布直方图向量;Hi为测试集中的特征向量对应的颜色分布直方图向量。

7.根据权利要求6所述的一种基于机器学习的玉石价格评估方法,其特征在于,所述根据所述K个与当前特征向量最相似特征向量的真实价格的平均值,获取所述当前特征向量对应的评估价格,包括:利用公式, 获

取述当前特征向量对应的评估价格,其中,

prediction_price(Xi)为当前特征向量对应的评估价格;Xi为测试集中的特征向量;Xj为训练集中的特征向量;i为测试集中的特征向量的序号;j为训练集中的特征向量的序号;

∑为求和函数;real_price()为训练集中的特征向量对应的真实价格;Topk()为K个与所述测试集中的特征向量最相似训练集中的特征向量;max()为最大值求解函数;

similarity(Xi,Xj)为所述测试集中的特征向量与所述训练集中的特征向量之间的相似度。

8.根据权利要求1所述的一种基于机器学习的玉石价格评估方法,其特征在于,所述步骤6包括:利用公式,

获取每一评估

价格对应的特征值,其中,

correct_prediction(Xi)为序号为i的评估价格对应的特征值;prediction_price(Xi)为评估价格;real_price(Xi)为与评估价格对应的真实价格;L为第一预设阈值;

利用公式, 计算训练的玉石价格评价模型的精

度,其中,

accuracy为训练的玉石价格评价模型的精度;correct_prediction(Xi)为每一评估价格对应的特征值;N为评估价格的数量。

9.根据权利要求1所述的一种基于机器学习的玉石价格评估方法,其特征在于,所述步骤7包括:获取客户输入的待评估玉石数据对应的玉石数据、感知哈希特征向量以及颜色分布直方图向量;

将待评估玉石数据对应的玉石数据、感知哈希特征向量以及颜色分布直方图向量的组合作为第二特征向量;

针对所述第二特征向量,根据步骤5训练的玉石价格评估模型,评估所述客户输入的待评估玉石数据对应的评估价格。

说明书 :

一种基于机器学习的玉石价格评估方法及装置

技术领域

[0001] 本发明涉及一种玉石价格的评估方法,更具体涉及一种基于机器学习的玉石价格评估方法及装置。

背景技术

[0002] 随着我国经济的发展和人民生活水平的提高,越来越多的人渴望购买玉石产品,因此,中国珠宝玉石行业取得了巨大发展,中国也成为而来世界上最大的玉石消费市场。但是,在玉石市场高速发展的同时也出现了很多不好的现象:玉石市场上玉石产品良莠不齐,个别商家以次充好、以假乱真、随意标价等。另外,普通消费者很难具备全面的玉石鉴定知识,普通消费者很难挑选到货真价实的玉石产品。由于玉石价格普遍较高,如果错买一次会导致较大的经济损失。
[0003] 目前,通常由玉石领域的专家对玉石进行鉴定,但是,普通消费者很难具备全面的玉石鉴定知识,专家的鉴定费用也是一笔巨大的开销,而且专家不可能陪伴每一位消费者进行消费。因此,现有技术存在不能方便的进行玉石鉴定的技术问题,导致用户的体验不佳。

发明内容

[0004] 本发明所要解决的技术问题在于提供了一种基于机器学习的玉石价格评估方法及装置。
[0005] 本发明是通过以下技术方案解决上述技术问题的:
[0006] 本发明实施例提供了一种基于机器学习的玉石价格评估方法,所述方法包括:
[0007] 步骤1:获取玉石图片中的玉石数据,其中,所述玉石数据至少包括:颜色、重量、和真实价格;
[0008] 步骤2:利用感知哈希算法,根据所述玉石图片,获取所述玉石图片的感知哈希特征向量;
[0009] 步骤3:利用颜色简化算法对所述玉石图片进行处理,获得颜色简化后的玉石图片;并统计所述颜色简化后的玉石图片对应的颜色分布直方图向量;
[0010] 步骤4:将除价格以外的玉石数据、所述感知哈希特征向量以及所述颜色分布直方图向量组合作为特征向量X;
[0011] 将所述特征向量X及其对应的价格分为训练集和测试集;
[0012] 步骤5:利用所述训练集中的数据训练玉石价格评估模型;
[0013] 步骤6:使用所述测试集中的数据评价训练好的玉石价格评估模型;
[0014] 步骤7:将客户输入的待评估玉石数据输入玉石价格评估模型,获得待评估玉石的评估价格。
[0015] 可选的,所述玉石数据还包括:
[0016] 品牌、样式、材料以及尺寸。
[0017] 可选的,所述步骤2包括:
[0018] 读取所述玉石数据中的每一条记录,然后根据所述玉石图片对应的URL下载图片,然后使用感知哈希算法获取下载的玉石图片的感知哈希特征,其中,
[0019] 感知哈希算法具体步骤包括:
[0020] 第一步:缩小所述玉石图片的尺寸;
[0021] 第二步:简化所述玉石图片的色彩;
[0022] 第三步:计算所述玉石图片的灰度平均值;
[0023] 第四步:将每个像素的灰度与所述灰度平均值进行比较,将大于或者等于所述灰度平均值的像素的灰度值记为‘1’;小于灰度平均值的,记为‘0’;
[0024] 第五步:将第四步中的所有比较结果组合在一起构成的字符串作为感知哈希特征。
[0025] 可选的,所述步骤4包括:
[0026] 将所述特征向量X的集合集分成M个子集,将所述M个子集中的M-1个子集分别作为训练集,将除所述训练集之外的子集作为测试集,其中M为正整数。
[0027] 可选的,所述步骤5中,训练玉石价格评估模型是在步骤4中所得的训练集上,使用机器学习中的K近邻算法、梯度提升决策树方法和多元非线性回归拟合方法构构建的玉石价格评估模型,不断地调整算法中的参数,将评估准确率取最大值时的模型作为最终的玉石价格评估模型。
[0028] 可选的,所述K近邻算法包括:
[0029] 针对所述测试集中的每一特征向量,根据当前组合加权向量,利用K近邻算法,从所述训练集中选择出K个与当前特征向量最相似特征向量;
[0030] 并根据所述K个与当前特征向量最相似特征向量的真实价格的平均值,获取所述当前特征向量对应的评估价格,其中,所述组合加权向量为,每一特征向量中的各个元素对应的权重的集合。
[0031] 可选的,利用K近邻算法,从所述训练集中选择出K个与当前特征向量最相似特征向量,包括:
[0032] 利用公式,
[0033]计算训练集中的特征向量与测试集中的特征向量的相似度,其中,
[0034] similarity(Xi,Xj)为训练集中的特征向量与测试集中的特征向量的相似度;wo为与品牌对应的权重;brandj为训练集中的特征向量对应的品牌特征值;brandi为测试集中的特征向量对应的品牌特征值;w1为与样式对应的权重;w2为与重量对应的权重;w3为与材质对应的权重;w4为与长度对应的权重;w5为与宽度对应的权重;w6为与厚度对应的权重;w7为与内半径对应的权重;w8为与汉明距离对应的权重;w9为与颜色直方图向量的相似度对应的权重;stylej为训练集中的特征向量对应的样式特征值;stylei为测试集中的特征向量对应的样式特征值;weightj为训练集中的特征向量对应的重量特征值;weighti为测试集中的特征向量对应的重量特征值;materialj为训练集中的特征向量对应的材料特征值;materiali为测试集中的特征向量对应的材料特征值;lengthj为训练集中的特征向量对应的长度特征值;lengthi为测试集中的特征向量对应的长度特征值;widthj为训练集中的特征向量对应的宽度特征值;widthi为测试集中的特征向量对应的宽度特征值;thicknessj为训练集中的特征向量对应的厚度特征值;thicknessi为测试集中的特征向量对应的厚度特征值;inner_radiusj为训练集中的特征向量对应的内尺寸特征值;inner_radiusi为测试集中的特征向量对应的内尺寸特征值;hamming_dist(phashj,phashi)为测试集中的特征向量对应的感知哈希特征与所述训练集中的特征向量对应的感知哈希特征之间的汉明距离;cos<Hj,Hi>为测试集中的特征向量对应的颜色分布直方图向量与训练集中的特征向量对应的颜色分布直方图向量之间的相似度;phashj为训练集中的特征向量对应的感知哈希特征;
phashi为测试集中的特征向量对应的感知哈希特征;Hj为训练集中的特征向量对应的颜色分布直方图向量;Hi为测试集中的特征向量对应的颜色分布直方图向量;
[0035] 按照所述测试集中的特征向量与所述训练集中的训练集中的特征向量之间的相似度从大到小的顺序进行排序,将所述排序结果中前K个顺序次序对应的测试集中的特征向量与所述训练集中的训练集中的特征向量之间的相似度作为选择出的K个与所述测试集中的特征向量最相似训练集中的特征向量。
[0036] 可选的,所述根据所述K个与当前特征向量最相似特征向量的真实价格的平均值,获取所述当前特征向量对应的评估价格,包括:
[0037] 利用公式,获取述当前特征向量对应的评估价格,其中,
[0038] prediction_price(Xi)为当前特征向量对应的评估价格;Xi为测试集中的特征向量;Xj为训练集中的特征向量;i为测试集中的特征向量的序号;j为训练集中的特征向量的序号;∑为求和函数;real_price()为训练集中的特征向量对应的真实价格;Topk()为K个与所述测试集中的特征向量最相似训练集中的特征向量;max()为最大值求解函数;similarity(Xi,Xj)为所述测试集中的特征向量与所述训练集中的特征向量之间的相似度。
[0039] 可选的,所述步骤6包括:
[0040] 利用公式,
[0041] 获取每一评估价格对应的特征值,其中,
[0042] correct_prediction(Xi)为序号为i的评估价格对应的特征值;prediction_price(Xi)为评估价格;real_price(Xi)为与评估价格对应的真实价格;L为第一预设阈值;
[0043] 利用公式, 计算训练的玉石价格评价模型的精度,其中,
[0044] accuracy为训练的玉石价格评价模型的精度;correct_prediction(Xi)为每一评估价格对应的特征值;N为评估价格的数量。
[0045] 可选的,所述步骤7包括:
[0046] 获取客户输入的待评估玉石数据对应的玉石数据、感知哈希特征向量以及颜色分布直方图向量;
[0047] 将待评估玉石数据对应的玉石数据、感知哈希特征向量以及颜色分布直方图向量的组合作为第二特征向量;
[0048] 针对所述第二特征向量,根据步骤5训练的玉石价格评估模型,评估所述客户输入的待评估玉石数据对应的评估价格。本发明相比现有技术具有以下优点:
[0049] 应用本发明实施例,利用获取的玉石数据对应的真实价格,训练出玉石数据对应的组合加权向量,并将价格评估准确率大于第二预设阈值的组合加权向量作为目标组合加权向量,相对于现有技术中利用人工进行玉石价格的评估,评估起来更加方便,提升了用户体验。

附图说明

[0050] 图1为本发明实施例提供的一种基于机器学习的玉石价格评估系统的结构示意图。

具体实施方式

[0051] 下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
[0052] 本发明实施例提供了一种基于机器学习的玉石价格评估方法,所述方法包括:
[0053] 步骤1:获取玉石图片中的玉石数据,其中,所述玉石数据至少包括:颜色、重量、和真实价格。
[0054] 具体的,所述玉石数据还包括:品牌、样式、材料以及尺寸。
[0055] 示例性的,可通过网络爬虫技术抓取网店中的玉石数据,将这些玉石数据存储到数据库中,
[0056] 玉石数据,其中,玉石数据包括但不仅限于,品牌、样式、颜色、重量、材料、尺寸和价格。例如,获取的玉石数据-1可以包含URL-1(Uniform Resource Locator,统一资源定位符)、品牌-1、样式-1、颜色-1、重量-1、材料-1、尺寸-1和价格-1;获取的玉石数据-2包含URL-2、品牌-2、样式-2、颜色-2、重量-2、材料-2、尺寸-2和价格-2;获取的玉石数据-3包含URL-3、品牌-3、样式-3、颜色-3、重量-3、材料-3、尺寸-3和价格-3。
[0057] 步骤2:利用感知哈希算法,根据所述玉石图片,获取所述玉石图片的感知哈希特征向量。
[0058] 具体的,可以读取所述玉石数据中的每一条记录,然后根据所述玉石图片对应的URL下载图片,然后使用感知哈希算法获取下载的玉石图片的感知哈希特征,其中,感知哈希算法具体步骤包括:第一步:缩小所述玉石图片的尺寸;第二步:简化所述玉石图片的色彩;第三步:计算所述玉石图片的灰度平均值;第四步:将每个像素的灰度与所述灰度平均值进行比较,将大于或者等于所述灰度平均值的像素的灰度值记为‘1’;小于灰度平均值的,记为‘0’;第五步:将第四步中的所有比较结果组合在一起构成的字符串作为感知哈希特征。
[0059] 示例性的,可以读取步骤1中获取的玉石数据中的每一条记录,通过对应的URL网络上获取玉石图片:玉石图片-1、玉石图片-2、玉石图片-3。
[0060] 获取每一玉石图片的感知哈希特征的过程如下:
[0061] 针对每一图片进行如下操作,以玉石图片-1为例,利用图像缩放算法将玉石图片-1的缩小到8*8像素。以去除图片的细节,只保留结构、明暗等基本信息,摒弃不同尺寸、比例带来的图片差异。将缩放后的玉石图片-1转换为灰度图。再将玉石图片-1对应的灰度图中每个像素的灰度,与玉石图片-1对应的灰度图中各像素的灰度平均值进行比较;若像素点的灰度值大于或者等于灰度平均值的,将该像素的灰度值记为‘1’;若像素点的灰度值小于灰度平均值的,将该像素的灰度值记为‘0’。再将获取的各个灰度值,按照预设的顺序进行排列,得到一个长度为64个字符的字符串,该字符串即为若玉石图片-1的感知哈希特征,感知哈希特征也可以被称为“指纹信息”或者“感知哈希特征”。
[0062] 需要说明的是,各个玉石图片对应的字符串中的各个字符的排列顺序是一致的。
[0063] 步骤3:利用颜色简化算法对所述玉石图片进行处理,获得颜色简化后的玉石图片;并统计所述颜色简化后的玉石图片对应的颜色分布直方图向量。
[0064] 以玉石图片-1为例,玉石图片-1是由红绿蓝三原色组成的图片,将其每个单通道灰度图的颜色类别数由256缩减到4个,则每个通道灰度图中的点(x,y)转换后的颜色值为:
[0065] U(x,y)=V(x,y)/(256/4)
[0066] 其中,V(x,y)为颜色简化前,单通道灰度图中点(x,y)处的颜色值;U(x,y)为颜色简化后,单通道灰度图中点(x,y)处的颜色值。
[0067] 在实际应用中,设图片宽度为width,图片高度为height,单位为像素,则x∈[0,width-1],y∈[0,height-1];4为颜色简化后的单通道灰度图中颜色的类别数。则获取的玉石图片-1中每一像素点的颜色值,按照红、绿、蓝三通道的顺序排列,可以为(0,0,0)、或者(0,0,1)、…、或者(3,3,3),也就是说,每一个像素点的颜色值的取值可以有64种组合。
[0068] 然后将图像中点(x,y)处的颜色之和定义为点(x,y)处三个通道的灰度值之和,记为S(x,y),则有:
[0069] S(x,y)=R(x,y)+G(x,y)+B(x,y),其中,
[0070] S(x,y)为像素点坐标(x,y)处的三个通道的灰度值之和;R(x,y)为像素点坐标(x,y)处R通道的灰度值;G(x,y)为像素点坐标(x,y)处G通道的灰度值;B(x,y)为像素点坐标(x,y)处B通道的灰度值。
[0071] 再预设变量T(x,y)(i)为像素点坐标(x,y)处RGB三个颜色通道的灰度值之和,如果像素点坐标(x,y)处RGB三个颜色通道的灰度值之和等于预设值i时,T(x,y)(i)取值为1;如果像素点坐标(x,y)处RGB三个颜色通道的灰度值之和不等于预设值i时,T(x,y)(i)取值为0,则i的取值可以为i∈[0,63]。
[0072] 再利用公式, 计算玉石图片-1中灰度值之和为i的像素点的个数,其中,
[0073] hi为玉石图片-1中灰度值之和为i的像素点的个数;width为图像的宽度,height为图像的高度,单位为像素。
[0074] 由于i的取值可以为i∈[0,63],则共有64个hi。
[0075] 表1为在i取不同的值时,玉石图片-1中灰度值之和为i的像素点的个数的结果;如表1所示,
[0076] 表1
[0077]
[0078] 将表2中最后一栏的数字提取出来,便可以得到此图的颜色分布直方图向量:H=(74141,230,0,0,8,...,53929)。
[0079] 针对每一玉石数据都要按照上述方式进行处理。
[0080] 步骤4:将除价格以外的玉石数据、所述感知哈希特征向量以及所述颜色分布直方图向量组合作为特征向量X;将所述特征向量X及其对应的价格分为训练集和测试集。
[0081] 将本步骤中获取的每一玉石数据、玉石图片的感知哈希特征以及颜色分布直方图向量,组成玉石数据的特征向量X,例如,玉石数据-1的特征向量可以为:
[0082] X=(brand,style,weight,material,length,width,thickness,inner_radius,phash,H),其中,
[0083] Brand为玉石数据-1对应的品牌,style为玉石数据-1对应的样式,weight为玉石数据-1对应的重量,length为玉石数据-1对应的长度,width为玉石数据-1对应的宽度,thickness为玉石数据-1对应的厚度,inner_radius为玉石数据-1对应的内半径,phash为玉石数据-1对应的感知哈希特征,H为玉石数据-1对应的颜色分布直方图向量。
[0084] 具体的,可以将所述特征向量X的集合集分成M个子集,将所述M个子集中的M-1个子集分别作为训练集,将除所述训练集之外的子集作为测试集,其中M为正整数。
[0085] 示例性的,将S101步骤中获取的每一个玉石数据的特征向量X的集合作为一个集合,然后将该集合切分成M个子集,将M个子集中的M-1个子集的集合作为训练集,除M-1个子集之外的子集作为测试集。
[0086] 步骤5:利用所述训练集中的数据训练玉石价格评估模型;
[0087] 具体的,可以在在步骤4中所得的训练集上,使用机器学习中的K近邻算法、梯度提升决策树方法和多元非线性回归拟合方法构构建的玉石价格评估模型,不断地调整算法中的参数,将评估准确率取最大值时的模型作为最终的玉石价格评估模型。
[0088] 所述K近邻算法包括:针对所述测试集中的每一特征向量,根据当前组合加权向量,利用K近邻算法,从所述训练集中选择出K个与当前特征向量最相似特征向量;并根据所述K个与当前特征向量最相似特征向量的真实价格的平均值,获取所述当前特征向量对应的评估价格,其中,所述组合加权向量为,每一特征向量中的各个元素对应的权重的集合。
[0089] 示例性的,以测试集中的特征向量-1为例。根据当前的组合加权向量,W=(w0,w1,...,w9),计算特征向量-1与训练集中的特征向量-8之间的相似度,该过程所利用的公式为,
[0090]
[0091] 其中,similarity(Xi,Xj)为特征向量-1与特征向量-8之间的相似度;wo为与品牌对应的权重;brandj为特征向量-8对应的品牌特征值;brandi为特征向量-1对应的品牌特征值;w1为与样式对应的权重;w2为与重量对应的权重;w3为与材质对应的权重;w4为与长度对应的权重;w5为与宽度对应的权重;w6为与厚度对应的权重;w7为与内半径对应的权重;w8为与汉明距离对应的权重;w9为与颜色直方图向量的相似度对应的权重;stylej为特征向量-8对应的样式特征值;stylei为特征向量-1对应的样式特征值;weightj为特征向量-8对应的重量特征值;weighti为特征向量-1对应的重量特征值;materialj为特征向量-8对应的材料特征值;materiali为特征向量-1对应的材料特征值;lengthj为特征向量-8对应的长度特征值;lengthi为特征向量-1对应的长度特征值;widthj为特征向量-8对应的宽度特征值;widthi为特征向量-1对应的宽度特征值;thicknessj为特征向量-8对应的厚度特征值;
thicknessi为特征向量-1对应的厚度特征值;inner_radiusj为特征向量-8对应的内尺寸特征值;inner_radiusi为特征向量-1对应的内尺寸特征值;hamming_dist(phashj,phashi)为特征向量-1对应的感知哈希特征与特征向量-8对应的感知哈希特征之间的汉明距离;cos<Hj,Hi>为特征向量-1对应的颜色分布直方图向量与特征向量-8对应的颜色分布直方图向量之间的相似度;phashj为特征向量-8对应的感知哈希特征;phashi为特征向量-1对应的感知哈希特征;Hj为特征向量-8对应的颜色分布直方图向量;Hi为特征向量-1对应的颜色分布直方图向量。
[0092] 可以理解的是,品牌、样式、等对应的特征值可以为预设的,另外,重量特征值可以为玉石对应的重量;长度特征值可以为玉石对应的长度,依此类推。
[0093] 然后计算训练集中的每一特征向量,与特征向量-1之间的相似度。再按照特征向量-1与所述训练集中的各个特征向量之间的相似度从大到小的顺序进行排序,将所述排序结果中前K个顺序次序对应的训练集中的特征向量作为选择出的K个与所述特征向量-1最相似的特征向量。
[0094] 利用公式,获取当前特征向量,特征向量-1对应的评估价格,
[0095] 其中,prediction_price(Xi)为当前特征向量对应的评估价格;Xi为特征向量-1;Xj为K个与特征向量-1最相似的特征向量中的第j个特征向量,且j∈[0,K];i为特征向量-1的序号;j为K个与特征向量-1最相似的特征向量中第j个特征向量的序号;∑为求和函数;
real_price()为K个与特征向量-1最相似的特征向量中第j个特征向量对应的真实价格;
Topk()为K个与特征向量-1最相似特征向量;max()为最大值求解函数;similarity(Xi,Xj)为特征向量-1与K个特征向量中的第j个特征向量之间的相似度。
[0096] 再针对测试集中的每一特征向量,计算该特征向量对应的评估价格,如特征向量-1对应的评估价格可以为评估价格-1;如特征向量-2对应的评估价格可以为评估价格-2;如特征向量-3对应的评估价格可以为评估价格-3。
[0097] 步骤6:使用所述测试集中的数据评价训练好的玉石价格评估模型。
[0098] 具体的,可以利用公式,
[0099] 获取每一评估价格对应的特征值,其中,
[0100] correct_prediction(Xi)为序号为i的评估价格对应的特征值;prediction_price(Xi)为评估价格;real_price(Xi)为与评估价格对应的真实价格;L为第一预设阈值;
[0101] 利用公式, 计算训练的玉石价格评价模型的精度,其中,
[0102] accuracy为训练的玉石价格评价模型的精度;correct_prediction(Xi)为每一评估价格对应的特征值;N为评估价格的数量。
[0103] 示例性的,以特征向量-1对应的评估价格可以为评估价格-1,以及特征向量-1对应的玉石数据-1中的真实价格-1为例。
[0104] 计算评估价格-1与真实价格-1之间的差值,获取差值-1,根据差值-1,利用以下公式,
[0105] 计算评估价格-1对应的特征值-1,其中,
[0106] correct_prediction(Xi)为评估价格-1的特征值;prediction_price(Xi)为评估价格-1;real_price(Xi)为真实价格-1;L为第一预设阈值,第一预设阈值可以为,[0107] 0.1*real_price(Xi)。
[0108] 如果评估-1对应的特征值为1.
[0109] 针对测试集中的每一个特征向量的评估价格以及真实价格计算,每一个评估价格对应的特征值。
[0110] 如果,获取的各个评估价格的特征值分别为:
[0111] 1、0、1、0、1、0。
[0112] 利用公式, 计算训练的玉石价格评价模型的精度,如果计算的比例为0.5。
[0113] 示例性的,如果第二预设阈值为0.4,则本步骤中计算的精度大于第二预设阈值,执行步骤7;如果第二预设阈值为0.8,则本步骤中计算的精度小于第二预设阈值,则使用梯度提升决策树方法调整当前组合加权向量中元素的值,然后继续训练玉石价格评估模型。
[0114] 步骤7:将客户输入的待评估玉石数据输入玉石价格评估模型,获得待评估玉石的评估价格。
[0115] 具体的,可以获取客户输入的待评估玉石数据对应的玉石数据、感知哈希特征向量以及颜色分布直方图向量;将待评估玉石数据对应的玉石数据、感知哈希特征向量以及颜色分布直方图向量的组合作为第二特征向量;针对所述第二特征向量,根据步骤5训练的玉石价格评估模型,评估所述客户输入的待评估玉石数据对应的评估价格。
[0116] 示例性的,将步骤6中用到的当前组合加权向量作为目标组合加权向量,然后利用当前组合加权向量对获取的待评估玉石数据进行价格评估。
[0117] 评估的过程可以为:
[0118] 获取待评估玉石数据对应的第二特征向量,根据目标组合加权向量,计算训练集中的每一特征向量与第二特征向量的相似度,将获取的相似度按照从大到小的顺序排列,将前K个顺序次序对应的真实价格的平均值作为第二特征向量对应的评估价格。
[0119] 应用本发明图1所示实施例,利用获取的玉石数据对应的真实价格,训练出玉石数据对应的组合加权向量,并将价格评估准确率大于第二预设阈值的组合加权向量作为目标组合加权向量,相对于现有技术中利用人工进行玉石价格的评估,评估起来更加方便,提升了用户体验。
[0120] 图1为本发明实施例提供的一种基于机器学习的玉石价格评估系统的结构示意图,如图1所示,
[0121] 该系统可以包括云端和客户端两大部分,其中,云端包括:数据处理模块、玉石图片的感知哈希特征提取模块、玉石图片颜色简化及直方图特征提取模块、多因素非线性回归模块、模型评价模块、玉石价格评价模块。客户端可以包括:手机端、PC端、WEB端。
[0122] 需要说明的是,数据处理模块、玉石图片的感知哈希特征提取模块、玉石图片颜色简化及直方图特征提取模块、多因素非线性回归模块、模型评价模块、玉石价格评价模块的功能与本发明图1所示实施例相对应。
[0123] 当用户将待评估的玉石图片上传到云端后,云端利用训练好的模型,对待评估的玉石图片对应的玉石进行价格评估,然后将评估好的价格返回到客户端。
[0124] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。