当前位置:   article > 正文

2023华数杯数学建模C题代码+模型+全套论文_数模优秀论文代码

数模优秀论文代码

目录

完整代码模型论文查看文末名片

非数值类型量化

数据归一化的代码:

问题 1 分析:

这里给出 PCA 的代码:

多元线性回归的相关代码:

完整代码模型论文见此


完整代码模型论文查看文末名片

母亲是婴儿生命中最重要的人之一,她不仅为婴儿提供营养物质和身体保护,还为婴儿提供
情感支持和安全感。母亲心理健康状态的不良状况,如抑郁、焦虑、 压力等,可能会对婴
儿的认知、情感、社会行为等方面产生负面影响。压力过大的母亲可能会对婴儿的生理和心
理发展产生负面影响,例如影响其睡眠等方面。
附件给出了包括 390 名 3 至 12 个月婴儿以及其母亲的相关数据。这些数据涵盖各种主
题,母亲的身体指标包括年龄、婚姻状况、教育程度、妊娠时间、 分娩方式,以及产妇心
理指标 CBTS(分娩相关创伤后应激障碍问卷)、EPDS (爱丁堡产后抑郁量表)、HADS(医
院焦虑抑郁量表)和婴儿睡眠质量指标包括整晚睡眠时间、睡醒次数和入睡方式。
背景分析:从背景中可以看出,本题主要解决母亲身心健康对婴儿成长的影响,我们需要通
过对题目给的附件进行数据分析,来确定问题结果。这里就代表不能使用除附件外的自己找
的数据了。为了对题目更好的分析。我们首先来分析一下附件数据。
如图为附件指标:
我们可以看出,婴儿行为为非数值型数据,这时我们需要先处理为数值型。对于非数
值型数据进行量化,大家可以使用以下方法:

数值类型量化


1 标签编码
标签编码是将一组可能的取值转换成整数,从而对非数值型数据进行量化的
一种方法。例如,在机器学习领域中,对于一个具有多个类别的变量,我们可以
给每个类别赋予一个唯一的整数值,这样就可以将其转换为数值型数据。
2 独热编码 onehot
独热编码是将多个可能的取值转换成二进制数组的一种方法。在独热编码中,
每个可能取值对应一个长度为总共可能取值个数的二进制数组,其中只有一个元
素为 1,其余元素均为 0。例如,对于一个性别变量,可以采用独热编码将“男”
和“女”分别转换为[1, 0]和[0, 1]。
3 分类计数
分类计数是将非数值型数据转换为数值型数据的一种简单方法。在分类计数
中,我们根据某些特定属性(比如学历、职业等)来对数据进行分类,然后统计
每个类别的数量或频率。例如,在调查问卷中,我们可以对某个问题的回答按照
“是”、“否”和“不确定”三个类别进行分类,并计算每个类别的数量或频率。
4 主成分分析
主 成 分 分 析 是 将多维数 据 转 换 为低维度 表示的 一 种 方 法 。 在 主 成 分 分 析 中 ,
我们通过找到最能解释数据变异的主成分来对原始数据进行降维处理。这样就可
以将非数值型数据转换为数值型数据。
这里建议使用标签编码/独热编码,最好使用标签编码,因为这个指标的数据是存在大小关
系的。
另外,对于整晚睡眠时间,需要将其转换为数值型数据,也就是比如 10:30,需要转换
为 10.5,这样方便后续进行计算分析。
数据预处理另一个很重要的步骤是:归一化处理,以避免量纲对建模结果的影响,如下

数据归一化的代码:
 

  1. #归一化处理
  2. import pandas as pd
  3. from sklearn.preprocessing import MinMaxScaler
  4. # 读取数据
  5. data = pd.read_excel('your_dataset.xlsx')
  6. # 提取需要进行归一化的指标列
  7. features_to_normalize = ['age', 'education', 'pregnancy_time', 'CBTS', 'EPDS', 'HADS', 'sleep_duration',
  8. 'awakening_times']
  9. # 使用 MinMaxScaler 进行归一化
  10. scaler = MinMaxScaler()
  11. data[features_to_normalize] = scaler.fit_transform(data[features_to_normalize])
  12. # 输出归一化后的数据
  13. print(data)

1. 许多研究表明,母亲的身体指标和心理指标对婴儿的行为特征和睡眠质量有影响,请问
是否存在这样的规律,根据附件中的数据对此进行研究。


问题 1 分析:

