2023深圳杯(东三省)数学建模A题 - 影响城市居民身体健康的因素分析(思路分析+代码+论文)

A题  影响城市居民身体健康的因素分析

以心脑血管疾病、糖尿病、恶性肿瘤以及慢性阻塞性肺病为代表的慢性非传染性疾病(以下简称慢性病)已经成为影响我国居民身体健康的重要问题。随着人们生活方式的改变,慢性病的患病率持续攀升。众所周知,健康状况与年龄、饮食习惯、身体活动情况、职业等都有密切的关系。如何通过合理地安排膳食、适量的身体运动、践行健康的生活方式,从而达到促进身体健康的目的,这是全社会普遍关注的问题。附件A1是某市卫生健康研究部门对部分居民所做的“慢性非传染性疾病及其相关影响因素流行病学”调查问卷表,附件A2是相应的调查数据结果,附件A3是中国营养学会最新修订的《中国居民膳食指南》中为平衡居民膳食提出的八条准则。

请你们团队研究解决下面问题:

问题1  参考附件A3,分析附件A2中居民的饮食习惯的合理性,并说明存在的主要问题。

问题2  分析居民的生活习惯和饮食习惯是否与年龄、性别、婚姻状况、文化程度、职业等因素相关。

问题3  根据附件A2中的数据,深入分析常见慢性病(如高血压、糖尿病等)与吸烟、饮酒、饮食习惯、生活习惯、工作性质、运动等因素的关系以及相关程度。

问题4  依据附件A2中居民的具体情况,对居民进行合理分类,并针对各类人群提出有利于身体健康的膳食、运动等方面的合理建议。

影响城市居民身体健康的因素分析

摘要

本文主要研究了附件A2中居民的饮食习惯和生活习惯与常见慢性病的相关性,同时也探讨了居民的年龄、性别、婚姻状况、文化程度和职业等因素与其生活习惯和饮食习惯的关系。基于这些分析,我们构建了一个适应居民健康管理的分类模型,并根据模型结果,为不同类别的居民提出了有利于身体健康的饮食和运动建议。

在问题一中,我们分析了居民的饮食习惯的合理性,并指出了存在的主要问题。通过统计分析,我们发现居民的饮食习惯存在一定的不合理性,例如高盐饮食、高脂肪饮食等问题。

在问题二中,我们研究了居民的生活习惯和饮食习惯与其个人特征的关联性。结果显示,年龄、性别、婚姻状况、文化程度和职业等因素均对居民的生活习惯和饮食习惯有一定影响。

在问题三中,我们进一步探讨了常见慢性病与吸烟、饮酒、饮食习惯、生活习惯、工作性质、运动等因素的关系。通过逻辑回归模型,我们发现了各因素对常见慢性病的影响程度,为健康风险预测提供了重要依据。

在问题四中,我们构建了一个适用于居民健康管理的分类模型,对居民进行了合理的分类,并为每个类别的居民提出了有利于身体健康的饮食和运动建议。通过K-Means聚类算法,我们将居民分为健康、一般和较差三类,并根据每一类居民的特点给出了具体的健康管理建议。

关键词:饮食习惯,生活习惯,常见慢性病,健康管理,分类模型,健康建议。

问题重述

1.1 背景

在当前社会中,以心脑血管疾病、糖尿病、恶性肿瘤及慢性阻塞性肺病等为代表的慢性非传染性疾病(简称慢性病)已经变成了影响我国居民健康的重要问题。由于生活方式的改变,这类疾病的患病率也在持续增加。我们普遍认为,健康状况受到年龄、饮食习惯、身体活动水平、职业等多方面的影响。如何通过合理地安排饮食、进行适量的运动、和实行健康的生活方式,以促进居民的身体健康,成为了全社会普遍关注的问题。

此外,我们还收到了一些附件:附件A1是一份由某市卫生健康研究部门针对部分居民进行的“慢性非传染性疾病及其相关影响因素流行病学”调查问卷;附件A2是该调查的数据结果;附件A3是中国营养学会最新修订的《中国居民膳食指南》,其中提出了八条用于平衡居民饮食的准则。

根据这个背景,我们需要进行数学建模,分析影响慢性病患病率的多种因素,并探索通过合理膳食、适量运动和健康生活方式等措施对改善健康状况的潜在影响。

1.2 重述

问题1  根据中国营养学会的《中国居民膳食指南》(附件A3),我们需要对附件A2中的居民饮食习惯进行详尽的分析。这需要涉及到的问题包括但不限于:居民的膳食是否达到了营养均衡?是否有过度的食物类型?蔬菜、水果、谷物、肉类等食物摄入是否符合指南建议?通过这种方式,我们可以指出目前居民饮食习惯存在的主要问题。

问题2   我们需要理解居民的生活习惯和饮食习惯与他们的年龄、性别、婚姻状况、教育水平、职业等社会人口学因素是否存在关联。例如,年轻人和老年人的饮食习惯是否存在明显的区别?受教育程度是否影响了人们的生活习惯?这些因素如何影响了人们的健康?

问题3  根据附件A2中的数据,我们需要更深入地理解和分析常见慢性病(如高血压、糖尿病等)与吸烟、饮酒、饮食习惯、生活习惯、工作性质、运动等生活方式因素之间的关联。我们需要找出哪些行为或习惯与慢性病的发病率有较强的相关性。

问题4  我们需要根据附件A2中居民的具体情况进行分类。然后,我们需要为每个类别的人群提供适合他们的饮食和运动建议,这些建议应能有助于改善他们的健康状况,预防慢性疾病的发生。

模型的假设

针对本文题目,提出以下假设建模思路:

•  独立性假设:我们假设数据中的每一个观测(每一个受访者)都是独立的,也就是说,一个人的饮食习惯、生活方式、社会人口学特征和慢性病发病情况与其他人是独立的。

•  线性假设:在分析各因素与慢性病发病率之间的关系时,我们假设这些关系在一定范围内可以被视为线性的,也就是说,这些因素的增加或减少将导致慢性病发病率的线性增加或减少。

•  稳定性假设:我们假设在数据收集期间,受访者的生活习惯和健康状况是相对稳定的,没有发生重大的变化。

•  完整性假设:我们假设调查数据(附件A2)是完整的,即所有重要的影响慢性病发病率的因素都被收集了,且所有受访者都真实、完整地回答了所有问题。

符号说明

符号

说明

foods_day

居民每天食用各类食物的频率总和

foods_week

居民每周食用各类食物的频率总和

foods_month

居民每月食用各类食物的频率总和

BMI

