1. Job Roadmap
  2. Home
  3. Problem Set
  4. codenotelist
  5. Forum
  6. course
  7. Shore Share Sessions
  8. Record
  1. Login
  2. Sign Up
  3. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
    ZhContent TextSol AI分析

解题思路

本题要求用 CART 决策树 在二维特征(实部 x1、虚部 x2)上完成 16QAM 符号标签的分类,并使用 Gini 系数作为划分标准,树的最大深度为 5,且切分点仅允许取自集合 {-3,-2,-1,0,1,2,3}。训练后需要输出: 1)训练样本集合的整体 Gini 系数;2)对给定测试点的预测标签。

相关算法与实现要点

  1. 节点不纯度(Gini) 对任意样本集合 DDD,令第 iii 类(标签)比例为 PiP_iPi​,则

P4465.第3题-基于决策树的QAM调制符合检测

    1000ms Tried: 328 Accepted: 65 Difficulty: 7 所属公司 : 华为
    算法与标签>机器学习算法

题目内容

在无线通信中使用QAMQAMQAM调制将信息通过无线信号从发送端传递到接收端。QAMQAMQAM调制后的信号可以使用一个复数表示。16Q16Q16QAM调制会生成161616个不同的复数信号。在无线信号传输过程中,信号会受到高斯噪声污染,使得接收到的QAMQAMQAM信号与发送的QAMQAMQAM信号产生误差。该过程可以用如下公式表示:

Srx=Stx+nS_{rx} = S_{tx} + nSrx​=Stx​+n,其中,nnn为复数高斯噪声。

例如,一个发送16QAM16QAM16QAM调制符号为:

Stx=−1+1jS_{tx} = -1 + 1jStx​=−1+1j

传输过程中受到的噪声信号为:

n=0.38−1.2jn = 0.38 - 1.2jn=0.38−1.2j

接收到的16QAM16QAM16QAM调制符号为:

Srx=−0.62−0.2jS_{rx} = -0.62 - 0.2jSrx​=−0.62−0.2j

无线信号的符号检测过程,就是根据接收到的受噪声污染的QAMQAMQAM符号,判决输出其真实发送QAMQAMQAM符号。

下图所示为16QAM16QAM16QAM调制符号的星座图。图中,蓝色圆点表示发送的QAMQAMQAM符号,红色点表示受噪声污染后的接收QAMQAMQAM符号。

请使用CART决策树实现一个QAMQAMQAM符号检测器,完成16QAM16QAM16QAM调制的无线信号的接收检测。

要求:

  1. 根据输入的MMM个接收16QAM调制符号和真实标签构建CART决策树;
  2. 使用基尼系数(GiniGiniGini)作为划分标准;
  3. 决策树最大深度=555;
  4. 特征值切分点限制为{−3,−2,−1,0,1,2,3}\{-3,-2,-1,0,1,2,3\}{−3,−2,−1,0,1,2,3};
  5. 输出训练集的GiniGiniGini系数;
  6. 输出验证QAMQAMQAM符号标签。

输入描述

第一行:一个整数 MMM ,表示训练样本集个数,取值范围[10~20]

接下来M行:两个实数 x1x1x1 , x2x2x2 和一个整数 yyy ,以空格间隔。其中, x1x1x1 , x2x2x2 分别表示复数QAM符号的实部和虚部,取值范围 [-10 ~ +10],保留小数点后2位。 yyy 表示QAM符号的标签,取值范围[0~15]。

第 M+2M+2M+2 行:两个实数 x1x1x1 , x2x2x2 ,分别表示测试用接收QAM符号的实部和虚部,取值范围 [-10 ~ +10],保留小数点后2位。

输出描述

第一行:一个实数 GGG ,表示训练样本集合的Gini系数,四舍五入后保留小数点后4位。

第二行:一个整数 yyy ,表示测试QAM符号的分类标签。

样例1

输入

10
2.56 0.73 14
3.88 0.83 14
-0.32 2.93 7
-2.99 -3.56 0
3.36 -1.52 13
-2.70 -1.13 1
-0.57 0.97 6
2.71 3.22 15
2.35 -2.55 12
4.18 -1.25 13
-1.14 0.20

输出

0.8600
6

说明

上述输入第1行为训练样本集合中样本个数:10。

