From e23408b0dd94034ca6aee4fd70712e134f73de91 Mon Sep 17 00:00:00 2001 From: HeHaonan <1822907900@qq.com> Date: Thu, 22 Aug 2024 09:40:25 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/bostonAnalysis.vue | 59 ++++++++++--------- 1 file changed, 31 insertions(+), 28 deletions(-) diff --git a/src/views/portraitModel/components/bostonAnalysis.vue b/src/views/portraitModel/components/bostonAnalysis.vue index cad9f9a..3a83470 100644 --- a/src/views/portraitModel/components/bostonAnalysis.vue +++ b/src/views/portraitModel/components/bostonAnalysis.vue @@ -297,10 +297,10 @@ const quadrant1 = ref(""); const quadrant2 = ref(""); const quadrant3 = ref(""); const quadrant4 = ref(""); -const quadrant1Color = ref('') -const quadrant2Color = ref('') -const quadrant3Color = ref('') -const quadrant4Color = ref('') +const quadrant1Color = ref(""); +const quadrant2Color = ref(""); +const quadrant3Color = ref(""); +const quadrant4Color = ref(""); const step1Data = ref([ { name: "A", @@ -1099,9 +1099,9 @@ const step5EchartInit = () => { ], }; optionStep5.value.series[0].markArea.data[0][0].name = quadrant1.value; - optionStep5.value.series[0].markArea.data[1][0].name = quadrant2.value - optionStep5.value.series[0].markArea.data[2][0].name = quadrant3.value - optionStep5.value.series[0].markArea.data[3][0].name = quadrant4.value + optionStep5.value.series[0].markArea.data[1][0].name = quadrant2.value; + optionStep5.value.series[0].markArea.data[2][0].name = quadrant3.value; + optionStep5.value.series[0].markArea.data[3][0].name = quadrant4.value; optionStep5.value.series[0].markArea.data[0][0].itemStyle.color = quadrant1Color.value; optionStep5.value.series[0].markArea.data[1][0].itemStyle.color = quadrant2Color.value; optionStep5.value.series[0].markArea.data[2][0].itemStyle.color = quadrant3Color.value; @@ -1363,27 +1363,30 @@ const getData = () => { module: "波士顿矩阵分析", }) .then((res) => { - step1Data.value[0].params1 = res.data.stepFiveA; - step1Data.value[0].params2 = res.data.stepFiveB; - step1Data.value[1].params1 = res.data.stepFiveC; - step1Data.value[1].params2 = res.data.stepFiveD; - step1Data.value[2].params1 = res.data.stepSixA; - step1Data.value[2].params2 = res.data.stepSixB; - step1Data.value[3].params1 = res.data.stepSixC; - step1Data.value[3].params2 = res.data.stepSixD; - step2Data.value[4].params1 = res.data.stepSevenA; - step2Data.value[4].params2 = res.data.stepSevenB; - chart1OptionData.value = JSON.parse(res.data.stepSevenC); - // console.log(JSON.parse(res.data.stepSevenC),'666'); - chart2OptionData.value = JSON.parse(res.data.stepSevenD); - quadrant1.value = res.data.stepEightA; - quadrant2.value = res.data.stepEightB; - quadrant3.value = res.data.stepEightC; - quadrant4.value = res.data.stepEightD; - quadrant1Color.value = res.data.stepNineA; - quadrant2Color.value = res.data.stepNineB; - quadrant3Color.value = res.data.stepNineC; - quadrant4Color.value = res.data.stepNineD; + if (res.data) { + step1Data.value[0].params1 = res.data.stepFiveA; + step1Data.value[0].params2 = res.data.stepFiveB; + step1Data.value[1].params1 = res.data.stepFiveC; + step1Data.value[1].params2 = res.data.stepFiveD; + step1Data.value[2].params1 = res.data.stepSixA; + step1Data.value[2].params2 = res.data.stepSixB; + step1Data.value[3].params1 = res.data.stepSixC; + step1Data.value[3].params2 = res.data.stepSixD; + step2Data.value[4].params1 = res.data.stepSevenA; + step2Data.value[4].params2 = res.data.stepSevenB; + chart1OptionData.value = JSON.parse(res.data.stepSevenC); + // console.log(JSON.parse(res.data.stepSevenC),'666'); + chart2OptionData.value = JSON.parse(res.data.stepSevenD); + quadrant1.value = res.data.stepEightA; + quadrant2.value = res.data.stepEightB; + quadrant3.value = res.data.stepEightC; + quadrant4.value = res.data.stepEightD; + quadrant1Color.value = res.data.stepNineA; + quadrant2Color.value = res.data.stepNineB; + quadrant3Color.value = res.data.stepNineC; + quadrant4Color.value = res.data.stepNineD; + } + // step2Data.value[14].params = res.data.stepTenA; // step2Data.value[15].params = res.data.stepTenB; // step2Data.value[16].params = res.data.stepTenC; From 44f78952d89caf54ec83a2a9b94ca5f81f0c9d78 Mon Sep 17 00:00:00 2001 From: HeHaonan <1822907900@qq.com> Date: Thu, 22 Aug 2024 10:41:18 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/request.js | 4 +- .../components/basketAnalysis.vue | 220 ++++++------------ 2 files changed, 67 insertions(+), 157 deletions(-) diff --git a/src/utils/request.js b/src/utils/request.js index f36818c..eb322f5 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -16,8 +16,8 @@ axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8' const service = axios.create({ // axios中请求配置有baseURL选项,表示请求URL公共部分 // baseURL: import.meta.env.VITE_APP_BASE_API, - // baseURL:'http://118.31.7.2:9868/', - baseURL:'http://192.168.2.16:9868/', + baseURL:'http://118.31.7.2:9868/', + // baseURL:'http://192.168.2.16:9868/', // 超时 timeout: 100000 }) diff --git a/src/views/portraitModel/components/basketAnalysis.vue b/src/views/portraitModel/components/basketAnalysis.vue index 878abed..bbf0033 100644 --- a/src/views/portraitModel/components/basketAnalysis.vue +++ b/src/views/portraitModel/components/basketAnalysis.vue @@ -12,7 +12,8 @@ 案例背景: - 购物篮分析是指通过分析消费者在电商平台上的购物数据,了解他们购买商品之间的关联性,在做商品推荐和货架摆放布局时候,将关联度高的商品放一起捆绑销售,从而提升销售额。
+ 购物篮分析是指通过分析消费者在电商平台上的购物数据,了解他们购买商品之间的关联性,在做商品推荐和货架摆放布局时候,将关联度高的商品放一起捆绑销售,从而提升销售额。 +
现有某购物商场的购物篮数据,请分析两两搭配销售的价值。A、B、C、D分别代表不同的商品
@@ -26,24 +27,22 @@ backgroundColor: '#6A7DE9!important', }" > - - - - - - - - + + + +
下载数据

- 计算公式如下:
+ 计算公式如下: +
1.支持度是指A和B两个商品同时被购买的概率,AB组合的支持度=同时包含A和B商品的订单数/总订单数*100%=P(A∩B)
2.置信度是指购买A之后又购买了B的条件概率,是买了A和B的订单占所有买了A的订单里的占比,A对B的置信度=P(A∩B)/P(A)
- 3.提升度是指在购买A产品这个条件下购买B产品的可能性与没有这个条件下购买B产品的可能性之比(置信度/无条件概率),A对B的提升度=A对B的置信度/P(B)。
+ 3.提升度是指在购买A产品这个条件下购买B产品的可能性与没有这个条件下购买B产品的可能性之比(置信度/无条件概率),A对B的提升度=A对B的置信度/P(B)。 +
一般而言,提升度如果小于1,则该推荐规则不应该被使用。

@@ -54,30 +53,21 @@ 第一步,划分商品组合 - 根据购物篮A、B、C、D四种不同的商品,按照两两搭配的方式,可能有以下几种组合。
+ 根据购物篮A、B、C、D四种不同的商品,按照两两搭配的方式,可能有以下几种组合。 +
请按照A、B、C、D顺序依次两两组合:
- + — - + @@ -85,14 +75,15 @@
- 添加组合 + 添加组合

    商品组合

    -
  • {{ item || "-" }}
  • +
  • + {{ item }} + - +
@@ -107,9 +98,7 @@ 第二步,计算无条件概率
- - 根据购物篮信息,计算A、B、C、D四种商品的无条件概率。 - + 根据购物篮信息,计算A、B、C、D四种商品的无条件概率。
- - + @@ -145,7 +128,8 @@ 第三步,计算支持度、置信度、提升度
- 按照第一步中的两两组合情况,依次计算各自组合的支持度、置信度、提升度。
+ 按照第一步中的两两组合情况,依次计算各自组合的支持度、置信度、提升度。 +
计算结果保留小数点后两位小数。
@@ -159,39 +143,23 @@ backgroundColor: '#6A7DE9!important', }" > - - + @@ -205,8 +173,10 @@ 第四步,判断两两搭配销售价值
- 当A对B的提升度>1,则表示买A再买B的概率大于本身买B的概率,就表示买A对买B带来了提升效果。
- 当A对B的提升度<1,则表示买A再买B的概率小于本身买B的概率,就表示买A对买B带来了负向效果。
+ 当A对B的提升度>1,则表示买A再买B的概率大于本身买B的概率,就表示买A对买B带来了提升效果。 +
+ 当A对B的提升度<1,则表示买A再买B的概率小于本身买B的概率,就表示买A对买B带来了负向效果。 +
当A对B的提升度 = 1,则代表买A对买B没有影响。
@@ -220,21 +190,10 @@ backgroundColor: '#6A7DE9!important', }" > - - +