24.12.26

名称:混凝土承重等级预测
一、任务背景
在土木工程中,混凝土是构筑建筑物最基本的材料。混凝土可承受的强度与其寿命、制造所使用的材料、测试时的温度等因素息息相关。混凝土的制造过程十分复杂,涉及水泥、熔炉产出的煤渣和灰烬、水、强度塑化剂、粗聚合剂、细聚合剂等多种化工原料。我们用一个压力达2000kN的液压测试机采集混凝土承重能力的指标,对混凝土方块或圆柱体进行压力测试。这个测试是破坏性的,并且可能会持续很长时间,因此如果我们能够脱离实际测试,直接使用制作原料对其承重能力进行预测,则将具备非常高的商业价值。图1 显示了一次承重能力测试。在本次研究中,我们希望能够建立出一个以混凝土制作配方为输入数据,能够预测其承重能力的模型。

图 1 承重能力测试
二、任务数据
为了通过混凝土配方预测其成品的承重强度,我们向数据集中采集了大量的样本数据。每个样本都包含8个特征值作为输入数据,其输出值就是指标承重强度。
本数据集包含了如下指标(按照数据集中特征值的顺序进行排列),其中输入指标包括以下内容。
(1)Cement 单位:kg /m3。
(2)Blast Furnace Slag 单位:kg /m3。
(3)Fly Ash 单位:kg /m3。
(4)Water 单位:kg /m3。
(5)Superplasticizer 单位:kg /m3。
(6)Coarse Aggregate 单位:kg /m3。
(7)Fine Aggregate 单位:kg /m3。
(8)Age 单位:kg /m3。
输出指标包括Concrete compressive strength 单位:MPa。
每个样本有8个混凝土原料配方作为输入特征值(前8 列)及1个目标值(最后一列,承重强度)
三、任描述务
1.根据样本的承重强度对样本标签进行离散化处理,将连续承重强度转换为离散承重等级,然后实现分类任务。输出指标离散化需要考虑两方面因素:一是调研文献,分析各等级混凝土承重强度;二是不同的承重等级数目情况下,模型的预测效果,对比选出预测结果最好的离散化方式。(20分)
2.导入数据集,返回当前数据的统计信息并进行阐述说明,以前6行为例进行结果展示。(10分)
3. 对混凝土数据集进行可视化处理,生成各特征之间关系的矩阵图。(10分)
4. 数据预处理,并将原始数据集划分为训练集和测试集,选用合适的机器学习算法对混凝土数据集进行拟合。(20分)
5. 采用交叉验证,估计超参数,分析超参数对预测结果的影响。(20分)
6. 预测结果分析及可视化,绘制混淆矩阵,分析不同承重等级混凝土的查全率和查准率。(20分)
四、结果及分析
简明结果
精度 0.8786 查准率 0.88 查全率 0.91 F1值 0.8757
详细方案和结果分析
解决方案

设计思路

  1. 数据加载与预处理
    输入:原始数据文件(Data.xlsx)。
    输出:特征值(X)和目标值(y)。
    处理流程:
    读取数据并重命名列名。
    提取特征值和目标值。
    数据标准化(使用 StandardScaler)。
  2. 离散化处理
    目标:通过不同的离散化策略和等级数,将连续的目标值转化为离散的类别标签。
    支持的策略:
    uniform:将目标值等间距划分。
    quantile:根据目标值的分布分位数进行划分。
    Kmeans:使用 K-Means 算法进行聚类划分。
    实现:
    使用 KBinsDiscretizer,分别尝试不同的离散化策略和等级数。
  3. 数据可视化
    目标:分析数据特征之间的关系。
    实现:
    使用 seaborn.pairplot 绘制特征关系矩阵图,观察不同特征的相关性。
  4. 分类模型训练
    目标:基于不同的离散化方式和等级数,训练分类模型并评估性能。
    模型选择:
    随机森林分类器(RandomForestClassifier)。
    实现:
    划分训练集和测试集(80%:20%)。
    使用 5 折交叉验证评估模型性能。
    调参优化(GridSearchCV)以找到最佳超参数。
  5. 结果分析与可视化
    目标:分析模型性能,并比较不同离散化策略和等级数的实验结果。
    输出:
    分类报告(查准率、查全率、F1 分数)。
    混淆矩阵图(ConfusionMatrixDisplay)。
  6. 实验结果比较
    目标:比较不同离散化策略和等级数的实验结果,选出最佳配置。
    实现:
    存储每次实验的结果,包括策略、等级数、交叉验证得分、最佳模型参数及性能指标。
    找出交叉验证得分最高的配置作为最终最佳结果。

