2024 “华为杯” 中国研究生数学建模竞赛(B题)深度剖析|WLAN组网中网络吞吐量建模|数学建模完整代码+建模过程全解全析
CSDN 2024-09-30 13:37:01 阅读 53
当大家面临着复杂的数学建模问题时,你是否曾经感到茫然无措?作为2022年美国大学生数学建模比赛的O奖得主,我为大家提供了一套优秀的解题思路,让你轻松应对各种难题!
CS团队倾注了大量时间和心血,深入挖掘解决方案。通过相关性分析,时间序列分析、多项式回归分析等算法,设计了明晰的项目,团队努力体现在每个步骤,确保方案既创新又可行,为大家提供了全面而深入的洞见噢~
让我们来看看研赛(B题)!
完整内容可以在文章末尾领取!
问题一
请根据附件WLAN网络实测训练集中所提供的网络拓扑、业务流量、门限、节点间RSSI的测试基本信息,分析其中各参数对AP发送机会的影响,并给出影响性强弱的顺序。通过训练的模型,预测每个AP的发送机会,即发送数据帧序列的总时长(seq_time),并通过测试集 test_set_1_2ap和test_set_1_3ap(仅提供模型输入信息)预测AP发送数据帧序列的总时长。可按照同频AP个数分类分析和分别建模,也可统一分析和建模。
为了回应第一个问题,我们首先需要分析各参数对AP发送机会的影响,并根据重要性确定其顺序。接着,利用所提供的实测数据建立模型,预测每个AP的发送数据帧序列的总时长(seq_time)。以下是对该问题的解答。
一、分析参数对AP发送机会影响的强弱顺序
在WLAN环境中,AP的发送机会(seq_time)受多种因素的影响。结合背景信息,我们讨论几种主要因素及其影响:
节点间RSSI:
RSSI是影响信号质量的关键因素。高RSSI意味着信号强、干扰小,从而更有可能成功发送数据。影响强度:非常强。
访问控制机制:
CCA和NAV机制直接决定了AP在何时可以发送数据。若信道繁忙或处于NAV静默期,AP将无法发送数据.影响强度:强。
MCS/NSS (调制编码方案和空间流数):
发送数据时选用的调制编码方案和流数影响数据发送速率,变化的MCS/NSS会影响信号的解调和成功发送几率。影响强度:中等偏强。
业务流量类型和数据长度:
业务流量会影响AP发送数据的频率和时长。不同协议(UDP与TCP)及数据帧长度会影响总时长。影响强度:中等。
门限设置 (PD、ED、NAV):
包检测门限(PD)、能量检测门限(ED)和NAV门限影响AP识别信道状态的能力,进而影响其发送机会。影响强度:中等。
测试时长 (test_dur):
测试的持续时间直接影响参与竞争的机会,测试时间越长,发送机会越多。影响强度:轻微。
二、建模方法
根据上述分析,我们可以构建一个线性回归模型来预测AP的发送框架序列总时长(seq_time):
设
X
=
[
x
1
,
x
2
,
…
,
x
n
]
X = [x_1, x_2, \ldots, x_n]
X=[x1,x2,…,xn] 为输入特征向量,其中包含网络拓扑、业务流量、门限、节点间RSSI等信息。
模型的回归形式可以写为:
s
e
q
_
t
i
m
e
=
β
0
+
β
1
⋅
R
S
S
I
+
β
2
⋅
C
C
A
+
β
3
⋅
M
C
S
+
β
4
⋅
f
l
o
w
_
t
y
p
e
+
β
5
⋅
t
h
r
e
s
h
o
l
d
+
β
6
⋅
t
e
s
t
_
d
u
r
+
ϵ
seq\_time = \beta_0 + \beta_1 \cdot RSSI + \beta_2 \cdot CCA + \beta_3 \cdot MCS + \beta_4 \cdot flow\_type + \beta_5 \cdot threshold + \beta_6 \cdot test\_dur + \epsilon
seq_time=β0+β1⋅RSSI+β2⋅CCA+β3⋅MCS+β4⋅flow_type+β5⋅threshold+β6⋅test_dur+ϵ
其中,
β
0
\beta_0
β0 是截距,
β
1
,
…
,
β
6
\beta_1, \ldots, \beta_6
β1,…,β6 是模型权重系数,
ϵ
\epsilon
ϵ 是误差项。
三、模型训练和预测
数据处理:
从训练集(“training_set_xx”)中提取特征变量,并对缺失值及异常值进行处理。
模型训练:
使用线性回归算法在特征变量上进行训练,调整模型参数以最小化预测误差。
进行预测:
使用训练好的模型输入测试集(test_set_1_2ap和test_set_1_3ap)的特征变量进行预测。
四、评估模型
通过计算模型的均方误差(MSE)、决定系数(R²)等指标,评估预测效果,确保模型的有效性。如果模型表现不尽如人意,则可能采用更复杂的机器学习模型,如随机森林或神经网络进行改进。
总结
基于输入数据,结合WLAN环境的特性,通过线性回归模型分析各参数对AP发送机会的影响并进行预测,为后续问题的分析提供了重要依据。请使用以上的框架和步骤,结合具体数据集进行建模和预测。
根据WLAN网络实测训练集中所提供的网络拓扑、业务流量、门限、节点间RSSI等信息,我们可以分析各个参数对接入点(AP)发送机会的影响。以下是参数的详细分析及其影响顺序:
1. 参数分析
RSSI(Received Signal Strength Indicator):
RSSI 是AP与STA之间信号强度的指标。更高的RSSI值通常意味着更好的信号质量,从而可以提高发送机会。高RSSI可以使信道的干扰降低,增加数据传输成功的概率。对于异步传输情况,AP间的RSSI差异将直接影响接收端的SINR(Signal to Interference and Noise Ratio),从而影响每个AP的发送成功率。
CCA门限(Clear Channel Assessment Threshold):
CCA门限决定了AP何时能够认为信道是空闲的。合适的CCA门限可以减少因错误判断信道繁忙导致的发送机会的损失。门限值过高可能导致AP频繁休眠,从而减少发送机会。
NAV(Network Allocation Vector)机制:
NAV指示了其他节点在特定时间段内的静默期。如果一个AP能够正确地设置NAV并让邻近AP持续静默,将获得更多的发送机会。NAV的有效性与AP之间的RSSI及其设定的门限密切相关。
业务流量类型:
不同的业务流量(如UDP和TCP)具有不同的特性。例如,UDP是无连接的,适合流媒体或即时通信等场景,而TCP则需要 ACK 确认,可能造成发送延迟。这种差异直接影响AP发送数据时机与频率。
竞争窗口大小(Contention Window):
竞争窗口大小在信道竞争中扮演重要角色。较小的CW值可以增加发送机会,但可能造成冲突较多。通过调节CW值,AP在不同情况下可以适应当前的网络压力,从而优化发送机会。
2. 影响性顺序
综合以上分析,影响AP发送机会的各个因素的强弱影响顺序为:
RSSINAV机制CCA门限业务流量类型竞争窗口大小
3. 吞吐量预测模型
为预测每个AP的发送机会,即“发送数据帧序列的总时长”(
s
e
q
_
t
i
m
e
seq\_time
seq_time),我们可以构建以下模型:
s
e
q
_
t
i
m
e
=
f
(
R
S
S
I
,
C
C
A
_
t
h
r
e
s
h
o
l
d
,
N
A
V
,
T
r
a
f
f
i
c
_
t
y
p
e
,
C
W
)
seq\_time = f(RSSI, CCA\_threshold, NAV, Traffic\_type, CW)
seq_time=f(RSSI,CCA_threshold,NAV,Traffic_type,CW)
其中$ f $表示一个适当的映射函数,可以通过回归分析或机器学习模型训练以获得。在模型的训练过程中,我们需要使用训练集中每个AP的RSSI、CCA门限、NAV、流量类型和CW等变量作为输入特征,同时以每个AP的发送时长为标签进行训练。
4. 实际预测
在得到训练的模型后,可以使用测试集 <code>test_set_1_2ap 和 test_set_1_3ap
中提供的信息进行预测,并输出每个AP的发送数据帧序列总时长。然后通过比较预测值与实际发送时间评估模型的准确度。
这种方法结合了网络拓扑、信道信息、AP间的竞争情况及业务类型,有助于在复杂的无线环境中准确预测AP的发送机会,进而提高WLAN的整体吞吐量和效率。
5. 独特见解
由于无线信道受环境变化影响显著,预测模型应具备自适应能力,能够根据实时的信道状态进行动态优化。因此,持续收集和分析网络数据,利用在线学习的方法迭代更新模型,将是至关重要的,这对于应对多变的无线环境和复杂的性能需求尤为重要。
问题1答案
为了解析各种参数对AP发送机会的影响,我们可以建立模型来评估不同因素对发送时长的影响。关键因素包括:
网络拓扑参数(如AP与STA之间的RSSI、AP数量等)业务流量信息(如数据包大小、流量类型等)门限信息(如包检测门限PD、能量检测门限ED等)
影响分析
RSSI(接收信号强度指示)
RSSI是影响信道状态的一个重要参数,其值影响到信道是否被判定为占用。当某个AP发数据时,该AP与STA之间需要有足够的RSSI值才能确保数据成功发送,因此在模型中,RSSI越高,发送机会越高。
AP数量
当同频AP的数量越多,竞争越激烈,可能导致冲突,从而影响成功发送的时长。理论上,AP数量增加时,发送时长会减少,因为每个AP的发送机会会被分配得更少。
数据包大小(pkt_len)
数据包的长度直接影响每次传输的时长。较大的包在传输中占用更多的信道时间。可以通过以下公式表示:
Transmission Time
=
Packet Size (bits)
PHY Rate (bps)
\text{Transmission Time} = \frac{\text{Packet Size (bits)}}{\text{PHY Rate (bps)}}
Transmission Time=PHY Rate (bps)Packet Size (bits)此外,包大小也影响可能的传输成功率,即如果包过大,可能导致更多的丢包。
流量类型(UDP/TCP)
流量类型决定了数据的传输特性,UDP为无连接协议,不需要ACK,因此有可能提高发送频率,而TCP则需要确认,因此会受到ACK的延迟影响。
门限值(PD和ED)
PD和ED的设置决定了信道的访问策略。当信道忙时,AP会等待。因此,较低的门限值可能会给AP提供更多的发送机会。
影响顺序
根据我们的分析,影响发送机会的因素可以按以下顺序排列(由强到弱):
RSSIAP数量门限值(PD和ED)数据包大小(pkt_len)流量类型(UDP/TCP)
模型预测
我们可以利用线性回归或其他机器学习模型(如随机森林、XGBoost等)来预测每个AP的发送机会(seq_time)。我们可以将上述参数作为特征输入,构建模型来预测AP的发送时长。
假设我们选择线性回归模型,预测方程可以表示为:
seq_time
i
=
β
0
+
β
1
⋅
RSSI
i
+
β
2
⋅
AP_数量
+
β
3
⋅
pkt_len
i
+
β
4
⋅
流量类型
i
+
β
5
⋅
PD
+
β
6
⋅
ED
+
ϵ
\text{seq\_time}_i = \beta_0 + \beta_1 \cdot \text{RSSI}_i + \beta_2 \cdot \text{AP\_数量} + \beta_3 \cdot \text{pkt\_len}_i + \beta_4 \cdot \text{流量类型}_i + \beta_5 \cdot \text{PD} + \beta_6 \cdot \text{ED} + \epsilon
seq_timei=β0+β1⋅RSSIi+β2⋅AP_数量+β3⋅pkt_leni+β4⋅流量类型i+β5⋅PD+β6⋅ED+ϵ
其中,
β
0
\beta_0
β0是截距项,
β
1
,
β
2
,
.
.
.
\beta_1, \beta_2, ...
β1,β2,...是各个参数的回归系数,
ϵ
\epsilon
ϵ是誤差项。
最后,我们将用测试集test_set_1_2ap和test_set_1_3ap来验证模型的预测效果。通过模型的输出,可以得到各个AP发送数据帧序列的总时长(seq_time)。
在回答第一个问题之前,我们需要对给定的WLAN网络实测训练集数据进行分析,以确定不同参数对AP发送机会(即发送数据帧序列的总时长)的影响。以下是处理的思路和Python代码示例。
分析思路:
数据读取与预处理:
读取训练集的数据,了解数据的结构和内容。清洗和处理缺失值。
特征选择:
选择影响AP发送机会的特征,包括网络拓扑、业务流量、门限、节点间RSSI等信息。
模型训练:
使用回归模型(如线性回归、随机森林回归等)来预测每个AP的发送机会(发送数据帧序列的总时长 <code>seq_time)。
特征重要性评估:
通过模型的特征重要性评估各参数对AP发送机会的影响,并给出影响性强弱的顺序。
预测:
使用训练好的模型对测试集 test_set_1_2ap
和 test_set_1_3ap
进行预测。
Python 代码示例:
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_squared_error
import numpy as np
# Step 1: Read training data
training_data = pd.read_csv('training_set.csv') # replace with actual path
# Step 2: Data Preprocessing
# Here you can filter out necessary columns and clean the data
features = training_data[['test_dur', 'eirp', 'pd', 'ed', 'nav', 'ap_from_ap_1_sum_ant_rssi',
'ap_from_ap_2_sum_ant_rssi', 'sta_to_ap_1_sum_ant_rssi',
'sta_to_ap_2_sum_ant_rssi']]
target = training_data['seq_time']
# Step 3: Train Test Split
X_train, X_test, y_train, y_test = train_test_split(features, target, test_size=0.2, random_state=42)
# Step 4: Model Training
model = RandomForestRegressor(n_estimators=100, random_state=42)
model.fit(X_train, y_train)
# Step 5: Feature Importance
feature_importance = model.feature_importances_
importance_df = pd.DataFrame({ 'Feature': features.columns, 'Importance': feature_importance})
importance_df = importance_df.sort_values(by='Importance', ascending=False)code>
# Display feature importance
print("Feature Importance (Descending Order):")
print(importance_df)
# Step 6: Predicting on test set
predictions = model.predict(X_test)
mse = mean_squared_error(y_test, predictions)
print(f'Mean Squared Error on Test Set: { mse}')
# Optionally, save predictions to a CSV file if needed
# predictions_df = pd.DataFrame({'Predicted_seq_time': predictions})
# predictions_df.to_csv('predictions.csv', index=False)
详细说明:
数据读取: 通过 pd.read_csv
读取训练数据集。特征选择: 选择与AP发送机会相关的重要特征。模型训练: 这里使用了随机森林回归模型来进行训练。特征重要性: 评估每个特征对预测效果的影响,并按影响度排序。预测和评估: 在测试集上进行预测并计算均方误差(MSE)。
问题二
第二个问题是:“请根据附件提供的实测训练集中的测试基本信息,特别是节点间RSSI信息和门限信息,结合问题1中对AP发送机会的分析,对测试中AP发送数据选用最多次数的(MCS, NSS)进行建模,并通过测试集 test_set_2_2ap和test_set_2_3ap(仅提供模型输入信息)预测(MCS, NSS)。”
这意味着参赛者需要使用医疗中收集的数据来分析和预测接入点(AP)在发送数据时,最常使用的调制编码方案(MCS)和空间流数(NSS),以便优化WLAN系统的吞吐量。
问题2的建模方法
为了预测AP发送数据时选用最多次数的(MCS, NSS),需要基于测试集中的网络拓扑、业务流量、门限信息,以及节点间的RSSI(Received Signal Strength Indication)信息来进行建模。以下是详细的建模步骤以及方法。
1. 数据预处理
首先,准备训练集中相关的数据。具体包括:
各个AP的网络拓扑信息。各AP与STA间的RSSI数据。CCA门限和NAV门限。
在数据预处理阶段,可以使用Python或MATLAB等工具来处理数据,以提取出有用特征。
2. 特征选择
以下特征可能与选择的(MCS, NSS)有直接关系:
S
I
N
R
SINR
SINR: 信干噪比,计算方法为:
S
I
N
R
a
p
,
s
t
a
=
R
S
S
I
a
p
,
s
t
a
−
max
i
≠
j
(
R
S
S
I
a
p
j
,
s
t
a
)
SINR_{ap,sta} = RSSI_{ap,sta} - \max_{i \neq j}(RSSI_{ap_j,sta})
SINRap,sta=RSSIap,sta−i=jmax(RSSIapj,sta)
其中,
R
S
S
I
a
p
i
,
s
t
a
RSSI_{ap_i,sta}
RSSIapi,sta是来自AP到STA的RSSI值,且
i
i
i是AP的索引。
P
E
R
PER
PER: 丢包率,该数据在统计信息中已提供。
p
k
t
_
l
e
n
pkt\_len
pkt_len: 数据包长度,在业务流量信息中可获得。
t
e
s
t
_
d
u
r
test\_dur
test_dur: 测试持续时间,该信息在网络拓扑中提供。
基于这些特征,建立特征矩阵
X
X
X。
3. 建立预测模型
我们可以采用多种机器学习算法来建立预测模型,如线性回归、决策树、随机森林或XGBoost等。
模型的目标是预测概率分布:
模型输出为每个可能的(MCS, NSS)的组合:
(
M
C
S
,
N
S
S
)
∈
{
(
0
,
1
)
,
(
1
,
1
)
,
.
.
.
,
(
11
,
2
)
}
(MCS, NSS) \in \{(0, 1), (1, 1), ..., (11, 2)\}
(MCS,NSS)∈{(0,1),(1,1),...,(11,2)}
对应于每个AP,我们可以定义一个概率分布
P
P
P,表示在特定条件下每对(MCS, NSS)的选择概率:
P
(
M
C
S
i
,
N
S
S
j
∣
X
)
P(MCS_i, NSS_j | X)
P(MCSi,NSSj∣X)
使用softmax函数进行规范化,确保所有概率和为1:
P
(
M
C
S
i
,
N
S
S
j
∣
X
)
=
e
x
p
(
θ
i
T
X
)
∑
k
e
x
p
(
θ
k
T
X
)
P(MCS_i, NSS_j | X) = \frac{exp(\theta_i^TX)}{\sum_k exp(\theta_k^TX)}
P(MCSi,NSSj∣X)=∑kexp(θkTX)exp(θiTX)
其中,
θ
\theta
θ是模型的参数。
4. 模型训练
利用交叉验证来评估模型的性能,通过多次训练、验证集评估模型预测的(MCS, NSS)组合。可以使用准确率、混淆矩阵或其他指标来评估模型精度。
5. 预测
在训练模型完成后,使用测试集 test_set_2_2ap
和 test_set_2_3ap
的输入数据进行预测。
使用模型输出的概率
P
(
M
C
S
i
,
N
S
S
j
∣
X
)
P(MCS_i, NSS_j | X)
P(MCSi,NSSj∣X),找出最大概率的(MCS, NSS):
Predicted
(
M
C
S
,
N
S
S
)
=
arg
max
(
i
,
j
)
P
(
M
C
S
i
,
N
S
S
j
∣
X
)
\text{Predicted } (MCS, NSS) = \arg \max_{(i, j)} P(MCS_i, NSS_j | X)
Predicted (MCS,NSS)=arg(i,j)maxP(MCSi,NSSj∣X)
6. 结果分析
根据模型的输出结果,分析不同(MCS, NSS)的选择情况,并评估模型的有效性。
可以通过对比实际选用的最多次数的(MCS, NSS)和模型预测的结果,对模型的精度进行进一步验证和优化。
总结
通过以上步骤,我们构建一个基于RSSI和其他相关参数的模型来预测在WLAN系统中AP发送数据时选用的(MCS, NSS)。这一过程不仅能够提高对AP的数据选择的理解,还将为后续的吞吐量建模提供关键参数。同时,模型训练和预测也有助于挖掘影响吞吐量的关键因素,为WLAN系统优化提供依据。
针对第二个问题,我们需要通过分析实测训练集中AP发送数据的调制编码方案(MCS)和空间流数(NSS),并结合节点间的RSSI信息和门限信息,建立AP发送数据过程中最常使用的(MCS, NSS)的预测模型。
2.1 数据特征分析
首先,我们需要从资料中提取出有助于MCS和NSS选择的特征,包括但不限于:
信号强度指标(RSSI):
AP与STA之间的接收信号强度(例如
s
t
a
_
t
o
_
a
p
x
_
m
e
a
n
_
a
n
t
_
r
s
s
i
sta\_to\_ap_x\_mean\_ant\_rssi
sta_to_apx_mean_ant_rssi 等)。
门限信息:
包检测门限(PD)、能量检测门限(ED)和NAV门限。
AP发送机会:
影响AP发送机会的重要参数(如seq_time等)。
2.2 模型构建
可以利用机器学习模型(例如随机森林、支持向量机等)来预测最常用的(MCS, NSS)。预测过程可以分为如下几个步骤:
数据预处理:
处理缺失值与异常值。归一化RSSI及其他数值特征。
特征选择:
通过模型的重要性分析(如SHAP值或特征重要性排名)选择对MCS和NSS预测最有影响的特征。
模型训练:
选择合适的机器学习算法,使用训练集进行模型训练。对不同的AP数量(如2个和3个AP)进行分类建模。
模型评估与调优:
使用交叉验证和网格搜索来调整超参数,确保模型泛化能力强。用测试集验证模型的精度。
2.3 预测表达
假设我们训练出的模型能够输出每个AP在特定条件下选择的MCS和NSS,我们将得到概率分布。
我们可以设:
P
(
M
C
S
i
,
N
S
S
j
∣
X
)
P(MCS_{i}, NSS_{j}|X)
P(MCSi,NSSj∣X) 是在特征集
X
X
X下,选择特定
(
M
C
S
i
,
N
S
S
j
)
(MCS_i, NSS_j)
(MCSi,NSSj)的概率。
模型的输出可能是这样:
(
P
(
M
C
S
1
,
N
S
S
1
∣
X
)
,
P
(
M
C
S
2
,
N
S
S
2
∣
X
)
,
.
.
.
,
P
(
M
C
S
n
,
N
S
S
m
∣
X
)
)
(P(MCS_{1}, NSS_{1}|X), P(MCS_{2}, NSS_{2}|X), ..., P(MCS_{n}, NSS_{m}|X))
(P(MCS1,NSS1∣X),P(MCS2,NSS2∣X),...,P(MCSn,NSSm∣X))
其中,我们选择最大的概率作为我们最终的预测结果:
(
M
C
S
p
r
e
d
,
N
S
S
p
r
e
d
)
=
arg
max
(
i
,
j
)
P
(
M
C
S
i
,
N
S
S
j
∣
X
)
(MCS_{pred}, NSS_{pred}) = \arg\max_{(i,j)} P(MCS_{i}, NSS_{j}|X)
(MCSpred,NSSpred)=arg(i,j)maxP(MCSi,NSSj∣X)
2.4 预测
将上述模型与测试集test_set_2_2ap和test_set_2_3ap结合,通过提前准备的特征数据输入到训练好的模型中,预测出各个AP最常选择的(MCS, NSS)。
结论与见解
通过分析WLAN网络环境中的RSSI、门限等关键参数,我们可以有效建立一个预测模型来推测AP在不同情况下最常用的调制编码方案和空间流数。在实际应用中,这样的预测可以帮助网络设计和优化,无疑对于提升整体吞吐量和用户体验具有重要意义。同时,设备在自适应调制编码下进行动态调整,不仅提高了频谱利用率,同时也为应对复杂的无线信道干扰提供了灵活性。这样能够有效地适应不断变化的环境,提高WLAN系统的性能和可靠性。
要预测接入点 (AP) 在发送数据时选用的最多次数的调制编码方案 (MCS) 和空间流数 (NSS),可以通过分析与节点间 RSSI 信息和门限信息相关的因素来建立模型。在保持模型精度的前提下,以下是建立该模型的步骤和相应的公式。
Step 1: 数据预处理
首先,从训练集数据中提取出相关特征(如 RSSI 和门限值),并构建输入特征矩阵
X
X
X 和目标变量
Y
Y
Y(最多选用的 (MCS, NSS) 对应的编号)。
输入特征
X
X
X 的构成(示例):
KaTeX parse error: Expected 'EOF', got '_' at position 37: … RSSI_{\text{AP_̲x}}^{\text{mean…
Step 2: 定义模型
我们可以使用线性回归模型或分类模型(如逻辑回归、决策树等)来拟合 AP 发送数据时最常选用的 (MCS, NSS)。下面以线性回归模型为例,设定目标变量
Y
Y
Y 为 (MCS, NSS) 的选用计数。
对于线性回归模型,我们的模型可以表示为:
Y
=
β
0
+
β
1
X
1
+
β
2
X
2
+
…
+
β
n
X
n
+
ϵ
Y = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \ldots + \beta_n X_n + \epsilon
Y=β0+β1X1+β2X2+…+βnXn+ϵ
其中
β
0
\beta_0
β0 是截距,
β
i
\beta_i
βi 是特征
X
i
X_i
Xi 的系数,
ϵ
\epsilon
ϵ 是误差项。
Step 3: 模型训练
通过最小二乘法(最小化平方差)求解参数
β
\beta
β:
β
^
=
(
X
T
X
)
−
1
X
T
Y
\hat{\beta} = (X^T X)^{-1} X^T Y
β^=(XTX)−1XTY
然后,利用训练集数据来估计这些参数。
Step 4: 进行预测
在获取到模型参数后,利用测试集中的特征数据进行预测:
Y
^
=
β
0
^
+
β
1
^
X
1
+
β
2
^
X
2
+
…
+
β
n
^
X
n
\hat{Y} = \hat{\beta_0} + \hat{\beta_1} X_1 + \hat{\beta_2} X_2 + \ldots + \hat{\beta_n} X_n
Y^=β0^+β1^X1+β2^X2+…+βn^Xn
Step 5: 选择最多次数的 (MCS, NSS)
根据预测结果,选择预算中选用次数最多的 (MCS, NSS) 对应的值:
argmax
i
(
Y
i
)
\text{argmax}_i (Y_i)
argmaxi(Yi)
这是通过对模型预测结果进行分类统计得到的 (MCS, NSS)。
实际应用
你可以使用机器学习库(如 scikit-learn)来实现该预测模型,通过拟合训练数据,预测测试集的 (MCS, NSS)。
输出结果
最终,通过训练训练集并预测测试集中的 (MCS, NSS),将得到预测的调制编码方案和空间流数。
这些步骤及公式提供了一个有效路径,用于预测 WLAN 系统中接入点的发送数据选用最多次数的 (MCS, NSS)。
为了预测AP发送数据时选用最多次数的(MCS, NSS),我们可以使用Python中的机器学习库,基于提供的测试数据集分析节点间的RSSI信息和门限信息。下面是一个示例代码,它利用pandas
进行数据处理和sklearn
进行模型训练和预测。
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
# 加载训练数据集
training_data = pd.read_csv('training_set.csv') # 请替换为实际路径
# 加载测试数据集
test_data_2ap = pd.read_csv('test_set_2_2ap.csv') # 请替换为实际路径
test_data_3ap = pd.read_csv('test_set_2_3ap.csv') # 请替换为实际路径
# 选择特征和标签
features = ['ap_from_ap_1_max_ant_rssi', 'ap_from_ap_2_max_ant_rssi', 'ed', 'pd', 'nav'] # 示例特征
X = training_data[features]
y = training_data['most_frequent_mcs_nss'] # 目标变量:选用最多次数的(MCS, NSS)
# 切分训练数据与验证数据
X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2, random_state=42)
# 定义模型
model = RandomForestClassifier(n_estimators=100, random_state=42)
# 训练模型
model.fit(X_train, y_train)
# 验证模型
y_val_pred = model.predict(X_val)
accuracy = accuracy_score(y_val, y_val_pred)
print(f'Validation Accuracy: { accuracy:.2f}')
# 对测试集进行预测见完整代码文件
说明:
数据加载: 请根据实际情况替换数据集文件路径。特征选择: 特征可以根据具体研究的需要进行选择,这里只是一个简单的示例。机器学习模型: 使用随机森林模型,你可以根据实际数据特性选择其他模型。数据存储: 最后,预测结果会保存到新的CSV文件中。
请确保在运行此代码之前已安装pandas
和sklearn
库。如果没有安装,可以使用pip install pandas scikit-learn
命令进行安装。根据数据的实际格式和特征,可能需要对字段名称和选择的特征进行调整。
问题三
问题3:请结合问题1和问题2的分析,对系统吞吐量进行建模,并通过测试集test_set_1_2ap和test_set_1_3ap预测网络吞吐量。可按照同频AP个数分类建模,也可统一建模。无线信道具有瞬息万变的特点,实测中所测量的RSSI信息属于大尺度信息,不足以完全反应真实信道变化,因而问题2对(MCS, NSS)的建模可能无法获得很高精度。本问题允许采用实测中统计的数据帧真实(MCS, NSS)作为模型输入变量。
在解决问题3之前,我们首先考虑系统吞吐量的定义。WLAN的吞吐量(Throughput)是指每个AP在单位时间内成功传输的比特数,通常由发送成功的数据帧经验确定。可以表示为:
吞吐量的基本计算公式为:
Throughput
=
N
×
L
T
\text{Throughput} = \frac{N \times L}{T}
Throughput=TN×L
其中:
N
N
N 是成功发送的数据帧的数量。
L
L
L 是每个数据帧的比特数(通常等于数据长度乘以8)。
T
T
T 是时间,单位为秒。
为了计算整个系统的吞吐量,我们还需要考虑APs之间的竞争和交互。假设有
K
K
K个AP,其总吞吐量可以写成:
Total Throughput
=
∑
i
=
1
K
Throughput
i
\text{Total Throughput} = \sum_{i=1}^{K} \text{Throughput}_i
Total Throughput=i=1∑KThroughputi
在本问题中,我们需要考虑两个关键因素来对吞吐量进行建模:
AP的发送时长(seq_time)和AP所选用的(MCS,NSS)组合。
基于前面的分析,我们可以建模吞吐量与这些因素的关系:
Throughput
i
=
P
i
⋅
s
e
q
_
t
i
m
e
i
⋅
MCS
(
C
i
,
j
,
N
S
S
i
,
j
)
T
\text{Throughput}_i = \frac{P_{i} \cdot seq\_time_{i} \cdot \text{MCS}(C_{i,j}, NSS_{i,j})}{T}
Throughputi=TPi⋅seq_timei⋅MCS(Ci,j,NSSi,j)
其中:
P
i
P_{i}
Pi 是AP
i
i
i的功率。
s
e
q
_
t
i
m
e
i
seq\_time_{i}
seq_timei 是AP
i
i
i发送数据帧序列的总时长。
MCS
(
C
i
,
j
,
N
S
S
i
,
j
)
\text{MCS}(C_{i,j}, NSS_{i,j})
MCS(Ci,j,NSSi,j) 是AP
i
i
i 在第
j
j
j次发送中所选用的调制编码方案的速率,依据其信道条件和SINR来确定。我们将这个函数视为输入的(MCS, NSS)组合在实际网络条件下产生的吞吐量。
将吞吐量模型综合起来,得到最终的网络吞吐量预测公式:
Total Throughput
=
∑
i
=
1
K
P
i
⋅
s
e
q
_
t
i
m
e
i
⋅
MCS
(
C
i
,
j
,
N
S
S
i
,
j
)
T
\text{Total Throughput} = \sum_{i=1}^{K} \frac{P_{i} \cdot seq\_time_{i} \cdot \text{MCS}(C_{i,j}, NSS_{i,j})}{T}
Total Throughput=i=1∑KTPi⋅seq_timei⋅MCS(Ci,j,NSSi,j)
在实际测量过程中,我们可以利用实测的(MCS, NSS)作为模型输入变量并使用统计数据来进行模型的训练和调整,以提高吞吐量预测的准确性。因此,最终的预测过程可以通过计算各AP的sending机会以及相应的选择的MCS和NSS进行。
模型评估通过比较预测总吞吐量与实测吞吐量,可以使用:
Error (%)
=
predict throughput
−
throughput
throughput
×
100
\text{Error (\%)} = \frac{\text{predict throughput} - \text{throughput}}{\text{throughput}} \times 100
Error (%)=throughputpredict throughput−throughput×100
通过累积分布函数(CDF)方法评估模型预测的精度,最终输出预测结果及评价指标,以反映模型的泛化能力和准确性。
以上是对WLAN网络吞吐量建模的数学基础框架。根据具体的数据集输入,您可以进一步细化各个参数的实际值来更完善地实施模型。
在 WLAN 系统吞吐量的建模中,我们需要综合考虑 AP 的发送机会、所选 PHY Rate(由 MCS 和 NSS 表征),以及数据帧的比特数等多个因素。根据前面问题的分析结果,我们构建吞吐量的预测模型,主要包括以下几个步骤:
吞吐量计算公式:
鉴于吞吐量是指单位时间内成功发送的比特数,我们可以使用以下公式表达吞吐量
T
T
T:
T
=
N
p
p
d
u
⋅
L
p
p
d
u
T
s
e
q
+
T
o
t
h
e
r
T = \frac{N_{ppdu} \cdot L_{ppdu}}{T_{seq} + T_{other}}
T=Tseq+TotherNppdu⋅Lppdu
其中:
N
p
p
d
u
N_{ppdu}
Nppdu:每个数据帧的聚合个数(可以通过实测获得)。
L
p
p
d
u
L_{ppdu}
Lppdu:每个数据帧的有效载荷长度(比特数),通常与
M
C
S
MCS
MCS 和
N
S
S
NSS
NSS 相关。可以通过下列关系计算:
L
p
p
d
u
=
MCS
⋅
NSS
⋅
8
(参与的时隙数)
L_{ppdu} = \text{MCS} \cdot \text{NSS} \cdot 8 \text{ (参与的时隙数)}
Lppdu=MCS⋅NSS⋅8 (参与的时隙数)
T
s
e
q
T_{seq}
Tseq:AP 发送数据的帧序列的总时长(包括发送数据帧和接收 ACK 的时间)。
T
o
t
h
e
r
T_{other}
Tother:除发送数据帧外,AP 发送管理帧等其他帧和接收所占用的时间。
总吞吐量计算:
由于 WLAN 系统中存在多个 AP,我们可以通过将所有 AP 的吞吐量相加获得系统整体的吞吐量:
T
t
o
t
a
l
=
∑
i
=
1
N
A
P
T
i
T_{total} = \sum_{i=1}^{N_{AP}} T_i
Ttotal=i=1∑NAPTi
其中
N
A
P
N_{AP}
NAP 为 AP 的总数,
T
i
T_i
Ti 为第
i
i
i 个 AP 的吞吐量。
模型的训练和预测:
使用实测数据中的历史吞吐量
t
h
r
o
u
g
h
p
u
t
throughput
throughput 作为模型的输出,输入变量可以包括 AP 发送机会、选择的
(
M
C
S
,
N
S
S
)
(MCS, NSS)
(MCS,NSS)、RSSI 信息和其他门限信息等。可以应用回归算法(例如线性回归、随机森林回归或神经网络等)对吞吐量进行建模。对于流量类型(UDP 或 TCP)不同的情况,可以对模型进行分类训练,以便于捕捉流量特性对吞吐量的影响。
实际输入变量:
为了提高预测精度,建议实时监测并利用实际统计的数据帧真实
(
M
C
S
,
N
S
S
)
(MCS, NSS)
(MCS,NSS) 作为输入变量,这将使模型更能反映当前信道状况的变化。
评估模型精度:
使用测试集
t
e
s
t
_
s
e
t
_
1
_
2
a
p
test\_set\_1\_2ap
test_set_1_2ap 和
t
e
s
t
_
s
e
t
_
1
_
3
a
p
test\_set\_1\_3ap
test_set_1_3ap 验证模型,将模型预测的吞吐量与实测吞吐量进行比较,计算误差,并绘制 CDF 曲线,从而评估模型的预测性能。
综上所述,通过结合影响因素和实测数据来建立 WLAN 吞吐量的预测模型,不仅能够获得更为准确的预测结果,还能有效指导 WLAN 系统的优化和性能提升。在实际应用中,采集更多信道状态下的数据将不断完善模型,提高其适用性和准确度。
要建模和预测WLAN系统的吞吐量,我们需要结合前面的问题中得到的分析结果,尤其是关于AP的发送机会、选择的(MCS, NSS)以及数据包的特性。吞吐量的计算通常基于以下几个因素:
有效发送时间(Effective Transmission Time):AP发送数据包的总持续时间。成功发送数据包个数(Successful Data Packets):为计算吞吐量需要考虑AP成功发送的数据包个数,而实际发送量受到丢包率(PER)的影响。每个数据包的大小(Packet Size):需要知道发送的每个数据包的大小。
吞吐量模型
根据WLAN的吞吐量定义,可以使用以下公式来表征AP的吞吐量:
Throughput
=
Successful Data Bits
Total Time
\text{Throughput} = \frac{\text{Successful Data Bits}}{\text{Total Time}}
Throughput=Total TimeSuccessful Data Bits
其中,“Successful Data Bits” 是成功发送的数据总比特数,而 “Total Time” 则是该过程所用的总时间。
公式详细化
将其细化,我们可以写出:
Throughput
=
N
data
×
P
pkt
×
(
1
−
P
E
R
)
T
seq
+
T
other
\text{Throughput} = \frac{N_{\text{data}} \times P_{\text{pkt}} \times (1 - PER)}{T_{\text{seq}} + T_{\text{other}}}
Throughput=Tseq+TotherNdata×Ppkt×(1−PER)
其中:
N
data
N_{\text{data}}
Ndata: 成功发送的数据包个数。
P
pkt
P_{\text{pkt}}
Ppkt: 每个数据包的大小(以比特为单位)。
P
E
R
PER
PER: 丢包率。
T
seq
T_{\text{seq}}
Tseq: AP发送数据帧的帧序列的总时长。
T
other
T_{\text{other}}
Tother: AP除发送数据帧外,发送管理帧和其他帧的时间。
使用训练集数据
从训练集数据中,我们可以获取以下参数:
N
data
N_{\text{data}}
Ndata: 可以通过统计每个AP在测试中的成功发送包个数直接获取。
P
pkt
P_{\text{pkt}}
Ppkt: 由业务流量信息中提取(通常为1500 Bytes,即 12000 bits)。
P
E
R
PER
PER: 在模型分析中可以从历史数据中算出,基于每个AP在不同环境下的发送成功率。
T
seq
T_{\text{seq}}
Tseq: 从问题1和问题2中的预测中得到。
T
other
T_{\text{other}}
Tother: 从数据集中的实时统计信息中获取。
预测吞吐量
最终,系统的总吞吐量可以表示为所有AP的吞吐量之和:
Total Throughput
=
∑
i
=
1
N
AP
N
i
,
data
×
P
pkt
×
(
1
−
P
E
R
i
)
T
i
,
seq
+
T
i
,
other
\text{Total Throughput} = \sum_{i=1}^{N_{\text{AP}}} \frac{N_{i,\text{data}} \times P_{\text{pkt}} \times (1 - PER_i)}{T_{i,\text{seq}} + T_{i,\text{other}}}
Total Throughput=i=1∑NAPTi,seq+Ti,otherNi,data×Ppkt×(1−PERi)
其中,
N
AP
N_{\text{AP}}
NAP 是AP的数量,
i
i
i 表示每个AP的索引。
最后总结
这个模型能够为我们提供一个基于实测数据与统计的吞吐量预测。通过使用上述的公式,不仅可以预测单个AP的吞吐量,还可以对整个WLAN系统的总吞吐量进行建模和预测,以支持后续的网络优化及设计决策。
<code>import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_squared_error, r2_score
# 读取训练集数据
train_data_2ap = pd.read_csv('training_set_2_AP.csv')
train_data_3ap = pd.read_csv('training_set_3_AP.csv')
# 特征选择
features_2ap = [
'test_dur', 'eirp', 'pkt_len',
'ap_from_ap_1_max_ant_rssi', 'ap_from_ap_2_max_ant_rssi',
'sta_to_ap_1_sum_ant_rssi', 'sta_to_ap_2_sum_ant_rssi',
'pd', 'ed', 'nav',
# 这里可以增加节点间RSSI的其他相关字段...
]
features_3ap = [
'test_dur', 'eirp', 'pkt_len',
'ap_from_ap_1_max_ant_rssi', 'ap_from_ap_2_max_ant_rssi', 'ap_from_ap_3_max_ant_rssi',
'sta_to_ap_1_sum_ant_rssi', 'sta_to_ap_2_sum_ant_rssi', 'sta_to_ap_3_sum_ant_rssi',
'pd', 'ed', 'nav',
# 这里可以增加节点间RSSI的其他相关字段...
]
X_2ap = train_data_2ap[features_2ap]
y_2ap = train_data_2ap['throughput']
X_3ap = train_data_3ap[features_3ap]
y_3ap = train_data_3ap['throughput']
# 划分数据集见完整
问题四
4.4 模型精度评估方法
这个部分提到“累积分布函数(Cumulative Distributed Function, CDF)描述了一个随机变量X小于或等于某一特定值x的概率,定义为F_X (x)=P(X≤x)。绘制测试集中吞吐量预测误差error的CDF曲线,取error小于或等于某一特定值ERROR的概率为90%时对应的特定值ERROR,则模型精度为1与ERROR的差值。请分别提供预测每AP吞吐的精度,和预测系统吞吐(所有AP吞吐之和)的精度。”
希望这可以帮助到你!如果你有其他问题,请随时询问。
在面对问题3的网络吞吐量建模时,我们需要综合考虑影响网络吞吐量的多个因素,包括AP的发送机会、节点间的RSSI、信道接入机制以及自适应调制编码(AMC)所选用的(MCS, NSS)等。在此基础上,针对吞吐量
T
T
T的模型可以用以下数学表达式表示:
模型假设:
假设每个AP发送数据的机会受到RSSI、门限、信道接入机制等因素的影响,从而影响帧序列的总时长
s
e
q
t
i
m
e
seq_{time}
seqtime。假设在特定的SINR条件下,AP所选择的(MCS, NSS)和对应的PHY Rate与该条件相关。
吞吐量的计算:
吞吐量
T
i
T_i
Ti可以表示为:
T
i
=
有效发送比特数
总时长
=
N
p
p
d
u
×
(
pkt_len
−
overhead
)
s
e
q
t
i
m
e
T_i = \frac{\text{有效发送比特数}}{\text{总时长}} = \frac{N_{ppdu} \times (\text{pkt\_len} - \text{overhead})}{seq_{time}}
Ti=总时长有效发送比特数=seqtimeNppdu×(pkt_len−overhead)
其中:
N
p
p
d
u
N_{ppdu}
Nppdu为每个PPDU传输的聚合比特数(包括数据包个数、MAC头等开销),
pkt_len
\text{pkt\_len}
pkt_len为数据包长度(例如1500 bytes),
overhead
\text{overhead}
overhead为聚合引入的开销。
模型的构建:
通过线性回归或其他机器学习算法,构建一个模型来预测每个AP的吞吐量,模型的输入特征可以包含:
s
e
q
t
i
m
e
seq_{time}
seqtime: AP发送数据序列的总时长
m
i
n
_
R
S
S
I
min\_RSSI
min_RSSI: 通道接入机制中最小RSSICCA门限、ED门限等业务流量类型(UDP或TCP)等
综合模型:
最终的吞吐量模型应该结合所有AP的输出,得出整体系统吞吐量
T
t
o
t
a
l
T_{total}
Ttotal:
T
t
o
t
a
l
=
∑
i
=
1
N
T
i
T_{total} = \sum_{i=1}^N T_i
Ttotal=i=1∑NTi
模型验证与评估:
在完成模型构建后,通过测试集数据进行验证,使用之前提到的估计误差CDF来评估模型的精度。
具体地,计算预测吞吐量与实际吞吐量之间的误差
e
r
r
o
r
error
error:
e
r
r
o
r
=
T
p
r
e
d
−
T
t
r
u
e
T
t
r
u
e
×
100
%
error = \frac{T_{pred} - T_{true}}{T_{true}} \times 100\%
error=TtrueTpred−Ttrue×100%
然后绘制CDF曲线,找出90%置信度下的误差值
E
R
R
O
R
ERROR
ERROR。
精度评估:
模型精度计算为
1
−
E
R
R
O
R
1 - ERROR
1−ERROR。分别提供每AP的预测精度和整体系统的预测精度。
通过上述构建步骤,我们可以实现对WLAN系统吞吐量的全面建模和精确预测。
在模型精度评估中,采用累积分布函数(CDF)来分析预测误差是一个有效的方法。具体来说,若我们定义预测误差为
e
r
r
o
r
=
(
p
r
e
d
i
c
t
t
h
r
o
u
g
h
p
u
t
−
t
h
r
o
u
g
h
p
u
t
)
t
h
r
o
u
g
h
p
u
t
×
100
error = \frac{(predict\ throughput - throughput)}{throughput} \times 100
error=throughput(predict throughput−throughput)×100,那么我们可以通过计算
e
r
r
o
r
error
error 的CDF来评估模型的预测能力。
评估步骤:
收集误差数据:计算每个接入点(AP)的预测误差,即
e
r
r
o
r
error
error。对于多个AP,收集它们的误差值。
绘制CDF曲线:基于收集到的误差数据,绘制CDF曲线。CDF曲线的横坐标表示预测误差的值,纵坐标表示小于或等于该误差的概率。
计算特定值ERROR:
找到
P
(
e
r
r
o
r
≤
E
R
R
O
R
)
=
0.9
P(error \leq ERROR) = 0.9
P(error≤ERROR)=0.9,即当误差小于或等于某一特定值
E
R
R
O
R
ERROR
ERROR 的概率为90%时,确定该特定值。用这个特定值
E
R
R
O
R
ERROR
ERROR 来反映模型在90%的情况下的准确性。
精度计算:最后,精度
P
r
e
c
i
s
i
o
n
Precision
Precision 被定义为:
P
r
e
c
i
s
i
o
n
=
1
−
E
R
R
O
R
Precision = 1 - ERROR
Precision=1−ERROR
这个值反映了模型的表现,数值越高,表示模型越精准。
观察与分析:
通过上述步骤,我们可以得到每个AP的吞吐量预测精度,并进一步对所有AP的总吞吐量进行同样的评估。这样可以发现模型在不同场景下的表现差异,以及哪些因素在实际应用中对模型的性能影响较大。
独特见解:
在WLAN环境中,由于信道的动态变化和用户流量的不确定性,基于实时数据的模型效果可能会有所不同。通过上述评估方法,我们不仅可以量化模型的预测精度,还可以对模型进行针对性的优化,例如,通过分析高误差区间来调整特征选择或模型参数,以适应不同的网络状态和用户需求,从而提升整个系统的性能和用户体验。
在进行模型精度评估时,我们将使用累积分布函数(CDF)来分析预测误差。具体步骤如下:
定义预测误差:
预测误差是指模型预测的吞吐量与实际测量的吞吐量之间的差异,定义为:
error
=
predict throughput
−
throughput
throughput
×
100
%
\text{error} = \frac{\text{predict throughput} - \text{throughput}}{\text{throughput}} \times 100\%
error=throughputpredict throughput−throughput×100%
绘制CDF曲线:
累积分布函数用于描述每个样本的预测误差小于或等于某一特定值的概率,即:
F
X
(
x
)
=
P
(
X
≤
x
)
F_X(x) = P(X \leq x)
FX(x)=P(X≤x)
其中,
X
X
X表示所有测试集中每个AP的预测误差。
计算特定值
E
R
R
O
R
ERROR
ERROR:
通过绘制CDF曲线,可以找到
E
R
R
O
R
ERROR
ERROR的值,使得预测误差小于等于这个值的概率为90%:
P
(
error
≤
E
R
R
O
R
)
=
0.90
P(\text{error} \leq ERROR) = 0.90
P(error≤ERROR)=0.90
模型精度评估:
模型的精度可以通过计算1与这个特定值
E
R
R
O
R
ERROR
ERROR的差值来进行评估,定义为:
Model Precision
=
1
−
E
R
R
O
R
\text{Model Precision} = 1 - ERROR
Model Precision=1−ERROR
其中
E
R
R
O
R
ERROR
ERROR以百分比表示。
分别提供预测每AP吞吐和系统吞吐的精度:
对于每个AP的吞吐量预测精度,可以独立计算每个AP的
E
R
R
O
R
ERROR
ERROR并对应评估模型精度。对于系统吞吐的模型精度,需要将所有AP的吞吐量预测结果相加后,计算总的预测误差,并进行同样的CDF处理。
通过这些步骤,我们可以得到更为细致的模型精度评估结果。
针对第四个问题,关于模型精度评估方法的描述已经清晰阐明。下面是如何评估模型精度的完整步骤:
计算吞吐量预测误差 (error):对于每个AP的吞吐量,你可以使用公式:
error
=
predict throughput
−
throughput
throughput
×
100
\text{error} = \frac{\text{predict throughput} - \text{throughput}}{\text{throughput}} \times 100
error=throughputpredict throughput−throughput×100
这将给出预测吞吐量与实测吞吐量之间的百分比误差。
绘制CDF曲线:根据所有AP的吞吐量预测误差,绘制其累积分布函数(CDF)。对于每个特定的误差值ERROR,计算有多少比例的误差小于或等于该值。
计算精度:从CDF中提取出90%的概率所对应的特定值ERROR,此时的错误率即为模型精度。模型精度定义为:
模型精度
=
1
−
ERROR
\text{模型精度} = 1 - \text{ERROR}
模型精度=1−ERROR
分别计算每个AP和整体AP的系统吞吐模型的精度。
而针对第4个问题的python代码,您可以使用以下代码来进行吞吐量预测模型的实现:
<code>import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_absolute_percentage_error
import matplotlib.pyplot as plt
# 读取数据集
train_data = pd.read_csv('training_set.csv') # 请替换为正确的文件名称
test_data = pd.read_csv('test_set.csv') # 请替换为正确的文件名称
# 数据预处理
features = ['feature1', 'feature2', 'feature3'] # 替换为实际特征名
X_train = train_data[features]
y_train = train_data['throughput']
X_test = test_data[features]
y_test = test_data['throughput']
# 训练模型
model = RandomForestRegressor()
model.fit(X_train, y_train)
# 进行预测
y_pred = model.predict(X_test)
# 计算误差
error = (y_pred - y_test) / y_test * 100
# 绘制CDF
plt.figure()
plt.hist(error, bins=50, density=True, cumulative=True, color='blue', alpha=0.5)code>
plt.title('CDF of Throughput Prediction Error')
plt.xlabel('Error (%)')
plt.ylabel('Cumulative Density')
plt.grid()
plt.show()
# 计算90%精度
ERROR_90 = np.percentile(error, 90)
model_accuracy = 1 - (ERROR_90 / 100)
print(f'Model Accuracy: { model_accuracy}')
更多内容具体可以看看我的下方的名片!里面包含有研赛一手资料与分析!
另外在赛中,我们也会陪大家一起解析研赛的一些方向
关注 CS数模 团队,数模不迷路~
上一篇: 银河麒麟服务器操作系统Kylin-Server-V10-SP3-2403-Release-20240426-x86_64安装步骤
下一篇: 【kubernetes】k8s对外服务之Ingress
本文标签
2024 “华为杯” 中国研究生数学建模竞赛(B题)深度剖析|WLAN组网中网络吞吐量建模|数学建模完整代码+建模过程全解全析
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。