基于混合数据类型的多标准交替排序

cod*_*eak 1 python statistics recommendation-engine ranking mcdm

我正在构建一个推荐系统,它可以对汽车替代品进行基于多标准的排名。我只需要以有意义的方式对替代方案进行排名。我有办法通过表格询问用户问题。

每辆车将根据以下标准进行评判:价格、尺寸、电动/非电动、距离等。正如您所看到的,它混合了各种数据类型,包括序数、基数(计数)和定量数据。

我的问题如下:

  1. 我应该使用哪种技术将所有模型合并到一个可以排名的分数中。我查看了标准化加权和模型,但我很难将权重分配给序数(排名)数据。我尝试使用更智能的方法为序数数据分配数值权重,但我不确定它是否合适。请帮忙!

  2. 在有人帮助我找到最佳排名方法的答案之后,如果最佳排名替代方案在绝对范围内不够好怎么办?我如何检查以进一步扩大替代集?

3.由于上面提到的标准(价格等)都在不同的单位上,是否有一个好的方法来标准化属于不同尺度的混合数据类型?鉴于数据属于许多不同的类型,这样做是否有意义?

对这些问题的任何帮助将不胜感激!谢谢你!

Pat*_*elo 5

好问题。

\n\n

我建议您应用 AHP 来分配每个标准的权重,并应用 TOPSIS 来对标准进行评分和排名。

\n\n

事实上,MCDC(多标准决策)的大多数算法都具有标准化方法。

\n\n

让我们分析一下您的案例:

\n\n

您的标准是:价格、尺寸、电动/非电动、距离。

\n\n

价格、尺寸和距离可以计算为整数/浮点数,而对于定性数据点,您有一些选择......