身体质量指数,体重(kg)除以身高(m)的平方

sport

锻炼量,体育锻炼的强度乘以平均每天体育锻炼时间

total_vagetable_day

每天食用蔬菜的总量

total_fruit_day

每天食用水果的总量

total_muilk_day

每天食用奶类的总量

total_mut_day

每天食用鱼、禽、蛋、瘦肉的总量

total_oil_day

每天食用油类的总量

total_yan_day

每天食用盐的总量

total_jiu_day

每天饮用酒的总量

smoke

平均每周吸烟天数乘以一天吸烟支数

ill

疾病指数,包括高血压、冠心病、脑血管疾病、糖尿病、慢性呼吸系统疾病、恶性肿瘤等

问题分析

4.1 问题一分析

饮食习惯的合理性分析:对于此问题,首先需要理解并解析附件A3中的《中国居民膳食指南》。我们需要确定指南中提出的具体饮食建议和要求,例如每日需要摄入的各类营养素比例、食物种类和份量等。然后,我们将使用这些信息,对照附件A2中的调查数据,评估居民的饮食习惯是否达到了指南的要求,以及哪些方面存在偏差。

4.2 问题二分析

生活习惯与社会人口学因素的关联性分析:这个问题的分析涉及到多变量关联分析,如逻辑回归、协方差分析或者皮尔森相关性分析等。我们需要分析附件A2中的数据,查看生活习惯(如饮食习惯、运动习惯等)和社会人口学因素(如年龄、性别、婚姻状况、教育水平、职业等)之间是否存在显著的关联。

4.3 问题三分析

慢性病与生活方式因素的关联性分析:这一问题的分析依旧需要使用相关性分析,或者可能需要使用更复杂的统计学方法,如多元逻辑回归,来探究多个因素与慢性病发病率之间的关系。此过程中,我们会考虑吸烟、饮酒、饮食习惯、生活习惯、工作性质、运动等因素,并尝试找出它们与慢性病(如高血压、糖尿病等)发病率的关联性和相关程度。

4.4 问题四分析

居民分类和健康建议:首先,我们需要依据附件A2中居民的特征,如年龄、性别、生活习惯、职业等进行居民分类。这可能需要使用一些机器学习的无监督学习算法,如K-means聚类。然后,根据不同类别的居民的特点和风险,结合膳食指南和疾病预防原则,制定出有利于身体健康的膳食、运动等方面的合理建议。

五、模型的建立与求

在处理以下问题的之前,需要先对题目中提供的数据进行处理,正常的数据是保障模型效果的重要因素,可以发现数据中存在重复值和控制,因此本文先对这些数据进行处理,对异常值和重复值利用pandas的drop_duplicates函数进行删除,接着对空值进行填充处理。

5.1 问题一模型的建立与求解

(1)构建评价指标:根据附件A2中的居民数据,首先定义了多个评价指标,其中包括食物多样性与合理搭配、吃动平衡、多吃蔬果、奶类、全谷、大豆、适量吃鱼、禽、蛋、瘦肉、少盐少油、控糖限酒等方面的指标。

(2)单位转换:在构建评价指标时,对数据进行了单位转换,确保指标具有相同的量纲。

(3)数据处理:对每个指标按天、周、月进行了汇总计算,得到对应的数据。

这个模型的指标建立包含以下几个主要步骤:

  1. **食物多样,合理搭配**:这个指标通过统计数据中各种食物的食用频率计算每天、每周和每月的食物种类总数。多样化的食物摄入可以帮助确保营养的全面摄入。

食物种类的计算:

每日食物种类 = Σ食物的每日食用次数

每周食物种类 = Σ食物的每周食用次数

每月食物种类 = Σ食物的每月食用次数

  1. **吃动平衡,健康体重**:使用体重指数(BMI)作为健康体重的指标。BMI是通过体重(公斤)除以身高(米)的平方计算的。同时,还计算了每天的运动强度,这是通过每天的体育锻炼强度和时间来计算的。

BMI的计算:

BMI = 体重(kg) / (身高(m))^2

运动强度的计算:

每日运动强度 = 体育锻炼的强度 * 平均每天体育锻炼时间

  1. **多吃蔬果、奶类、全谷、大豆**:这个指标通过计算每天蔬菜、水果和奶类食品的总摄入量来衡量。蔬果和奶类富含各种维生素和矿物质,对健康有很大益处。

食品摄入量的计算:**

每日蔬菜摄入量 = 食用新鲜蔬菜的频率/天 * 平均每次食用量 * 折算系数

每日水果摄入量 = 食用水果的频率/天 * 平均每次食用量 * 折算系数

每日奶类摄入量 = (食用鲜奶的频率/天 + 食用奶粉的频率/天 + 食用酸奶的频率/天) * 平均每次食用量 * 折算系数

4. **适量吃鱼、禽、蛋、瘦肉**:通过计算每天鱼、禽、蛋和瘦肉的总摄入量,这些食物都是优质蛋白质的重要来源。

每日肉类摄入量 = (食用禽肉的频率/天 + 食用水产的频率/天 + 食用蛋类的频率/天 + 食用牛羊肉的频率/天 + 食用猪肉的频率/天) * 平均每次食用量 * 折算系数

5. **少盐少油,控糖限酒**:计算每天的油、盐和酒的总摄入量。过量的油和盐摄入可能增加心血管疾病的风险,而过量的酒精摄入也对健康有害。

摄入盐油量的计算:

每日油摄入量 = (植物油摄入量 + 动物油摄入量) * 折算系数

每日盐摄入量 = 盐摄入量 * 折算系数

每日酒精摄入量 = Σ(饮用频率 * 每次饮用量) * 折算系数

以上所有的数据都被整合到一个pandas DataFrame中,每个指标作为一个列,行是每个人的数据。每个指标都可以单独分析,也可以与其他指标一起分析,以得到更全面的健康饮食评估。

这个模型的主要目标是对每个人的饮食习惯进行全面的量化评估,并找出可能的问题,例如摄入的食物种类是否足够多样,是否有足够的运动,是否摄入了足够的蔬果和奶类,是否过量摄入油、盐和酒等。这样,我们可以对每个人的饮食习惯给出具体的改进建议。

  1. 绘制直方图:通过绘制直方图,对每个指标的数据进行了可视化展示,帮助了解数据的分布情况。

可以看到大部分的量化指标的指标值较小,可以看到在水果,牛奶,以及身体健康指标方面,所采样的居民的指标差距差距不大,差距较大的量化指标有运动量、蔬菜摄入数量、酒的摄入量以及每日的食用油油摄入量存在差异较大。