机器学习函数注释
KBinsDiscretizer: 将连续目标变量转化为离散类别标签,支持多种离散化策略。
StandardScaler: 数据标准化,保证特征值具有均值为 0、方差为 1 的分布。
RandomForestClassifier: 基于决策树的集成学习模型,适用于多分类任务。
cross_val_score: 执行交叉验证,评估模型在训练集上的性能。
GridSearchCV: 超参数网格搜索,找到分类器的最佳参数配置。
classification_report: 生成分类任务的评估指标(查准率、查全率、F1 分数)。
ConfusionMatrixDisplay: 绘制混淆矩阵,直观显示分类模型的性能。
结果展示 【包括每个任务点结果的展示】

  1. 根据样本的承重强度对样本标签进行离散化处理,将连续承重强度转换为离散承重等级。至少给出3种输出指标离散化的方案,并阐述理由。在后续任务中分别进行模型训练,并在结果展示4、5和结果分析中,从精度,查准率,查全率,FI值等多个角度进行分析,最终选出预测结果最好的离散化方式。
    方案1:基于等宽分箱(Uniform Binning)
    描述:将承重强度划分为若干个等宽区间,每个区间的范围相同。

优点:简单直观:直接按照数值范围平均分配,容易理解和实现。
不依赖数据分布:适用于对数据分布缺乏了解的情况。
便于对比:每个区间的跨度相等,便于进行区间的对比分析。

缺点:如果数据分布不均匀(例如大量数据集中在某一范围),则会导致某些区间内样本过多或过少,影响分类效果。

方案2:基于等频分箱(Quantile Binning)
描述:将承重强度划分为若干个包含相同样本数量的区间,每个区间的样本数相等。

优点:平衡样本分布:每个等级中样本数量接近,避免某些等级过少或过多的问题。
适合模型学习:分类器在处理样本均匀分布的任务时,可能表现更好。

缺点:可能会导致划分的区间不均匀(例如,某些区间跨度很大,而其他区间跨度很小),不利于物理意义的解释。

方案3:基于聚类分箱(K-means Binning)
描述:使用 K-means 聚类算法,将承重强度按照样本特征的相似性划分为若干组。每组的中心值由数据驱动决定,区间范围可以自适应数据分布。

优点:适应数据分布:根据数据本身特征自动划分区间,更符合数据的实际分布。
提高分类器性能:由于区间划分贴合数据特征,模型可能更容易学到有效的区分特征。

缺点:算法复杂度较高,尤其是当样本量较大或需要进行多次实验时。
不易解释:区间划分不固定,可能缺乏直观的物理意义。

  1. 返回前六条数据结果(结果截图,并标明图1. 数据展示),并对数据集中的概要信息进行描述。

图1.1 uniform数据展示

图1.2 quantile数据展示

图1.3 kmeans数据展示
3. 数据可视化结果(标明图2. 数据可视化)

图2. 数据可视化
三种策略三种等级生成的9个图好像都是一样的,我就不全贴在这了,我会压缩到源代码里

  1. 混淆矩阵展示(标明图3. 分类混淆矩阵)

图3.1 uniform分类混淆矩阵

图3.2 quantile分类混淆矩阵

图3.3 kmeans分类混淆矩阵
5. 精度,查准率,查全率,FI值的结果截图(标明图4. 分类结果)

