2022全国大学生数学建模国赛C题代码完整教程

C 题 古代玻璃制品的成分分析与鉴别

 问题 1:分析这些玻璃文物纹饰、类型、颜色、表面风化的关系
这题很简单,分析关系有相关性分析和差异性分析,需要注意一点,这四个指标都是定类变量,并非连续变量,因此:
对于相关性分析,不能直接使用皮尔逊相关分析,可以采用斯皮尔曼相关系数分析(Spearman相关系数)
对于差异性分析,不能采用方差分析或T检验,应当采用卡方检验

问题 2:基于这些玻璃文物的类型,分析文物样品表面有无风化化学成分含量的统计规律
对于类型只有两种,一种是高钾,一种是铅钡。在做完缺失值处理之后,我们可以对比文物样本表面有无风化的化学成分的一些统计学规律,这块主要其实也是差异性分析和相关性分析,不过在做这两个分析之前,我们可以做一些数据合或者分类汇总,观察推断出来两种玻璃文物类型的有无风化以及成分的差异或者相关情况,进而推断出来统计规律,形成公式。

问题 3:根据风化点的测试数据预测风化前的化学成分含量
根据问题2得到的相关关系形成公式,预测已经风化的文物在风化前的化学成分含量

问题 2 依据附件数据分析高钾玻璃、铅钡玻璃的分类规律;对于每个类别选择合适的化学成分对其进行亚类划分,给出具体的划分方法及划分结果,并对分类结果的合理性和敏感性 
进行分析。 

分解问题:
问题(1):分析高钾玻璃、铅钡玻璃的分类规律;
构建一个可解释的机器学习分类模型,例如决策树、逻辑回归,以类型(高钾玻璃、铅钡玻璃)为Y,尽可能构建足够多的特征X,形成可解释的分类规律,得分点关键在于模型寻优做的牛不牛以及可视化效果。
问题(2):对于每个类别选择合适的化学成分对其进行亚类划分,给出具体的划分方法及划分结果;
分别对类别进行聚类模型,得分点关键在于亚类划分的可解释性以及划分效果。

问题(3):对分类结果的合理性和敏感性进行分析。
对分类结果的合理性应该是放在问题(2)里面的,直接用一些量化划分聚类效果的评价指标进行评估就ok了,这里重点在于对前面使用的模型参数进行调整,分析模型的敏感性

我们也为大家更新了视频:

X=data_merge[['二氧化硅(SiO2)', '氧化钠(Na2O)', '氧化钾(K2O)', '氧化钙(CaO)',
       '氧化镁(MgO)', '氧化铝(Al2O3)', '氧化铁(Fe2O3)', '氧化铜(CuO)', '氧化铅(PbO)',
       '氧化钡(BaO)', '五氧化二磷(P2O5)', '氧化锶(SrO)', '氧化锡(SnO2)', '二氧化硫(SO2)', '无风化',
       '风化']]

# 拆分训练集和测试集
x_train, x_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=12)
    
#逻辑 回归
model = LogisticRegression()

model.fit(x_train, y_train)
print('逻辑 回归')
print(classification_report(model.predict(x_test),y_test))


model = RandomForestClassifier()
model.fit(x_train, y_train)
print('1')
print(classification_report(model.predict(x_test),y_test))

model = lgb.LGBMClassifier()
model.fit(x_train, y_train)
print('2')
print(classification_report(model.predict(x_test),y_test))

model = xgb.XGBClassifier()
model.fit(x_train, y_train)
print('3')
print(classification_report(model.predict(x_test),y_test))

print(https://mianbaoduo.com/o/bread/Y5acmZ9u)

2022全国大学生数学建模国赛C题代码完整教程_第1张图片

 问题 3 对附件表单 3 中未知类别玻璃文物的化学成分进行分析,鉴别其所属类型,并对分类结果的敏感性进行分析。 
问题(1):对附件表单 3 中未知类别玻璃文物的化学成分进行分析,鉴别其所属类型;
基于问题2,预测表单3未知类别玻璃文物的类型,至于化学成分分析不分析不是重点
问题(2):对分类结果的敏感性进行分析。 
如果我们采用的是机器学习模型,那么这一步就无需进行分析,机器学习只需要在训练时分析敏感性,预测时模型已经固定,无需进行敏感性分析,但是如果我们是通过推断的方式来进行分析的话,那么这里需要复现一下敏感性分析

问题 4 针对不同类别的玻璃文物样品,分析其化学成分之间的关联关系,并比较不同类别之间的化学成分关联关系的差异性。 
问题(1):针对不同类别的玻璃文物样品,分析其化学成分之间的关联关系
与问题1的问题(2)类似,只是减少了一个条件——有无风化
问题(2):比较不同类别之间的化学成分关联关系的差异性。
与问题1的问题(2)类似

2022全国大学生数学建模国赛C题代码完整教程_第2张图片

2022全国大学生数学建模国赛C题代码完整教程_第3张图片

 问题 1 分析了这些玻璃文物的表面风化与其玻璃类型,图案和颜色之间的关系;基于玻璃的类型,分析了文化文物表面上是否存在风化化学成分含量的统计规则,并根据风化点的测试数据预测风化前的化学成分含量。首先,我们需要预处理提供的数据,例如离群值和多个指标的尺寸化。第一个问题中的玻璃类型,纹理和颜色是文本数据,可以通过分配量化。可以通过绘制视觉图表来帮助研究表面风化和三个指标的变更规则。为了分析14个化学成分的统计定律,首先,我们需要使用最基本的统计数据,例如趋势,中位数,方差等。然后,我们可以使用配对的样品t检验来处理连续数据,CHI Square独立性测试以处理离散数据,也可以使用灰色相关方法。为了预测在风化之前的化学成分含量,时间序列Arima和支持向量机用于预测,并将多个模型组合在一起以提高预测准确性,可以进行比较。

问题 2这个题很明显是聚类分析问题,考虑常用的K-MEANS聚类分析问题,当然这个题大家都会考虑到这个算法,因此,需要改进创新。对算法进行优化,比如改进的K-MEANS聚类分析,K-means++;二分k-means;k-medoids(k-中心聚类算法);Kernel k-means;ISODATA;Mini Batch K-Means等等,不同算法之间的好坏需要用指标去评估,如:误差平方和(SSE(The sum of squares due to error);"肘"方法(Elbow method)-K值确定;轮廓系数法(Silhouette Coefficient);CH系数(Calinski-Harabasz Index)等。研究多指标之间的关系,首先机器学习方法采用XGBoost为每个指标分配重要性分数构建因子分析-聚类模型,随后进行探索性因子分析对多变量进行降维和可视化,更直观地揭示各指标的差异性。在分类完成之后进行合理性与敏感性的分析,放上计算结果。

问题 3 对附件表单 3 中未知类别玻璃文物的化学成分进行分析,鉴别其所属类型,并对分类结果的敏感性进行分析。对于未知的文物,根据其化学成分,判断其所属类型,首先可以采用建立判别判别函数的方法,将14种化学成分进行降维,高钾和铅钡两种类型为目标分类结果。其次可以采用神经网络中的随机森林、支持向量机等进行分类,比较各种方法的优缺点。

问题 4 针对不同类别的玻璃文物样品,分析其化学成分之间的关联关系,并比较不同类别之间的化学成分关联关系的差异性。共有两种类型玻璃,十四种化学成分,可以采用多元回归分析,主成分分析等等,最后做一个比较即可。

后面将持续为大家更新!

你可能感兴趣的:(机器学习,人工智能,jupter,matplotlib,python)