(5)绘制散点图:对每个指标绘制了散点图,并在图中添加了标准线,以帮助比较不同指标的取值情况。标准线可能代表一些阈值或标准,用于判断数据是否合理。

在上图中,散点图中的散点代表每个采样的城市居民指标值,红色横线,代表《中国居民膳食指南》所建议的一些指标阈值,通过可视化可以得到如下结论:

1.大部分人摄入食物种类数量/天(摄入食物种类数量/月)都偏少,达不到指标阈值数量;

2.整体的居民BMI指数偏高,BMI是用来衡量一个人是否处于健康的体重范围,偏高的BMI指标值代表的采样人群体重偏重,存在或多或少的肥胖问题,相应的健康风险也会增加,如糖尿病、心脏病、高血压、某些类型的癌症等。

3.采样人群在运动方面是远远超过最低阈值的,代表该人群的运动能力较高,有较高的防范风险意识。

4.在蔬菜、牛奶、水果的摄入量方面,采样人群的摄入量都是偏少的,而肉类、油盐等指标的摄入是比较高的,分心该采样人群可能平时的饮食口味方面比较重,应该注重健康饮食情况,减轻口味。

5.在烟、酒的摄入量方面,采样人群普遍超标,尤其是摄入酒量严重超标,过量饮酒和吸烟可引发多种健康问题,如心血管疾病、肝脏疾病、癌症和呼吸系统疾病,还可能导致精神健康问题。健康的生活方式应限制饮酒和避免吸烟。

5.2 问题模型的建立与求解

  1. 数据预处理:我们首先对数据进行了预处理。将“出生年”转换为“年龄”,并且对类别数据(如性别、民族、文化程度、婚姻状况、职业)进行了标签编码,将它们从文本数据转换为数值数据,以便后续处理和计算。

年龄 = 2013 - 出生年

2. 数据整合:我们将预处理后的人口统计学数据和问题一中计算得到的饮食习惯评价指标数据合并,形成了一个新的数据集。这个新的数据集包含了年龄、性别、民族、文化程度、婚姻状况、职业等人口统计学特征,以及各种饮食习惯评价指标。

3. 定义特征和目标变量:我们确定了特征(特征变量)和目标变量。其中,特征包括年龄、性别、民族、文化程度、婚姻状况、职业等人口统计学特征,目标变量则是我们在问题一中计算出来的饮食习惯评价指标。

4. 计算相关性:在定义了特征和目标变量后,我们计算了它们之间的相关性。具体来说,对于每一个人口统计学特征以及饮食习惯指标,我们都计算了它们之间的皮尔森相关系数。这个系数可以量化两个变量之间的线性关系,其值范围在-1(完全负相关)到1(完全正相关)之间。系数接近0则表示两个变量之间没有明显的线性关系。

皮尔逊相关系数的计算公式为:

r(X,Y) = Cov(X,Y) / (σx * σy)

变量

食品日摄入量

食品周摄入量

食品月摄入量

BMI

运动

蔬菜日摄入量

水果日摄入量

奶类日摄入量

肉类日摄入量

油类日摄入量

盐类日摄入量

酒类日摄入量

出生年

-0.037

0.124

0.054

-0.109

-0.173

0.020

0.109

0.039

0.056

-0.027

-0.020

0.046

性别

0.057

-0.070

-0.009

-0.075

-0.016

0.017

0.042

0.074

-0.097

-0.005

0.012

-0.274

民族

-0.002

0.016

-0.006

-0.001

-0.012

-0.014

0.004

0.030

-0.006

-0.007

-0.009

-0.012

文化程度

0.032

0.171

-0.000

-0.044

0.068

0.091

0.062

0.061

0.094

-0.157

-0.080

0.056

婚姻状况

-0.000

-0.043

-0.014

0.063

0.030

0.005

-0.027

0.004

-0.020

0.000

0.003

-0.013

职业

0.058

-0.016

-0.046

-0.005

0.074

-0.003

-0.004

0.020

-0.004

0.047

-0.005

-0.104

最终得到的结果如下:

根据以上的相关性分析,得到以下结论:

(1)年龄(出生年): 年龄与运动的相关性较强,呈现负相关,表明年龄越大,参与运动的可能性越小。年龄与BMI也存在负相关性,可能是由于随着年龄的增长,身体状况和新陈代谢减弱。

(2)性别:性别与酒类日摄入量的相关性最强,呈现负相关,可能代表在此数据集中,男性的酒类日摄入量比女性的更高。

(3)民族:民族与各变量的相关性都较弱,表示民族因素对这些生活习惯和饮食习惯的影响较小。

(4)文化程度:文化程度与食品周摄入量、蔬菜日摄入量、肉类日摄入量和油类日摄入量相关性较高,表明文化程度可能对这些因素有较大影响。

(5)婚姻状况:婚姻状况与各变量的相关性都较弱,表示婚姻状况对这些生活习惯和饮食习惯的影响较小。

(6)职业:职业与运动的相关性最强,呈现正相关,可能表明某些职业类型更倾向于进行运动。

5.可视化数据集中所有列的相关性矩阵,以热力图的方式展现:

5.3 问题模型的建立与求解

1. 定义预测特征X和目标变量Y:X为除了六种疾病外的所有特征,Y则是要预测的疾病,包括高血压,冠心病等六种。

2. 进行模型训练和预测:

    2.1. 使用train_test_split函数将数据集分割为训练集和测试集,其中训练集用于训练模型,测试集用于评估模型的性能。

2.2. 使用LogisticRegression类创建逻辑回归模型,并使用fit方法训练模型。

逻辑回归模型的数学公式通常表示为:

P(Y=1|X) = 1 / (1 + e^(-(b0 + b1X1 + b2X2 + ... + bn*Xn)))

其中,P(Y=1|X)是给定特征X时,Y等于1(也就是分类为正类)的概率;b0、b1、…、bn是模型参数,通过训练数据来学习;e是自然对数的底数。

    2.3. 使用训练好的模型对测试集进行预测。

3. 模型评估:

    3.1. 使用accuracy_score函数计算模型的准确率,即预测正确的样本数占总样本数的比例。

    3.2. 使用confusion_matrix函数生成混淆矩阵,以了解模型在各个类别上的预测性能。

    3.3. 使用classification_report函数生成分类报告,展示模型在各个类别上的精确率,召回率和F1分数。

准确率的计算公式为:

(TP+TN)/(TP+TN+FP+FN),