图4. 分类结果
名称:混凝土承重等级预测
一、任务背景
在土木工程中,混凝土是构筑建筑物最基本的材料。混凝土可承受的强度与其寿命、制造所使用的材料、测试时的温度等因素息息相关。混凝土的制造过程十分复杂,涉及水泥、熔炉产出的煤渣和灰烬、水、强度塑化剂、粗聚合剂、细聚合剂等多种化工原料。我们用一个压力达2000kN的液压测试机采集混凝土承重能力的指标,对混凝土方块或圆柱体进行压力测试。这个测试是破坏性的,并且可能会持续很长时间,因此如果我们能够脱离实际测试,直接使用制作原料对其承重能力进行预测,则将具备非常高的商业价值。图1 显示了一次承重能力测试。在本次研究中,我们希望能够建立出一个以混凝土制作配方为输入数据,能够预测其承重能力的模型。

图 1 承重能力测试
二、任务数据
为了通过混凝土配方预测其成品的承重强度,我们向数据集中采集了大量的样本数据。每个样本都包含8个特征值作为输入数据,其输出值就是指标承重强度。
本数据集包含了如下指标(按照数据集中特征值的顺序进行排列),其中输入指标包括以下内容。
(1)Cement 单位:kg /m3。
(2)Blast Furnace Slag 单位:kg /m3。
(3)Fly Ash 单位:kg /m3。
(4)Water 单位:kg /m3。
(5)Superplasticizer 单位:kg /m3。
(6)Coarse Aggregate 单位:kg /m3。
(7)Fine Aggregate 单位:kg /m3。
(8)Age 单位:kg /m3。
输出指标包括Concrete compressive strength 单位:MPa。
每个样本有8个混凝土原料配方作为输入特征值(前8 列)及1个目标值(最后一列,承重强度)
三、任描述务
1.根据样本的承重强度对样本标签进行离散化处理,将连续承重强度转换为离散承重等级,然后实现分类任务。输出指标离散化需要考虑两方面因素:一是调研文献,分析各等级混凝土承重强度;二是不同的承重等级数目情况下,模型的预测效果,对比选出预测结果最好的离散化方式。(20分)
2.导入数据集,返回当前数据的统计信息并进行阐述说明,以前6行为例进行结果展示。(10分)
3. 对混凝土数据集进行可视化处理,生成各特征之间关系的矩阵图。(10分)
4. 数据预处理,并将原始数据集划分为训练集和测试集,选用合适的机器学习算法对混凝土数据集进行拟合。(20分)
5. 采用交叉验证,估计超参数,分析超参数对预测结果的影响。(20分)
6. 预测结果分析及可视化,绘制混淆矩阵,分析不同承重等级混凝土的查全率和查准率。(20分)
四、结果及分析
简明结果
精度 0.8786 查准率 0.88 查全率 0.91 F1值 0.8757
详细方案和结果分析
解决方案

设计思路

  1. 数据加载与预处理
    输入:原始数据文件(Data.xlsx)。
    输出:特征值(X)和目标值(y)。
    处理流程:
    读取数据并重命名列名。
    提取特征值和目标值。
    数据标准化(使用 StandardScaler)。
  2. 离散化处理
    目标:通过不同的离散化策略和等级数,将连续的目标值转化为离散的类别标签。
    支持的策略:
    uniform:将目标值等间距划分。
    quantile:根据目标值的分布分位数进行划分。
    Kmeans:使用 K-Means 算法进行聚类划分。
    实现:
    使用 KBinsDiscretizer,分别尝试不同的离散化策略和等级数。
  3. 数据可视化
    目标:分析数据特征之间的关系。
    实现:
    使用 seaborn.pairplot 绘制特征关系矩阵图,观察不同特征的相关性。
  4. 分类模型训练
    目标:基于不同的离散化方式和等级数,训练分类模型并评估性能。
    模型选择:
    随机森林分类器(RandomForestClassifier)。
    实现:
    划分训练集和测试集(80%:20%)。
    使用 5 折交叉验证评估模型性能。
    调参优化(GridSearchCV)以找到最佳超参数。
  5. 结果分析与可视化
    目标:分析模型性能,并比较不同离散化策略和等级数的实验结果。
    输出:
    分类报告(查准率、查全率、F1 分数)。
    混淆矩阵图(ConfusionMatrixDisplay)。
  6. 实验结果比较
    目标:比较不同离散化策略和等级数的实验结果,选出最佳配置。
    实现:
    存储每次实验的结果,包括策略、等级数、交叉验证得分、最佳模型参数及性能指标。
    找出交叉验证得分最高的配置作为最终最佳结果。

