婚配模拟实验

婚恋配对实验

目的:

通过模拟匹配,探索常见的寻偶标准,哪一种更大的概率找到对象。

一、婚恋配对模拟规则:

  1. 按照一定规则生成了 1 万男性 + 1 万女性样本:
    • 在配对实验中,这 2 万个样本具有各自不同的个人属性(财富、内涵、样貌),每项属性都有一个得分。
    • 财富值符合指数分布,内涵和颜值符合正态分布。
    • 三项的平均值都为 60 分,标准差都为 15 分。
  2. 模拟实验,基于现实世界的提炼以及适度简化,概括了三个最主流的择偶策略:
    • 策略1:门当户对,要求双方三项指标加和的总分接近,差值不超过 20 分(算均值);
    • 策略2:男才女貌,男性要求女性的外貌分比自己高出至少 10 分,女性要求男性的财富分比自己高出至少 10 分;
    • 策略3:志趣相投、适度引领,要求对方的内涵得分在比自己 低 10 分 ~ 高 10分 之间,且外貌和财富两项与自己的得分差值都在 5 分之内。
  3. 这里按单项选择,用男性去匹配女性,每一轮实验中,我们将三种策略随机平分给所有样本(即采用每种策略的男性有 3333 个样本)
  4. 我们为单身男女随机选择一个对象,若对方互相符合要求就算配对成功,配对失败的男女则进入下一轮配对。

二、样本数据处理

  1. 处理样本数据
    • 在配对实验中,这 2 万个样本具有各自不同的个人属性(财富、内涵、样貌),每项属性都有一个得分。
    • 财富值符合指数分布,内涵和颜值符合正态分布。
    • 三项的平均值都为 60 分,标准差都为 15 分。

    要求:

    1. 构建函数实现样本数据生成模型,函数参数之一为“样本数量”,并用该模型生成 1 万男性 + 1 万女性数据样本(包括三个指标:财富、内涵、样貌)
    2. 绘制柱状图查看每个人的属性分值情况

    提示:

    • 正态分布:np.random.normal(loc = 60,scale = 15.size = n)
    • 指数分布:np.random.exponential(scale = 15,size = n) + 45
    正态分布与指数分布
    样本数据属性分值情况

数据生成后的格式:

数据生成后的格式
  1. 生成 99 个男性、99 个女性样本数据,分别针对三种策略构建算法函数(核心:筛选人数)
    • 策略1:门当户对,要求双方三项指标加和的总分接近,差值不超过 20 分;

    • 策略2:男才女貌,男性要求女性的外貌分比自己高出至少 10 分,女性要求男性的财富分比自己高出至少 10 分;

    • 策略3:志趣相投、适度引领,要求对方的内涵得分在比自己低 10 分 ~ 高 10分之间,且外貌和财富两项与自己的得分差值都在 5 分之内。

    • 每一轮实验中,我们将三种策略随机平分给所有的样本,这里则是三种分别 33 人。

    • 这里不同策略匹配结果可能重合,所以为了简化模型

      → 这里先进行策略 1 模拟

      → 模拟成功后去掉该轮成功匹配的女性数据,再进行策略 2 模拟

      → 模拟成功后去掉该轮成功匹配的女性数据,再进行策略 3 模拟

要求:

  1. 生成样本数据
  2. 给男性样本数据,随机分配策略选择 → 这里以男性为出发作为策略选择方
  3. 尝试做第一轮匹配,记录成功的匹配结果,并筛选出失败的男女进入下一轮匹配
  4. 构建模型,并模拟 1 万男性 + 1 万女性的配对实验
  5. 通过数据分析,回答下面的问题:
    • 百分之多少的样本数据成功匹配到了对象?
    • 采取不同择偶策略的匹配成功率分别是多少?
    • 采取不同择偶策略的男性各项平均分是多少?

提示:

  1. 择偶策略评判标准:
    • 若匹配成功,则该男性与被匹配在这一轮都算成功,退出游戏
    • 若匹配失败,则该男性与被匹配在这一轮都算失败,并进行下一轮
    • 若同时多个男性选择了同一个女性,且满足成功配对要求,则综合评分高的男性算为匹配成功
  2. 构建空的数据集,用于存储匹配成功的数据
  3. 每一轮匹配之后,删除成功匹配的数据之后,进入下一轮,这里删除数据用 df.drop()
  4. 这里建议用 while 去做迭代 → 当该轮没有任何配对成功,则停止实验。

匹配成功的数据存储格式:

匹配成功的数据存储格式
结论1:
  1. 71.22% 的样本数据成功匹配到了对象

  2. 策略1 的匹配成功率为 100.00%

    策略2 的匹配成功率为 39.03%

    策略3 的匹配成功率为 73.78%

    即门当户对匹配率最高,其次是志趣相投,男才女貌的匹配率较低。

  3. 择偶策略1的男性 → 财富均值为 60.15,内涵均值 59.85,外貌均值为 59.84
    择偶策略2的男性 → 财富均值为 72.05,内涵均值 60.22,外貌均值为 55.17
    择偶策略3的男性 → 财富均值为 57.80,内涵均值 59.91,外貌均值为 57.80

    三个策略均值相差不大

  4. 通过箱型图查看整体趋势可以得出,策略2 的财富值明显较高;内涵方面 3 个策略都相差不大;外貌方面,策略1 和 策略3 外貌的最高值高于策略2。

  5. 以 99 男 + 99 女的样本数据,绘制匹配折线图

    要求:

    1. 生成样本数据,模拟匹配实验
    2. 生成绘制数据表格
    3. bokeh 制图
      • 找了设置图例,并且可交互(消隐身模式)

    提示:

    1. bokeh 制图时,y 轴为男性,x 轴为女性

    2. 绘制数据表格中,需要把男女性的数字编号提取出来,这样图表横纵轴好识别

    3. bokeh 绘制折线图示意:p.line([0,女性数字编号,女性数字编号],[男性数字编号,男性数字编号,0])
      数据表格格式
配对实验过程模拟示意
  1. 生成不同类型男女配对成功率矩阵图

    要求:

    1. 以之前 1 万男 + 1 万女实验的结果为数据

    2. 按照财富值、内涵值、外貌值分别给三个区间,以区间来评判“男女类型”

      • 高分(70 - 100),中分(50 - 70),低分(0 -50)
      • 按照此类分布,男女性都可以分为 27 中类型:财高品高颜高,财高品中颜高,财高品低颜高 等
    3. bokeh 制图

      • 散点图
      • 27 行 * 27列,三点的颜色深浅代表匹配成功率

提示:

  1. 注意绘图的数据结构

  2. 这里散点图通过 xy 轴定位数据,然后通过设置颜色的透明度来表示匹配成功率

  3. alpha 字段为每种类型匹配成功率标准化之后的结果,再乘以一个参数

    → data['alpha'] = (data['chance'] - data['chance'].min()) /(data['chance'].max() - data['chance'].min()) * 8

Bokeh 绘图数据结构

Bokeh 绘图数据结构:

不同类型配对成功率

由上图可知,男性财中品中颜低 与 女性财低品中颜中 的匹配率较高,相当于 颜值较低的普通男性 与 财富值较低的普通女性 的匹配率较高。

你可能感兴趣的:(婚配模拟实验)