题目问的是母亲的身体指标和心理指标对婴儿的行为特征和睡眠质量是否有
影响,这里要注意,题目没有明确说明什么才是这些指标,所以我们需要把题目附件指标与
问题相互对应。建立母亲的身体指标模型、心理指标模型,婴儿的行为特征模型以及睡眠质
量模型,这里需要大家自己考虑附件哪些指标是直接相关的。我在这里说明一下确定后我们
需要怎样去建立这些模型,通常的方法有:
l 主成分分析(Principal Component Analysis,PCA):PCA 是一种线性降维方法,通过找
到数据集中最重要的主成分来实现降维。它将原始数据投影到新的正交坐标系中,使得
新坐标系上方差最大化,从而保留了数据中最具信息量的特征。
l 线性判别分析(Linear Discriminant Analysis,LDA):LDA 也是一种线性降维方法,但
与 PCA 不同,LDA 是一种监督学习方法,主要用于分类任务。它在降维的同时,试图
最大化类间距离并最小化类内距离,以获得一个更具判别性能的低维表示。
l 局部线性嵌入(Locally Linear Embedding,LLE):LLE 是一种非线性降维方法,通过在
局部区域内保持样本之间的线性关系来构建低维表示。LLE 假设数据在高维空间中局部
上是线性可分的,并通过重构每个样本与其邻居之间的线性关系,将高维数据映射到低
维空间。
l 非负矩阵分解(Non-negative Matrix Factorization,NMF):NMF 是一种用于非负数据
的降维方法。它将原始数据矩阵分解为两个非负矩阵的乘积,从而得到潜在的特征表
示。NMF 常用于图像处理和文本挖掘等领域。
l t-SNE:t-SNE 是一种流行的非线性降维方法,用于可视化高维数据。它通过保持样本
之间的局部相似性来将高维数据映射到二维或三维空间中。t-SNE 能够很好地展示数据
中的类别结构和聚类模式。


这里给出 PCA 的代码:
 

  1. #PCA代码
  2. from sklearn.decomposition import PCA
  3. import numpy as np
  4. # 假设我们有一个数据集 X,其中每一行表示一个样本,每一列表示一个特征
  5. X = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
  6. # 创建 PCA 对象,并指定要保留的主成分数量
  7. pca = PCA(n_components=2)
  8. # 对数据进行降维
  9. X_pca = pca.fit_transform(X)
  10. # 输出降维后的结果
  11. print(X_pca)

2. 婴儿行为问卷是一个用于评估婴儿行为特征的量表,其中包含了一些关于婴儿情绪和反
应的问题。我们将婴儿的行为特征分为三种类型:安静型、中等型、矛盾型。请你建立
婴儿的行为特征与母亲的身体指标与心理指标的关系模型。 数据表中最后有 20 组(编
号 391-410 号)婴儿的行为特征信息被删除,请你判断他们是属于什么类型。
问题 2 分析:问题 2 很明显是需要建立一个预测模型,需要我们定义好自变量和因变量,然
后用合适的模型算法建立这两者之间的关系。推荐的方法有:多元线性回归、随机森林、神
经网络、非线性拟合等方法。这里一定要用到我前面提到的,对婴儿的行为特征进行量化处
理。(推荐设置为 1,2,3,理由之前说了)之后就很好办了,这些方法都是很好的预测方
法,我认为题目较为简单,可以不使用复杂算法,多元线性回归即可解决。如下是

多元线性
回归的相关代码:
 

  1. #多元线性回归
  2. import statsmodels.api as sm
  3. import pandas as pd
  4. # 假设我们有一个包含多个特征和目标变量的数据集 data,其中每一行表示一个样本
  5. data = pd.DataFrame({'x1': [1, 2, 3, 4, 5],
  6. 'x2': [6, 7, 8, 9, 10],
  7. 'y': [11, 12, 13, 14, 15]})
  8. # 提取自变量(特征)和因变量(目标变量)
  9. X = data[['x1', 'x2']]
  10. y = data['y']
  11. # 添加常数列作为截距项,如果你不需要截距项,可以省略此步骤
  12. X = sm.add_constant(X)
  13. # 创建多元线性回归模型并拟合数据
  14. model = sm.OLS(y, X)
  15. results = model.fit()# 输出回归模型的详细结果
  16. print(results.summary())
  17. #拟合代码
  18. import numpy as np
  19. import matplotlib.pyplot as plt
  20. # Creating sample data
  21. x = [0.05 ,0.1 ,0.5 ,1 ,2 ,3 ,4 ,5]
  22. y = [0.636966 ,0.704712 ,0.905694 ,1.451922 ,2.204378 ,2.956834 ,3.409290 ,4.161746]
  23. # Fitting polynomial of degree 2
  24. p = np.polyfit(x, y, 1)
  25. p1 = np.poly1d(p,variable='x')
  26. print("y = ",p1)
  27. # Plotting the data points and regression line
  28. plt.scatter(x, y)
  29. plt.plot(x, np.polyval(p, x))
  30. r1 = np.corrcoef(y, p1(x))[0, 1]
  31. print("拟合优度(一次):", r1)
  32. plt.show()

完整代码模型论文见此

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/841045
推荐阅读
相关标签
  

闽ICP备14008679号