机器学习函数注释
KBinsDiscretizer: 将连续目标变量转化为离散类别标签,支持多种离散化策略。
StandardScaler: 数据标准化,保证特征值具有均值为 0、方差为 1 的分布。
RandomForestClassifier: 基于决策树的集成学习模型,适用于多分类任务。
cross_val_score: 执行交叉验证,评估模型在训练集上的性能。
GridSearchCV: 超参数网格搜索,找到分类器的最佳参数配置。
classification_report: 生成分类任务的评估指标(查准率、查全率、F1 分数)。
ConfusionMatrixDisplay: 绘制混淆矩阵,直观显示分类模型的性能。
结果展示 【包括每个任务点结果的展示】

  1. 根据样本的承重强度对样本标签进行离散化处理,将连续承重强度转换为离散承重等级。至少给出3种输出指标离散化的方案,并阐述理由。在后续任务中分别进行模型训练,并在结果展示4、5和结果分析中,从精度,查准率,查全率,FI值等多个角度进行分析,最终选出预测结果最好的离散化方式。
    方案1:基于等宽分箱(Uniform Binning)
    描述:将承重强度划分为若干个等宽区间,每个区间的范围相同。

优点:简单直观:直接按照数值范围平均分配,容易理解和实现。
不依赖数据分布:适用于对数据分布缺乏了解的情况。
便于对比:每个区间的跨度相等,便于进行区间的对比分析。

缺点:如果数据分布不均匀(例如大量数据集中在某一范围),则会导致某些区间内样本过多或过少,影响分类效果。

方案2:基于等频分箱(Quantile Binning)
描述:将承重强度划分为若干个包含相同样本数量的区间,每个区间的样本数相等。

优点:平衡样本分布:每个等级中样本数量接近,避免某些等级过少或过多的问题。
适合模型学习:分类器在处理样本均匀分布的任务时,可能表现更好。

缺点:可能会导致划分的区间不均匀(例如,某些区间跨度很大,而其他区间跨度很小),不利于物理意义的解释。

方案3:基于聚类分箱(K-means Binning)
描述:使用 K-means 聚类算法,将承重强度按照样本特征的相似性划分为若干组。每组的中心值由数据驱动决定,区间范围可以自适应数据分布。

优点:适应数据分布:根据数据本身特征自动划分区间,更符合数据的实际分布。
提高分类器性能:由于区间划分贴合数据特征,模型可能更容易学到有效的区分特征。

缺点:算法复杂度较高,尤其是当样本量较大或需要进行多次实验时。
不易解释:区间划分不固定,可能缺乏直观的物理意义。

  1. 返回前六条数据结果(结果截图,并标明图1. 数据展示),并对数据集中的概要信息进行描述。

图1.1 uniform数据展示

图1.2 quantile数据展示

图1.3 kmeans数据展示
3. 数据可视化结果(标明图2. 数据可视化)

图2. 数据可视化
三种策略三种等级生成的9个图好像都是一样的,我就不全贴在这了,我会压缩到源代码里

  1. 混淆矩阵展示(标明图3. 分类混淆矩阵)

图3.1 uniform分类混淆矩阵

图3.2 quantile分类混淆矩阵

图3.3 kmeans分类混淆矩阵
5. 精度,查准率,查全率,FI值的结果截图(标明图4. 分类结果)