接下来10行为10个16QAM调制符号的接收信号(复数信号的实部、虚部),以及对应的原始发送符号的标签。

第12行为测试用的接收16QAM调制符号信号(复数信号的实部、虚部)。

输出第1行数值为使用这10个符号及对应原始符号标签作为训练样本集合,计算出的该集合Gini系数。数值四舍五入后保留四位小数。

输出第2行为基于上述构建的决策树对测试样本的原始发送符号标签的预测值。

样例2

输入

11
-3.24 0.96 2
2.79 0.95 14
2.99 -2.94 12
0.67 -2.55 8
-1.30 -0.71 5
0.73 -2.96 8
-3.04 1.30 2
-2.81 -0.68 1
2.88 3.33 15
-2.55 2.87 3
-1.01 -0.62 5
-3.24 -2.90

输出

0.8595
2

说明

上述输入第1行为训练样本集合中样本个数:11。

接下来11行为11个16QAM调制符号的接收信号(复数信号的实部、虚部),以及对应的原始发送符号的标签。

第13行为测试用的接收16QAM调制符号接收信号(复数信号的实部、虚部)。

输出第1行为使用这11个符号和对应的符号标签作为训练样本集合,计算出的该集合GiniGiniGini系数。数值四舍五入后保留四位小数。

输出第2行为基于上述构建的决策树对测试样本的原始发送符号标签的预测值。

提示

样本集合中的样本有KKK个类别,每个类别的样本,在样本集合中的概率分布为P=(P1,P2,...,PK)P = (P_1, P_2, ..., P_K)P=(P1​,P2​,...,PK​)

给定样本集合DDD,计算其GiniGiniGini系数时,首先需要计算出样本集合中每个类别出现的比例PiP_iPi​,然后基于如下GiniGiniGini系数计算公式计算:

Gini(D)=1−∑i=1KPi2Gini(D) = 1 - \sum_{i=1}^{K} P_i^2Gini(D)=1−∑i=1K​Pi2​

其中,PiP_iPi​是第iii类样本出现的比例,KKK是样本中总类别数。

CART树实现步骤:

  1. 特征及切分点选择

遍历样本所有特征,对每一个特征值的特征值进行排序,以相邻特征值的中值作为切分点,计算以该切分点将样本划分为D1D1D1和D2D2D2两个子集后的加权基尼系数。

加权GiniGiniGini系数计算公式为:

Giniweight=W1Gini(D1)+W2Gini(D2)Gini_{weight} = W_1Gini(D_1) + W_2Gini(D_2)Giniweight​=W1​Gini(D1​)+W2​Gini(D2​)

其中,W1W_1W1​为子集D1D1D1中样本在集合DDD中占比,W2W_2W2​为子集D2D2D2中样本在集合DDD中占比。

  1. 节点划分

选择使加权GiniGiniGini系数最小的特征和特征值切分点,将数据集划分为左右两个子集:左子集D1(<特征值划分点)D1(<特征值划分点)D1(<特征值划分点)和右子集D2(≥特征值划分点)D2(≥特征值划分点)D2(≥特征值划分点)。

  1. 递归构建树

对每个子集重复步骤1和2,直到满足停止条件(如节点样本数小于阈值,或达到最大深度)。

登录后即可使用 AI 分析。

模式
倒计时时长
:

最长 10 小时 59 分;应用后按此时长重新开始。

提示:点击提交记录在左侧题面区域查看详情
题库
AI分析设置
留空使用官方API Key,每天有次数限制(自定义API Key仅限会员和管理员使用,不限次数)
会员和管理员可切换模型;切到 Kimi/智谱/通义/豆包时需填写对应供应商 API Key
升级会员,可将运行与提交冷却时间缩短至 1 秒起

Status

  • Judging Queue
  • Service Status

Development

  • Open Source

Support

  • Help
  • Contact Us

About

  • About
  • Privacy
  • Terms of Service
  • Copyright Complaint
  1. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
  2. Legacy mode
  3. Theme
    1. Light
    2. Dark
  1. 京ICP备2025123107号-1
  2. Worker 3, 57ms
  3. Powered by Hydro v5.0.0-beta.18 Community
CLOSE


ScanQRCodePrompt

请使用微信扫描下方二维码完成注册

Forgot password or username?