其中,TP是真正类(模型预测为正,实际也为正),TN是真负类(模型预测为负,实际也为负),FP是假正类(模型预测为正,实际为负),FN是假负类(模型预测为负,实际为正)。

得到的结果如下:

Disease

Accuracy

高血压

0.6339

冠心病

0.9114

脑血管疾病(如脑出血、网膜下腔出血、脑血栓形成、脑栓塞等)

0.9216

糖尿病

0.8763

慢性呼吸系统疾病(如慢支、肺气肿、哮喘)

0.9120

恶性肿瘤

0.9362

以下是对这些结果的分析:

(1)高血压的模型准确率较低(约63.39%),这可能是由于该疾病的特征与其他疾病有很大的交叉,或者我们的数据集中没有足够的信息来准确地预测高血压。

(2)对于冠心病、脑血管疾病、慢性呼吸系统疾病和恶性肿瘤,模型的准确率都较高,分别为91.14%、92.16%、91.20%和93.62%。这可能表明我们的数据集中包含了这些疾病的关键特征,或者这些疾病在我们的数据集中的分布比较独特,较容易被模型识别。

(3)对于糖尿病,模型的准确率为87.63%,虽然低于冠心病、脑血管疾病和恶性肿瘤的准确率,但相对于高血压的准确率来说,仍然相对较高。

  1. 最后,代码使用seaborn库中的heatmap函数将混淆矩阵可视化,便于直观地看出模型的预测性能。

5.4 问题四模型的建立与求解

数据准备与预处理:

(1)首先,本文汇总了所有的疾病信息并添加到一个新的列"ill"中,这将为我们的模型提供一个疾病的综合指标。这个新的特征"ill"能帮助我们了解每个人有多少种疾病。

然后,为了确保每个特征在模型中的影响是平等的,我们需要对数据进行标准化。数据标准化能够使所有的特征都具有相同的尺度。

计算公式为:

z = (x - μ) / σ

(2)选择聚类数k:

在这个案例中,我们选择的聚类数k为3,也就是说我们要将所有居民分为3类。

(3)K-Means聚类算法:

在这个步骤中,我们使用了K-Means聚类算法。首先,算法随机选择3个点作为初始的聚类中心。然后,它计算每个数据点到这3个聚类中心的距离,并将每个数据点分配给最近的聚类中心。接着,它更新每个聚类的中心,使其成为该聚类中所有数据点的均值。以上过程会重复进行,直到聚类中心不再改变,或者达到预定的最大迭代次数。

聚类算法为:

d(p, q) = √[(q1-p1)² + (q2-p2)² + ... + (qn-pn)²]

(4)绘制结果:

我们通过图形显示了聚类的结果,每个类别都用一个圆圈表示。

(5)针对各类人群的健康建议:

健康人群:这类人群基本没有慢性疾病,他们应保持良好的饮食和锻炼习惯,防止慢性疾病的发生。他们可以尝试各种类型的运动,如游泳、跑步、瑜伽等。同时,他们也需要保持均衡的饮食,多吃蔬菜水果,少吃油腻和高糖食物。

一般人群:这类人群可能存在一些慢性疾病,他们需要更加注意自己的生活方式。对于饮食,他们需要按照医生或营养师的建议进行调整,可能需要限制某些食物的摄入。对于运动,他们需要找到适合自己疾病状况的运动方式,可能需要避免某些剧烈的运动。

较差人群:这类人群可能有多种慢性疾病,他们需要严格地按照医生的建议进行生活方式的调整。他们的饮食可能需要严格的控制,可能需要避免某些可能加重疾病的食物。对于运动,他们可能只能进行某些轻度的运动,如散步、做瑜伽等。此外,他们还需要定期地看医生,及时地对疾病进行治疗。

六、模型评价

6.1 模型的优点

(1)建立疾病预测模型:通过利用逻辑回归,我们可以对居民的六种疾病进行预测。模型考虑了各种因素,如体重、年龄、吸烟等,并为每个因素赋予权重,从而得出疾病发生的概率。这样的模型能够在一定程度上预测居民的健康状况。

(2)划分人群群体:通过使用K-Means聚类,我们将居民按照他们的健康状况和生活习惯进行分类。这种分类方式可以帮助我们了解不同群体的健康状况,从而为他们提供针对性的膳食和运动建议。

(3)实用性和操作性强:该模型基于实际的生活习惯和健康状况数据,因此其预测和分类结果具有很高的实用价值。同时,模型采用的是逻辑回归和K-Means聚类这两种比较容易理解和操作的算法,有利于实际应用。

6.2 模型的缺点

(1)数据依赖性:模型的效果大程度上取决于输入数据的质量和量,如果数据不完整或有误,可能导致模型的预测效果下降。

(2)逻辑回归的局限性:逻辑回归虽然能够处理二分类问题,但是对于本题中的六种疾病预测,其实是多分类问题,如果简单地将其视为二分类处理可能会忽略一些信息。

(3)K-Means的局限性:K-Means需要预先设定聚类数量,但实际上我们并不清楚有多少种健康状况的人群,这就需要我们手动选择一个合适的聚类数量。另外,K-Means对离群值敏感,可能会影响最后的分类效果。

(4)建议的个性化:模型可以根据不同群体的健康状况和生活习惯提出一般的膳食和运动建议,但对于个体的具体情况,可能需要更加个性化的建议,而这一点该模型无法做到。

6.3 模型的改进与推广

改进:

1. 数据质量与量的提升:增强数据的质量和量是提高模型预测效果的关键。例如,可以增加更多的健康因素考虑,如基因特点、睡眠质量、精神压力等。同时,通过增加样本量也能提升模型的泛化能力。

2. 模型升级:针对多分类问题,可以使用更适合的算法替代逻辑回归,例如支持向量机(SVM)、决策树或随机森林等。另外,也可以尝试使用深度学习等更复杂的模型,例如神经网络模型,以获取更准确的预测。

3. 选择更合适的聚类算法:对于聚类问题,K-Means并不总是最好的选择,可以尝试使用其他聚类算法,如层次聚类、DBSCAN等,这些方法不需要预先设定聚类数量,并且对离群值的影响较小。

4. 提高建议的个性化:在给出建议时,除了考虑到群体特性外,还可以进一步提高建议的个性化。例如,可以使用机器学习模型预测个体对特定运动或食物的反应,从而给出更个性化的建议。

推广:

1. 应用领域的扩大:这种健康预测和人群分类模型不仅可以应用于居民健康管理,也可以推广到其他相关领域,如疾病预防、医疗保险定价等。