\n\n
    \n
  1. 使用布尔逻辑。(所以电动 = 1,非电动 = 0)
  2. \n
  3. 使用模糊逻辑。(所以电 = [0-1]) 1
  4. \n
  5. 使用直觉模糊逻辑(So Electric = [0-1] ,Non-Electric = [0-1])2
  6. \n
  7. 使用中智逻辑(所以电动= [t,i,f],其中t是汽车电动的程度,i是你无法分辨的程度,f是汽车非电动的程度。3
  8. \n
\n\n

如果您的决策空间由全电动或完全非电动汽车组成,但中间没有任何内容,则应使用布尔逻辑。如果您的汽车的电动程度不同(例如,如果您有混合动力汽车),则模糊逻辑。如果您还想考虑某辆车非电动的程度,您应该使用直觉模糊逻辑。如果你的信息不完整,你应该使用中智逻辑,所以假设有一些汽车你无法分辨它们是什么。

\n\n

为了简化起见,由于您只有两个类别,因此在您的特定情况下我会坚持布尔逻辑,并且我假设电动类别比非电动类别更受欢迎。

\n\n

让我们看一下 TOPSIS 算法4 ...

\n\n

从你的例子来看,决策矩阵看起来像这样:

\n\n
//DECISION MATRIX \n\n          Price     Size      Type    Distance\nCar1 =    [250]  ,  [300]  ,  [1]  ,  [30] \nCar2 =    [650]  ,  [200]  ,  [0]  ,  [50] \nCar3 =    [100]  ,  [600]  ,  [0]  ,  [10]\n
Run Code Online (Sandbox Code Playgroud)\n\n

现在,您必须计算归一化决策矩阵。为此,您首先必须计算性能值。

\n\n

公式为:

\n\n

在此输入图像描述

\n\n

这意味着对于每个标准,您必须将每个案例乘以 2,对所有案例求和,然后计算总和的平方根。

\n\n

所以...

\n\n
//DECISION MATRIX + Performance Score\n\n          Price     Size      Type    Distance\nCar1 =    [250]  ,  [300]  ,  [1]  ,  [30] \nCar2 =    [650]  ,  [200]  ,  [0]  ,  [50] \nCar3 =    [100]  ,  [600]  ,  [0]  ,  [10]\n\npScore =  [703]  ,  [700]  ,  [1]  ,  [60]\n
Run Code Online (Sandbox Code Playgroud)\n\n

一旦获得绩效分数,您就可以标准化。为此,您只需计算标准的每个值与相应绩效分数之间的除法即可。

\n\n
//NORMALISED DECISION MATRIX \n\n          Price      Size       Type    Distance\nCar1 =    [0.36]  ,  [0.43]  ,  [1]  ,  [0.51] \nCar2 =    [0.92]  ,  [0.29]  ,  [0]  ,  [0.85] \nCar3 =    [0.14]  ,  [0.86]  ,  [0]  ,  [0.17]\n
Run Code Online (Sandbox Code Playgroud)\n\n

现在您必须计算加权归一化决策矩阵。(我假设你已经分配了权重,如果没有,你可以检查 AHP 算法[5])

\n\n
// WEIGHTED NORMALISED DECISION MATRIX \n\n          Price      Size       Type    Distance\nCar1 =    [0.07]  ,  [0.04]  ,  [0.3] , [0.20] \nCar2 =    [0.18]  ,  [0.03]  ,  [0]  ,  [0.34] \nCar3 =    [0.03]  ,  [0.09]  ,  [0]  ,  [0.07]\n\nWeight =  [0.20]  ,  [0.10]  ,  [0.30], [0.40]\n
Run Code Online (Sandbox Code Playgroud)\n\n

TOPSIS 算法基于这样的思想:最理想的替代方案是与理想解的几何距离最近且与反理想解的几何距离最大的替代方案。

\n\n

在此输入图像描述

\n\n

我们需要明白,有些标准是收益,有些标准是成本。例如,我们可能希望最大化尺寸和类型,但最小化价格和距离。

\n\n

基于此,我们来计算理想解和反理想解:

\n\n
          Price      Size       Type    Distance\nCar1 =    [0.07]  ,  [0.04]  ,  [0.3] , [0.20] \nCar2 =    [0.18]  ,  [0.03]  ,  [0]  ,  [0.34] \nCar3 =    [0.03]  ,  [0.09]  ,  [0]  ,  [0.07]\n\nIdeal =   [0.03]  ,  [0.09]  ,  [0.3],  [0.07]\n-Ideal =  [0.18]  ,  [0.03]  ,  [0]  ,  [0.34]\n
Run Code Online (Sandbox Code Playgroud)\n\n

之后,对于每辆车,您必须使用理想和反理想解决方案计算欧几里德距离:

\n\n

公式是...

\n\n

在此输入图像描述

\n\n

例如,对于 car1 和理想解决方案之间的距离为((0.07-0.03)**2 + (0.04-0.09)**2 + (0.3-0.3)**2 + (0.20-0.07)**2) ** 0.5

\n\n

在 python 中,你可以使用 Spicy Library 来做到这一点。[6]

\n\n

一旦计算出每种汽车替代方案到理想和反理想解决方案的距离,您就必须计算性能得分,这基本上是一个比率。

\n\n

在此输入图像描述

\n\n

因此,对于每个汽车替代方案,到 i- 的距离 /(到 i- 的距离 + 到 i+ 的距离)。

\n\n

一旦你获得了每种汽车替代品的性能分数,按降序对它们进行排序,你就得到了它们各自的排名。

\n\n

资源:

\n\n\n\n

参考:

\n\n
    \n
  • 1 路易斯安那州扎德 (1965)。模糊集。信息与控制,8(3), 338-353。
  • \n
  • 2 阿塔纳索夫,KT (1983)。直觉模糊集,VII ITKR\xe2\x80\x99s 会议,Sofia 在 Central Sci 中被废黜。布尔格技术图书馆。阿卡德。科学,1697,84。
  • \n
  • 3 Smarandache, F. (1995)。中智逻辑和集合,女士。
  • \n
  • 4 Hwang, CL 和 Yoon, K. (1981)。多属性决策方法。多属性决策(第 58-191 页)。施普林格、柏林、海德堡。
  • \n
  • 5 萨蒂,RW (1987)。层次分析法\xe2\x80\x94它是什么以及如何使用。数学建模, 9(3-5), 167.\ndoi:10.1016/0270-0255(87)90473-8\n\n
  • \n
\n