图4. 分类结果
结果分析 【包括预测结果分析(包括对超参影响、精度、查准率、查全率、F1值的分析)、可能存在的问题、可提升的改进思路等】
预测结果分析
1.1 超参数的影响
树的数量(n_estimators):在随机森林中,增加树的数量通常会提高模型的稳定性和准确性,但过多的树会增加训练时间。在实验中,50-150的范围足够覆盖性能差异。
树的深度(max_depth):较小的深度限制模型的复杂性,适合简单的模式识别,但可能导致欠拟合;较大的深度(或无深度限制)能捕获复杂的模式,但可能导致过拟合。
实验中,max_depth=20 通常能平衡复杂度和性能。
最小分割样本数(min_samples_split):
较小的值会让模型更敏感,但可能捕获噪声;较大的值则提升模型的泛化能力。min_samples_split=5表现较为稳定。

1.2 精度分析

精度(Accuracy)定义为正确分类的比例。在实验中,精度受离散化策略和等级数影响较大。
策略对比:
Uniform:当目标值分布较均匀时,表现较好。
Quantile:适合目标值呈现非均匀分布的情况,但可能导致部分类别样本过少。
KMeans:利用聚类生成分箱,适合数据复杂分布,但计算量较大。
等级数对比:较少的等级数(如3级)容易提升整体精度,但会降低模型区分能力。
较多的等级数(如6级)能反映更多细节,但预测难度增大,精度有所下降。
1.3 查准率与查全率

查准率(Precision):表示预测为某一类样本中真正属于该类的比例。查准率较高说明模型对该类的预测更可信。
实验中,高等级混凝土(如等级5、6)的查准率略低,说明模型在区分较高强度样本时有一定混淆。
查全率(Recall):表示某一类样本中被正确识别的比例。查全率较高说明模型能捕获大部分该类样本。
低等级混凝土(如等级1、2)查全率较低,可能与样本不平衡有关。

1.4 F1 值分析

F1 值:是 Precision 和 Recall 的调和平均,综合衡量模型性能。实验结果显示,F1 值随等级数增加略有下降,表明更多类别增加了预测难度。

可能存在的问题
2.1 数据相关问题
样本不平衡:某些承重等级(如低或高强度)样本数较少,导致模型对这些类别的学习不足。
特征相关性:部分原材料特征之间可能存在多重共线性,降低了模型的泛化能力。
离散化策略适配性:目标值分布可能不完全适配某些离散化方法,如 Uniform 方法在非均匀分布下表现较差。

2.2 模型相关问题

过拟合:随机森林的高深度配置可能导致模型在训练集上表现很好,但在测试集上性能下降。
缺乏时间维度建模:“Age” 是时间相关特征,未结合时间序列建模可能丢失重要信息。

2.3 评估指标局限
仅关注分类准确性:实验主要关注分类任务,但对于连续值预测问题,可能需要结合回归性能指标(如均方误差)。
可提升的改进思路
3.1 数据处理改进
样本平衡:使用 SMOTE(合成少数类样本)等方法扩充样本量较少的类别。
特征选择;引入特征重要性分析(如 SHAP 值),剔除冗余或相关性过高的特征。
特征工程:对 “Age” 特征尝试进行对数变换或归一化,平滑其影响。
3.2 模型优化

多模型集成:引入梯度提升树(如 XGBoost、LightGBM)或堆叠模型,与随机森林进行性能对比。
非监督学习:在离散化之前,利用无监督学习方法(如 PCA、Autoencoder)提取潜在模式,减少特征维度。
时间序列模型:针对 "Age" 特征,尝试 RNN 或 LSTM 等时间序列模型,分析年龄对承重能力的动态影响。

3.3 评估改进

多维指标:除分类任务中的准确率、查准率、查全率和 F1 值,还可引入 AUC-ROC、平均绝对误差(MAE)等指标。
异常分析:针对误分类样本,分析其特征与标签是否存在噪声或特殊模式。

3.4 离散化方法改进

根据实验结果选择最佳离散化策略(Uniform、Quantile 或 KMeans),结合问题实际特点:
目标分布较均匀:优先使用 Uniform。
样本分布偏差大:尝试 Quantile 或 KMeans。
引入混合分箱方法(如 Quantile+KMeans),适配更复杂的分布。

posted @ 2024-12-26 20:15  起名字真难_qmz  阅读(23)  评论(0)    收藏  举报