2. 平台的构建:可以将这种模型构建为一个在线平台或应用程序,用户可以输入自己的生活习惯和健康状况,系统就能预测他们的健康风险,并给出改善健康的建议。

3. 多元化推广:结合现代的移动健康设备,如智能手环、健康监测仪等,可以实时收集用户的健康数据,通过模型进行分析和预测,从而实时监测健康状况,并给出及时的建议。

4. 合作推广:可以和医疗机构、健康咨询机构等进行合作,利用这种模型提供更精准的个性化医疗和健康管理服务。

录 A 程序

问题一

import pandas as pd

data = pd.read_excel(r'C:\Users\shinelon\Desktop\深圳A\data.xlsx')

# 处理重复值合控制

data.drop_duplicates(inplace=True)

data.fillna(0,inplace=True)

print(data.head())

# 构建评价指标(注意单位转换)

# 一、食物多样,合理搭配

food_list_day = ['食用大米次数/天', '食用小麦面粉的频率/天', '食用杂粮的频率/天','食用薯类的频率/天','食用油炸面食的频率/天','食用猪肉的频率/天',

             '食用牛羊肉的频率/天','食用禽肉的频率/天','食用内脏的频率/天','食用水产的频率/天','食用鲜奶的频率/天','食用奶粉的频率/天','食用蛋类的频率/天',

              '食用豆腐的频率/天','食用豆腐丝等的频率/天','食用豆浆的频率/天', '食用干豆的频率/天' ,'食用新鲜蔬菜的频率/天', '食用海草的频率/天',

                 '食用咸菜的频率/天','食用泡菜的频率/天','食用酸菜的频率/天','食用糕点的频率/天','食用水果的频率/天','食用果汁饮料的频率/天','食用其他饮料的频率/天',

                 ]

foods_day = [0]*len(data.index)

foods_week = [0]*len(data.index)

foods_month = [0]*len(data.index)

for i in food_list_day:

    foods_day = foods_day + data[i]

    foods_week = foods_week + data[i.replace('天','周')]

    foods_month = foods_month + data[i.replace('天','月')]

# 二、吃动平衡,健康体重

BMI = data['体重']/((data['身高']/100)**2)

sport = data['体育锻炼的强度']*data['平均每天体育锻炼时间']

# 三、多吃蔬果、奶类、全谷、大豆

total_vagetable_day = data['食用新鲜蔬菜的频率/天']*data['平均每次食用量.18']*50

total_fruit_day = data['食用水果的频率/天']*data['平均每次食用量.24']*50

total_muilk_day = (data['食用鲜奶的频率/天']*data['平均每次食用量.10']+data['食用奶粉的频率/天']*data['平均每次食用量.11']+data['食用酸奶的频率/天']*data['平均每次食用量.12'])*50

# 四、适量吃鱼、禽、蛋、瘦肉

total_mut_day = (data['食用禽肉的频率/天']*data['平均每次食用量.7']+data['食用水产的频率/天']*data['平均每次食用量.9']+

                 data['食用蛋类的频率/天']*data['平均每次食用量.13']+data['食用牛羊肉的频率/天']*data['平均每次食用量.6']+

                 data['食用猪肉的频率/天']*data['平均每次食用量.5'])*50

# 五、少盐少油,控糖限酒

total_oil_day = (data['植物油']+data['动物油'])*500/30/3

total_yan_day = data['盐']*50/30/3

total_jiu_day = 50/7*(data['饮用频率']*data['平均每次饮用量']+data['饮用频率.1']*data['平均每次饮用量.1']+data['饮用频率.2']*data['平均每次饮用量.2']+data['饮用频率.3']*data['平均每次饮用量.3']+data['饮用频率.4']*data['平均每次饮用量.4'])



col = [foods_day,foods_week,foods_month,BMI,sport,total_vagetable_day,total_fruit_day,total_muilk_day,total_mut_day,total_oil_day,total_yan_day,total_jiu_day]

col_name = ['foods_day','foods_week','foods_month','BMI','sport','total_vagetable_day','total_fruit_day','total_muilk_day','total_mut_day','total_oil_day','total_yan_day','total_jiu_day']

dt = pd.DataFrame()

for i in range(len(col)):

    dt[col_name[i]] = col[i]

import matplotlib.pyplot as plt

def draw_histograms(df, variables, n_rows, n_cols):

    fig=plt.figure(figsize=(10,10))

    for i, var_name in enumerate(variables):

        ax=fig.add_subplot(n_rows,n_cols,i+1)

        df[var_name].hist(bins=10,range=(df[var_name].min(), df[var_name].max()),ax=ax)

        ax.set_title(var_name)

    fig.tight_layout()  # Improves appearance a bit.

    plt.show()



draw_histograms(dt, dt.columns, len(dt.columns)//3, 3)

# 获取列的数量

num_columns = dt.shape[1]

# 标准线

line = [[12],[25],[45],[18.5,24],[15],[300],[250,350],[500],[120,200],[25,30],[5],[15]]



# 计算子图的行数和列数

num_rows = int(num_columns ** 0.5)  # 取根号然后向下取整

num_cols = (num_columns + num_rows - 1) // num_rows  # 确保有足够的格子放置所有的子图



fig, axs = plt.subplots(num_rows, num_cols, figsize=(15, 15))  # 设置画布大小



# 对每一列画散点图

for i in range(num_columns):

    row = i // num_cols  # 计算子图所在的行

    col = i % num_cols   # 计算子图所在的列

    ax = axs[row, col] if num_rows > 1 and num_cols > 1 else (axs[col] if num_rows == 1 else axs[row])  # 获取子图对象

    ax.scatter(range(dt.shape[0]), dt.iloc[:, i])

    for j in line[i]:

        ax.axhline(y=j, color='red')  # 在子图上画线

    ax.set_ylabel('Value')

    ax.set_title(f'Scatter plot of column: {dt.columns[i]}')



plt.tight_layout()  # 自动调整子图的位置,避免重叠

plt.show()

 

问题二

data['出生年'] = 2013-data['出生年']

categorical_columns = ['出生年','性别','民族','文化程度','婚姻状况','职业']

for column in categorical_columns:

    data[column] = labelencoder.fit_transform(data[column])

now_data = pd.concat([data[['出生年','性别','民族','文化程度','婚姻状况','职业'] ], dt], axis=1)



now_data

X = now_data.drop(col_name, axis=1)  # 除了生活习惯和饮食习惯以外的所有列都作为特征

y = now_data[col_name]  # 我们想要预测的目标变量

for i in categorical_columns:

    for j in col_name:

        correlation = np.corrcoef(X[i], y[j])[0, 1]

        print(f"{i}和{j}的相关性: {correlation}")

import seaborn as sns

import matplotlib.pyplot as plt



plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签

plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号

# 计算数据集中所有列的相关性矩阵

correlation_matrix = now_data.corr()

# 使用热力图可视化相关性矩阵

sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm', fmt='.2f')

plt.title('Correlation Matrix')

plt.show()

问题三

import pandas as pd

import numpy as np

import seaborn as sns

import matplotlib.pyplot as plt

from sklearn.model_selection import train_test_split

from sklearn.linear_model import LogisticRegression

from sklearn.metrics import accuracy_score, confusion_matrix, classification_report

# 新增吸烟因素

smoke = data['平均每周吸烟天数']*data['一天吸烟支数']

now_data['smoke'] = smoke

X = now_data

cl = ['高血压','冠心病','脑血管疾病(如脑出血、网膜下腔出血、脑血栓形成、脑栓塞等)','糖尿病','慢性呼吸系统疾病(如慢支、肺气肿、哮喘)','恶性肿瘤']



for i in cl:

    y = data[i]

    # 划分训练集和测试集

    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)



    # 使用逻辑回归建模

    model = LogisticRegression(max_iter=1000)

    model.fit(X_train, y_train)



    # 4. 模型评估与解释

    y_pred = model.predict(X_test)

    accuracy = accuracy_score(y_test, y_pred)

    confusion_mat = confusion_matrix(y_test, y_pred)

    classification_rep = classification_report(y_test, y_pred)



#     print(f"Accuracy: {accuracy}")

    # 生成混淆矩阵

    confusion_mat = confusion_matrix(y_test, y_pred)



    # 将混淆矩阵转换为DataFrame,方便使用Seaborn绘制热力图

    confusion_df = pd.DataFrame(confusion_mat, index=['Actual Negative', 'Actual Positive'], columns=['Predicted Negative', 'Predicted Positive'])



    # 绘制热力图

    plt.figure(figsize=(6, 4))

    print(i)

    sns.heatmap(confusion_df, annot=True, fmt='d', cmap='Blues')

    plt.title('Confusion Matrix')

    plt.xlabel('Predicted Label')

    plt.ylabel('True Label')

    plt.show()

问题四

cl = ['高血压','冠心病','脑血管疾病(如脑出血、网膜下腔出血、脑血栓形成、脑栓塞等)','糖尿病','慢性呼吸系统疾病(如慢支、肺气肿、哮喘)','恶性肿瘤']

ill = [0]*len(data)

for i in cl:

    ill = data[i]+ill

now_data['ill'] = ill

now_data

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

from sklearn.cluster import KMeans

from sklearn.preprocessing import StandardScaler

# 1. 数据准备

# 2. 数据标准化

scaler = StandardScaler()

X_scaled = scaler.fit_transform(X)



# 3. 选择聚类数k

k = 3

kmeans = KMeans(n_clusters=k, random_state=42)



# 4. 计算数据点到聚类中心的距离,5. 数据点分配,6. 更新聚类中心

clusters = kmeans.fit_predict(X_scaled)



# 7. 绘制散点图和画圈分类

plt.figure(figsize=(8, 6))



# 绘制散点图

plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], c='red', marker='x', s=200)  # 绘制聚类中心



print(data[['ID', 'Cluster']])

print('分为三类,样本中心与分类圈如下:')

print('健康','一般','较差')

# 画圈分类并显示文字标签

labels = [ '较差', '健康','一般']

for i in range(k):

    circle = plt.Circle((kmeans.cluster_centers_[i, 0], kmeans.cluster_centers_[i, 1]),

                        radius=0.8, edgecolor='red', facecolor='none', linestyle='dashed', linewidth=2)

    plt.gca().add_patch(circle)

    plt.text(kmeans.cluster_centers_[i, 0]+0.5, kmeans.cluster_centers_[i, 1], labels[i]+'人群样本数量:'+str((list(clusters).count(i))), color='black', ha='center', va='center', fontsize=12)



plt.title('居民聚类')

plt.xlabel('Feature 1')

plt.ylabel('Feature 2')

plt.show()

数学建模优秀论文 本节主要讲解数学建模竞赛应该如何准备以及分工的问。很多新来的学生 都会问我这个问数学建模好难、我不会建模、我数学底子很差。其实,我觉 得由于从小学到高中的教育,很容易把数学建模等同于数学竞赛。这两者其实真 的天差地别,如果说数学竞赛更多的是一种智力的比拼,那么数学建模更多的是 一共系统与工程协调的比拼。粗俗点说,前者就是做,后者则是科研。 数学建模主要分为三个方向,建模,编程,以及写作。我们通常看到数学建 模证书上面有三个人的名字 xxx,xxx,xxx。如果按照传统思想排队,一般第一 个人负责建模,第二个人负责编程,第三个人负责写作。其实三个人在队伍中的 地位是平等的,所以国奖证书很人性化地把大家的名字都排在自己队伍的第一位。 下面具体说说建模、编程以及写作。 建模主要是需要构建出一个数学模型,这个模型可以是一组方程,可以是一 个可操作的框架,也可以是一个函数。总而言之,能用数学解决问的一种抽象 方法,就是数学模型。我们高中学的物理,在解物理的过程,其实就是数学建 模的过程。比如 2016 年国赛 A 的第一问,只要用到高中物理的正交分解法, 列出水平方向以及竖直方向的精力平衡,即可解决该问。我想,大家都是考上 本科的人了,最基础的物理还是会的吧?所以对于建模的同学来说,并不要求你 的数学功底有多么的好,但是需要你在培训或者自学期间,多涉猎一些模型(不 求计算或者推导,只求能有一定的印象,只要这个模型应该用在什么地方即可。) 这样,到了真正比赛的时候,想到用什么方法,结合网络等资源便可以迅速学习 出相关的模型理论,经过自己的一定创新,便可以较好地解决所需要完成的任务。 编程这一块是韩同学的强项。我只谈谈作为建模为主,但是要懂一些编程的 人应该达到的编程水平。严格来说,写 MATLAB 代码还做不到完全脱离书本的水 平。但是我已经具备了看到一大段代码,自己对其中的部分语句进行修改,为我 所用,实现自己想要的功能。对于建模比赛来说,达到这种水平一般来说是够用 了,只要在编程同学写程序的时候,建模的同学可以检查 MATLAB 代码是否符合 数学模型的要求,而不是单纯的代码堆积。如果是计算机或者软件方向的学生, 那么就尽可能地多学习 MATLAB 有关知识,能够自己独立写出代码并且调试错误 那么是再好不过的了。 写作这一块是专门为文科生或者女生准备的福利,其实不管你的模型多么华 丽,不管你的程序复杂度多么地低,如果无法形成一篇语句流畅,图文并茂的论 文出来。你还是只有拿成功参赛奖的命。如果说建模与编程的同学决定了获奖的 11 上限,那么写作的同学则决定了获奖的下限。一篇排版以及语句优秀的论文,可 以让评委老师眼前一亮,迅速获得好评。在国赛中,由于不放心论文,所以两次 论文写作均是我个人操刀,其实两次论文都存在一定的遗憾。如果有一位细心的 女同学可以帮助另外两名队友写作并且细心排版,那么论文的水平将会更上一层 楼。同时,我希望写作的队员不要完全不顾数学,在比赛期间,还是应该或多或 少知道一些建模以及编程人的思路,即使提不出什么意见,也有助于清晰写作的 框架。 上面为不同方向的队员应该是怎样的以及如何准备。而且我建议三名小组成 员最好是从大一一直打到大四的比赛,只有磨合默契的队友,才更有希望冲击国 奖甚至国一。 四、 数学建模竞赛比赛技巧 既然这是谈建模竞赛,那么我还是需要谈一谈应试技巧的话,对于代做或 者直接抄袭他人作品的行为我是十分反对的(不能以身试法,否则不仅损害个人 名誉,损害学弟学妹参赛资格,更加损害学校的声誉)。 1.选机灵点,在选前,建议先上知网等学术网站对相关话进行查找, 如果相关文献较多,那么则更容易从中获得灵感,建立出属于自己的模 型(如果用到了里面的公式或者模型,一定要引用)。不过这种做法存在 一个缺点,就是你这么想,难道别人不会这么想么?所以,最终大家的 论文虽然都是各自独立完成的,但是很容易出现结果差不多,图表差不 多,甚至模型差不多的情况。因此,这样很难分出优劣,对于拿国奖来 说,并不是十分有利。(一般国赛 A 多为这种情况,如果想通过原创冲 击国奖,那么更应该选择可塑性高的问,如 B )。 2.如要冲击国奖最好选择可塑性高的,一般每年国赛的 B ,都是方案 类问,即使你在知网或者其他网站上找到相似的文献,但是仔细一看, 往往都是失望而归。因为 B 一般都是热点问:比如去年的互联网+打 车和今年的小区道路改造问,都是以往不曾出现过的。所以,如果 B 你可以挖掘出别人挖掘不到的信息,并且建立出一个较为新颖的模型, 那么国一就是你的了。 3.一定要把第一做对(做不对也要给出一个结果)!一定要写一篇较为完 整、格式较为清晰(哪怕只做了一问,也有文章)的论文。如果可以达 到上述要求,那么不论是什么建模比赛,奖状都有你的一份了。。。。但是 很遗憾,每年不管什么类型的比赛,很多同学连这一条也无法达到,所 以同学们应该反思自己,为什么拿不到奖了。 4.对于得不出较为理想的值,则应该从现在所做的所有工作中选一个数据 出来作为答案,并且附上理由。千万不要无端造出程序无法实现的答案 出来,如果万一进了国奖答辩,评委问你这个数据怎么得出来的,你总 不可以说是猜出来的吧? 5.每一次比赛,都认真做,不要总想着还有下一次的比赛可以做,做好每 一次的比赛,都是一次不错的锻炼。 6.写作的同学可以参考往届优秀论文,尤其以广西赛区的优秀论文为主, 学习他人的写作方式,这样可以让自己的论文风格,论文框架,论文排 版均接近国奖论文的素养。 12 7.编程的同学如果想使用他人的程序时,不妨学会其思想,自己设计新算 法并且实现功能。而且对于复杂的程序,最好在论文中附上一个程序框 图,方便评委老师理解。 8.建模的同学应该多多涉猎不同的文献,中文的,外文的最好都阅读以下, 然后自己在草稿纸上画一些思维导图,对这些文献之间的关系进行一定 的梳理,然后结合本问分析,看看什么地方需要修改,什么地方需要 精简,什么地方需要补充等等。而且,建模的同学一定要尽量把模型程 序化,用一些编程同学听得懂的话进行沟通。比如我把今年 A 第一问 从物理受力问变成了迭代求解问,这样编程的同学则会舒服很多 数学建模参考的书目以及网站 书籍 1.《 数学模型》姜启源等著 阅读人群:建模 这本书虽然被奉为数学建模最经典的入门书,但是我本人并不是十分喜欢。 第一,这本书的模型比较杂,而且可操作性较差。意思就是说,告诉你了理论, 你很难再实践中自己去操作。而且很多模型较为基础,对于短期内学习达到国赛 的强度难度较大,因此适合作为一本辅助参考性读物进行学习。如果,你要一个 字一个字读下去,会发现到头来还是什么都不太会(除了暑期培训的时候阅读过, 之后再也没有使用过了) 。 2.《数学建模算法与应用》司守奎等 阅读人群:建模、编程 是我最为推崇的书:《数学建模算法与应用》。这本书是司守奎老师写的新书, 司老师是数模一线教练,经常培养出国一国二。因此他的书与国赛风味十分贴近, 很多问都是取自国赛原,而且附上了所有程序的源代码,那本书中的光盘则 收入了所有程序的 m 文件(MATLAB 的源文件),实属业界良心(都省去了你抄源 代码的时间)。所以,这本书是可以用来临时抱佛脚的,如果你的目标就是在省 赛区取得一定的名次,那么这本书真的足够你用了(基本上每次比赛,我首先查 阅的必定是这本书)。 3.《数学建模》Frank R. Giordano 等著 叶其孝等译 阅读人群:建模 这本书是美赛负责人写的书,实际上我阅读这本书也觉得没有多大的意思, 和姜启源那本数学模型类似,不适合一页页阅读,更加适合提高建模的修养,但 是不适合用来准备数学建模国赛或者美赛。所以,如果你想要参加美赛,那么建 议你还是稍微看看,毕竟是美赛指定的参考书。 4.《 MATLAB 在数学建模中的应用》卓金武等著 阅读人群:编程 这本书和司守奎老师的那本书风格有点接近,例基本选于国赛赛,但是 这本书对于模型的介绍较少,主要都是给出 MATLAB 代码,每一章最后都有延伸 阅读,因此对于 MATLAB 感兴趣的同学可以将这本以及下一本作为入门参考书。 5. 《MATLAB R2014a 完全自学一本通》刘浩等著 阅读人群:编程 这本书是一本 MATLAB 工具书,并不完全针对数学建模,但是很多 MATLAB 使 用的小技巧都来自于这本书,比如今年我们画的锚链形状图,均来自这本书的灵 感。 6.《 20XX 年全国大学生数学建模竞赛广西赛区经验交流及优秀论文选》吕跃进 著 阅读人群:写作(最为重要)建模(参考) 编程(参考) 13 作为广西赛区优秀论文集,写作的同学尤其需要注意,广西赛区的优秀论文 都是长什么样子的?我们不需要先想着和其他赛区的人比,先学习自己赛区的人 的论文,可以让自己的起步稍微简单一些。XX 的意思就是某某年,一般从 20102015 年的左右参考下即可。 7.《全国各赛区优秀论文》 阅读人群:写作 建模 编程 当你学有余力时,不妨多看看其他省份优秀论文,找找差距,找到一个提高 建模水平的方向。 8.《正确写作美国大学生数学建模竞赛论文》&《美国大学生数学建模竞赛解 析与研究》 王杰等著 阅读人群:建模 写作 这两本书作为美赛官方读物,非常适合美赛冲刺前 2 个月阅读,由于这套书 并没有给出源程序,因此只有写作以及建模的同学进行参考。尤其是《正确写作 美国大学生数学建模竞赛论文》这本书,非常适合写作的同学学习,其中有一些 写作习惯甚至可以用于国赛的写作中去。这本书还有一个特色就是讲解了部分有 关使用 LaTeX 的知识。 9.《 SPSS 统计分析基础教程》&《SPSS 统计分析高级教程》张文彤等著 阅读人 群:编程 这两本书手把手地教你如何使用 SPSS 分析数据,加上 SPSS 本身“傻瓜式” 设计,因此配合这两本书进行一定的学习足够了。 10.《 Origin9.1 科技绘图与数据分析》叶卫平著 阅读人群:编程 建模 如果在短时间之内学会一个软件并且可以进行比赛,那么 Origin 绝对是一 个利器。基本上涉及绘图的问,大多数 MATLAB 可以完成的,它也可以完成。 几乎与 SPSS 一样的“傻瓜式”设计,非常适合初学者学习掌握。所以我认为建 模的同学多学一个绘图的软件也没有什么不好的(我们美赛的灵感出自这本书) 。 上面 10 本书希望绝大多数同学都可以涉猎一二,即使是枯燥的数学模型那 本书,最好也稍微看看,好歹有一些印象。而司老师那本书,我则希望人手一本。 下面的书籍由于时间成本还有与建模的关系不是那么紧密,所以参考即可。 11.《 SAS 统计分析实用宝典》 姚鑫峰等著 阅读人群:编程 作为最为专业统计软件 SAS,对于处理大数据的时候,是当仁不让的王 者,连 MATLAB 都要为其让路。如果你十分热衷于大数据的问,还有想参加“汇 丰”SAS 数据分析大赛的同学,或者参加阿里巴巴天池大数据竞赛的同学不妨 以这本书作为基础,学习 SAS 吧。 12.《 R 语言实战》Robert I. Kabacoff 著 高涛译 阅读人群:编程 作为 SAS 的姊妹,R 语言作为免费开源的数据分析软件同样大受欢迎,如果 你不喜欢昂贵的 SAS,那么投入 R 的怀抱也不错。 13.《物理学原理在工程技术中的应用》马文蔚等著 阅读人群:建模(尤其喜欢 A 的同学) 本来是不太想把物理类的专业书引入到数学建模竞赛中来,无奈自从 2014 年开始,每年国赛 A 的问都是物理问(可以认为是纯物理问),2014 年, 卫星变轨问(万有引力与航天)。2015 年,利用杆子的太阳影子定位(球面天 文学与地球物理学)2016 年,系泊系统的设计(力平衡与力矩平衡) 。所以天知 道 2017 年 A 会出什么样奇怪的问。这本书有助于大家对于物理在工程上的 应用有一定的认识,以作为知识储备。 14. 《MATLAB 神经网络 43 个案例分析》 王小川等著 阅读人群:编程 最近几年比赛中,智能算法越来越多地出现在本科生的比赛中了,如果你想 14 在国赛或者美赛中使用一些新鲜的算法,那么还是学习这本书中的一些案例吧。 这本书的源程序全部都给你了,只需要对着程序一步步推敲,一定可以学到一些 知识(我们“好贷”模型的灵感出自这本书)。 15. 《机器学习》周志华著 阅读人群:建模 由于这个领域现在属于热门领域,因此数模的很大一部分未来的研究方向皆 在于此。我本人对于这个领域也处于学习当中。当然,你想要看懂这本书,还是 先学好概率论与数理统计,线性代数,和部分微积分的知识吧。 网站 1.数学中国论坛:www.madio.net 作为中国最大的数模论坛网站,你可以找到很多奇奇怪怪的数模资料,当然 我还是劝你先学好上面 10 本书之内的东西,因为其实一个人的精力并没有那 么多。 (实际上,我参加数学中国的比赛,很少用体力去上面下载什么资料) 。 2.LaTeX 中国区论坛:www.ctex.org 你想知道的 LaTeX 资料,上面都有。 3.中国知网:www.cnki.net 维普:www.cpvip.com 万方:www.wanfang.com.cn 这三家为中国主流的文献数据库,基本上大多数中文期刊可以找到。 4.由于 Google 学术在中国区无法使用,因此只能使用 Bing 学术搜索外文文献 了:http://cn.bing.com/academic 5.赛氪网:www.saikr.com 作为 APMCM 和 Mathorcup 的主办方,赛氪还是其他很多比赛的报名渠道。不 经意间往往可以发现更多适合自己的竞赛。 6.COMAP:www.comap.com 美赛官方网站,由于美赛是一个只发放电子证书的比赛,因此了解他家官网 还是很有必要的。 7.阿里巴巴天池大数据竞赛:http://tianchi.shuju.aliyun.com 作为数模后续竞赛,对于大三或者大四等高年级的同学,欢迎转战更加具有 实用性质的数据分析竞赛。 8.MATLAB 中文论坛:http://www.ilovematlab.cn 有啥问就丢上去问就行了。 9.人大经济论坛:http://bbs.pinggu.org/ SAS,SPSS 等统计类的问,在这个论坛上找出相关的目录,进去发问就好了。 这个论坛是我国经管类最好的论坛。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

布凯彻-劳斯基

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值