├── GPR_results.xlsx ├── MLR_results.xlsx ├── RF_results.xlsx ├── Lasso_results.xlsx ├── Ridge_results.xlsx ├── 多尺度样本_revision.xlsx ├── micro_descriptors.xlsx ├── 数据 ├── 最终预测结果数据 │ ├── 精度对比.xlsx │ ├── RF_results.xlsx │ ├── GPR_results.xlsx │ ├── MLR_results.xlsx │ ├── SVR_results.xlsx │ ├── Lasso_results.xlsx │ ├── Ridge_results.xlsx │ ├── DCSA-predicted-results.xlsx │ ├── DCSA10折交叉验证蠕变断裂寿命真实值和预测值.xlsx │ ├── Comparative_models_results.xlsx │ └── DCSA-中间结果 │ │ ├── cluster_4MLR_results.xlsx │ │ ├── cluster_4RF_results.xlsx │ │ ├── cluster_4SVR_results.xlsx │ │ ├── cluster_5GPR_results.xlsx │ │ ├── cluster_5MLR_results.xlsx │ │ ├── cluster_5RF_results.xlsx │ │ ├── cluster_5SVR_results.xlsx │ │ ├── cluster_6GPR_results.xlsx │ │ ├── cluster_6MLR_results.xlsx │ │ ├── cluster_6RF_results.xlsx │ │ ├── cluster_6SVR_results.xlsx │ │ ├── cluster_7GPR_results.xlsx │ │ ├── cluster_7MLR_results.xlsx │ │ ├── cluster_7RF_results.xlsx │ │ ├── cluster_7SVR_results.xlsx │ │ ├── cluster_8GPR_results.xlsx │ │ ├── cluster_8MLR_results.xlsx │ │ ├── cluster_8RF_results.xlsx │ │ ├── cluster_8SVR_results.xlsx │ │ ├── DCSA-predicted-results.xlsx │ │ ├── cluster_4Lasso_results.xlsx │ │ ├── cluster_4Ridge_results.xlsx │ │ ├── cluster_5Lasso_results.xlsx │ │ ├── cluster_5Ridge_results.xlsx │ │ ├── cluster_6Lasso_results.xlsx │ │ ├── cluster_6Ridge_results.xlsx │ │ ├── cluster_7Lasso_results.xlsx │ │ ├── cluster_7Ridge_results.xlsx │ │ ├── cluster_8Lasso_results.xlsx │ │ ├── cluster_8Ridge_results.xlsx │ │ ├── cluster_4_model_results.xlsx │ │ ├── cluster_5_model_results.xlsx │ │ ├── cluster_6_model_results.xlsx │ │ ├── cluster_7_model_results.xlsx │ │ ├── cluster_8_model_results.xlsx │ │ ├── ~$cluster_1_model_results.xlsx │ │ ├── ~$cluster_2_model_results.xlsx │ │ ├── ~$cluster_3_model_results.xlsx │ │ ├── ~$cluster_4_model_results.xlsx │ │ ├── ~$cluster_5_model_results.xlsx │ │ ├── ~$cluster_6_model_results.xlsx │ │ ├── ~$cluster_7_model_results.xlsx │ │ └── ~$cluster_8_model_results.xlsx ├── 266条蠕变数据+8条测试数据 │ ├── 多尺度样本_creep_revision.xlsx │ └── 8-new validated instance_revison.xlsx └── 中间结果数据 │ ├── 0_特征重要度分析 │ └── feature_importance.xlsx │ ├── 2_最优预测模型的自适应选择 │ ├── cluster_1RF_results.xlsx │ ├── cluster_2RF_results.xlsx │ ├── cluster_3RF_results.xlsx │ ├── cluster_4RF_results.xlsx │ ├── cluster_5RF_results.xlsx │ ├── cluster_6RF_results.xlsx │ ├── cluster_7RF_results.xlsx │ ├── cluster_8RF_results.xlsx │ ├── cluster_1GPR_results.xlsx │ ├── cluster_1Lasso_results.xlsx │ ├── cluster_1MLR_results.xlsx │ ├── cluster_1Ridge_results.xlsx │ ├── cluster_1SVR_results.xlsx │ ├── cluster_2GPR_results.xlsx │ ├── cluster_2Lasso_results.xlsx │ ├── cluster_2MLR_results.xlsx │ ├── cluster_2Ridge_results.xlsx │ ├── cluster_2SVR_results.xlsx │ ├── cluster_3GPR_results.xlsx │ ├── cluster_3Lasso_results.xlsx │ ├── cluster_3MLR_results.xlsx │ ├── cluster_3Ridge_results.xlsx │ ├── cluster_3SVR_results.xlsx │ ├── cluster_4GPR_results.xlsx │ ├── cluster_4Lasso_results.xlsx │ ├── cluster_4MLR_results.xlsx │ ├── cluster_4Ridge_results.xlsx │ ├── cluster_4SVR_results.xlsx │ ├── cluster_5GPR_results.xlsx │ ├── cluster_5Lasso_results.xlsx │ ├── cluster_5MLR_results.xlsx │ ├── cluster_5Ridge_results.xlsx │ ├── cluster_5SVR_results.xlsx │ ├── cluster_6GPR_results.xlsx │ ├── cluster_6Lasso_results.xlsx │ ├── cluster_6MLR_results.xlsx │ ├── cluster_6Ridge_results.xlsx │ ├── cluster_6SVR_results.xlsx │ ├── cluster_7GPR_results.xlsx │ ├── cluster_7Lasso_results.xlsx │ ├── cluster_7MLR_results.xlsx │ ├── cluster_7Ridge_results.xlsx │ ├── cluster_7SVR_results.xlsx │ ├── cluster_8GPR_results.xlsx │ ├── cluster_8Lasso_results.xlsx │ ├── cluster_8MLR_results.xlsx │ ├── cluster_8Ridge_results.xlsx │ ├── cluster_8SVR_results.xlsx │ ├── cluster_1_model_results.xlsx │ ├── cluster_2_model_results.xlsx │ ├── cluster_3_model_results.xlsx │ ├── cluster_4_model_results.xlsx │ ├── cluster_5_model_results.xlsx │ ├── cluster_6_model_results.xlsx │ ├── cluster_7_model_results.xlsx │ └── cluster_8_model_results.xlsx │ └── 1_基于聚类的蠕变样本的自动划分数据 │ └── multi-factors_clusters_912.xls ├── feature_importance.xlsx ├── DCSA-predicted-results.xlsx ├── creeplife_superalloy.xlsx ├── 代码 ├── data_files │ ├── RF_results.xlsx │ ├── 多尺度样本_聚类标签.xlsx │ ├── GPR_results.xlsx │ ├── Lasso_results.xlsx │ ├── MLR_results.xlsx │ ├── Ridge_results.xlsx │ ├── SVR_results.xlsx │ ├── cluster3_analysis.xlsx │ ├── creeplife_superalloy.xlsx │ ├── 多尺度样本_creep_revision.xlsx │ ├── DCSA-predicted-results.xlsx │ ├── multi-factors_clusters_912.xls │ ├── ~$DCSA-predicted-results.xlsx │ └── Ru_contained_trainingsamples.xlsx ├── cluster_results │ └── cluster_data2.xls ├── Comparative_results │ ├── GPR_results.xlsx │ ├── MLR_results.xlsx │ ├── RF_results.xlsx │ ├── SVR_results.xlsx │ ├── Lasso_results.xlsx │ ├── Ridge_results.xlsx │ └── Comparative_models_results.xlsx ├── predicted_results │ ├── cluster_1GPR_results.xlsx │ ├── cluster_1MLR_results.xlsx │ ├── cluster_1RF_results.xlsx │ ├── cluster_1SVR_results.xlsx │ ├── cluster_2GPR_results.xlsx │ ├── cluster_2MLR_results.xlsx │ ├── cluster_2RF_results.xlsx │ ├── cluster_2SVR_results.xlsx │ ├── cluster_3GPR_results.xlsx │ ├── cluster_3MLR_results.xlsx │ ├── cluster_3RF_results.xlsx │ ├── cluster_3SVR_results.xlsx │ ├── cluster_4GPR_results.xlsx │ ├── cluster_4MLR_results.xlsx │ ├── cluster_4RF_results.xlsx │ ├── cluster_4SVR_results.xlsx │ ├── cluster_5GPR_results.xlsx │ ├── cluster_5MLR_results.xlsx │ ├── cluster_5RF_results.xlsx │ ├── cluster_5SVR_results.xlsx │ ├── cluster_6GPR_results.xlsx │ ├── cluster_6MLR_results.xlsx │ ├── cluster_6RF_results.xlsx │ ├── cluster_6SVR_results.xlsx │ ├── cluster_7GPR_results.xlsx │ ├── cluster_7MLR_results.xlsx │ ├── cluster_7RF_results.xlsx │ ├── cluster_7SVR_results.xlsx │ ├── cluster_8GPR_results.xlsx │ ├── cluster_8MLR_results.xlsx │ ├── cluster_8RF_results.xlsx │ ├── cluster_8SVR_results.xlsx │ ├── cluster_1Lasso_results.xlsx │ ├── cluster_1Ridge_results.xlsx │ ├── cluster_1_model_results.xlsx │ ├── cluster_2Lasso_results.xlsx │ ├── cluster_2Ridge_results.xlsx │ ├── cluster_2_model_results.xlsx │ ├── cluster_3Lasso_results.xlsx │ ├── cluster_3Ridge_results.xlsx │ ├── cluster_3_model_results.xlsx │ ├── cluster_4Lasso_results.xlsx │ ├── cluster_4Ridge_results.xlsx │ ├── cluster_4_model_results.xlsx │ ├── cluster_5Lasso_results.xlsx │ ├── cluster_5Ridge_results.xlsx │ ├── cluster_5_model_results.xlsx │ ├── cluster_6Lasso_results.xlsx │ ├── cluster_6Ridge_results.xlsx │ ├── cluster_6_model_results.xlsx │ ├── cluster_7Lasso_results.xlsx │ ├── cluster_7Ridge_results.xlsx │ ├── cluster_7_model_results.xlsx │ ├── cluster_8Lasso_results.xlsx │ ├── cluster_8Ridge_results.xlsx │ └── cluster_8_model_results.xlsx ├── test_data_file │ ├── 17_new_testing_samples(no Ru).xlsx │ └── 8-new validated instance_revision.xlsx ├── Readme.txt ├── ClusterResultVisualization.py ├── Cluster_superalloy.py ├── DCSA_ModelValidation.py ├── OptModelForCluster.py └── DCSA_analysis.py ├── multi-factors_clusters_912.xls ├── 8-new validated instance_revision.xlsx ├── ClusterResultVisualization.py ├── Cluster_superalloy.py ├── DCSA_ModelValidation.py ├── generateMetadata.py ├── divide_and_conquer.py └── DCSA_analysis.py /GPR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/GPR_results.xlsx -------------------------------------------------------------------------------- /MLR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/MLR_results.xlsx -------------------------------------------------------------------------------- /RF_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/RF_results.xlsx -------------------------------------------------------------------------------- /Lasso_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/Lasso_results.xlsx -------------------------------------------------------------------------------- /Ridge_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/Ridge_results.xlsx -------------------------------------------------------------------------------- /多尺度样本_revision.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/多尺度样本_revision.xlsx -------------------------------------------------------------------------------- /micro_descriptors.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/micro_descriptors.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/精度对比.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/精度对比.xlsx -------------------------------------------------------------------------------- /feature_importance.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/feature_importance.xlsx -------------------------------------------------------------------------------- /DCSA-predicted-results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/DCSA-predicted-results.xlsx -------------------------------------------------------------------------------- /creeplife_superalloy.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/creeplife_superalloy.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/RF_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/RF_results.xlsx -------------------------------------------------------------------------------- /代码/data_files/RF_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/data_files/RF_results.xlsx -------------------------------------------------------------------------------- /代码/data_files/多尺度样本_聚类标签.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/data_files/多尺度样本_聚类标签.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/GPR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/GPR_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/MLR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/MLR_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/SVR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/SVR_results.xlsx -------------------------------------------------------------------------------- /multi-factors_clusters_912.xls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/multi-factors_clusters_912.xls -------------------------------------------------------------------------------- /代码/data_files/GPR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/data_files/GPR_results.xlsx -------------------------------------------------------------------------------- /代码/data_files/Lasso_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/data_files/Lasso_results.xlsx -------------------------------------------------------------------------------- /代码/data_files/MLR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/data_files/MLR_results.xlsx -------------------------------------------------------------------------------- /代码/data_files/Ridge_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/data_files/Ridge_results.xlsx -------------------------------------------------------------------------------- /代码/data_files/SVR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/data_files/SVR_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/Lasso_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/Lasso_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/Ridge_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/Ridge_results.xlsx -------------------------------------------------------------------------------- /代码/cluster_results/cluster_data2.xls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/cluster_results/cluster_data2.xls -------------------------------------------------------------------------------- /代码/data_files/cluster3_analysis.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/data_files/cluster3_analysis.xlsx -------------------------------------------------------------------------------- /8-new validated instance_revision.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/8-new validated instance_revision.xlsx -------------------------------------------------------------------------------- /代码/Comparative_results/GPR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/Comparative_results/GPR_results.xlsx -------------------------------------------------------------------------------- /代码/Comparative_results/MLR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/Comparative_results/MLR_results.xlsx -------------------------------------------------------------------------------- /代码/Comparative_results/RF_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/Comparative_results/RF_results.xlsx -------------------------------------------------------------------------------- /代码/Comparative_results/SVR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/Comparative_results/SVR_results.xlsx -------------------------------------------------------------------------------- /代码/data_files/creeplife_superalloy.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/data_files/creeplife_superalloy.xlsx -------------------------------------------------------------------------------- /代码/data_files/多尺度样本_creep_revision.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/data_files/多尺度样本_creep_revision.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-predicted-results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-predicted-results.xlsx -------------------------------------------------------------------------------- /代码/Comparative_results/Lasso_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/Comparative_results/Lasso_results.xlsx -------------------------------------------------------------------------------- /代码/Comparative_results/Ridge_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/Comparative_results/Ridge_results.xlsx -------------------------------------------------------------------------------- /代码/data_files/DCSA-predicted-results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/data_files/DCSA-predicted-results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA10折交叉验证蠕变断裂寿命真实值和预测值.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA10折交叉验证蠕变断裂寿命真实值和预测值.xlsx -------------------------------------------------------------------------------- /代码/data_files/multi-factors_clusters_912.xls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/data_files/multi-factors_clusters_912.xls -------------------------------------------------------------------------------- /代码/data_files/~$DCSA-predicted-results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/data_files/~$DCSA-predicted-results.xlsx -------------------------------------------------------------------------------- /数据/266条蠕变数据+8条测试数据/多尺度样本_creep_revision.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/266条蠕变数据+8条测试数据/多尺度样本_creep_revision.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/0_特征重要度分析/feature_importance.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/0_特征重要度分析/feature_importance.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/Comparative_models_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/Comparative_models_results.xlsx -------------------------------------------------------------------------------- /代码/data_files/Ru_contained_trainingsamples.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/data_files/Ru_contained_trainingsamples.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_1GPR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_1GPR_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_1MLR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_1MLR_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_1RF_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_1RF_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_1SVR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_1SVR_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_2GPR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_2GPR_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_2MLR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_2MLR_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_2RF_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_2RF_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_2SVR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_2SVR_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_3GPR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_3GPR_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_3MLR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_3MLR_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_3RF_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_3RF_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_3SVR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_3SVR_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_4GPR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_4GPR_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_4MLR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_4MLR_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_4RF_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_4RF_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_4SVR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_4SVR_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_5GPR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_5GPR_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_5MLR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_5MLR_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_5RF_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_5RF_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_5SVR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_5SVR_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_6GPR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_6GPR_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_6MLR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_6MLR_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_6RF_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_6RF_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_6SVR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_6SVR_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_7GPR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_7GPR_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_7MLR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_7MLR_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_7RF_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_7RF_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_7SVR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_7SVR_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_8GPR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_8GPR_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_8MLR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_8MLR_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_8RF_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_8RF_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_8SVR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_8SVR_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/cluster_4MLR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/cluster_4MLR_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/cluster_4RF_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/cluster_4RF_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/cluster_4SVR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/cluster_4SVR_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/cluster_5GPR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/cluster_5GPR_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/cluster_5MLR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/cluster_5MLR_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/cluster_5RF_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/cluster_5RF_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/cluster_5SVR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/cluster_5SVR_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/cluster_6GPR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/cluster_6GPR_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/cluster_6MLR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/cluster_6MLR_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/cluster_6RF_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/cluster_6RF_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/cluster_6SVR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/cluster_6SVR_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/cluster_7GPR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/cluster_7GPR_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/cluster_7MLR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/cluster_7MLR_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/cluster_7RF_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/cluster_7RF_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/cluster_7SVR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/cluster_7SVR_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/cluster_8GPR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/cluster_8GPR_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/cluster_8MLR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/cluster_8MLR_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/cluster_8RF_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/cluster_8RF_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/cluster_8SVR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/cluster_8SVR_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_1Lasso_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_1Lasso_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_1Ridge_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_1Ridge_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_1_model_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_1_model_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_2Lasso_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_2Lasso_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_2Ridge_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_2Ridge_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_2_model_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_2_model_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_3Lasso_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_3Lasso_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_3Ridge_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_3Ridge_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_3_model_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_3_model_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_4Lasso_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_4Lasso_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_4Ridge_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_4Ridge_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_4_model_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_4_model_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_5Lasso_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_5Lasso_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_5Ridge_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_5Ridge_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_5_model_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_5_model_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_6Lasso_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_6Lasso_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_6Ridge_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_6Ridge_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_6_model_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_6_model_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_7Lasso_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_7Lasso_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_7Ridge_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_7Ridge_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_7_model_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_7_model_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_8Lasso_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_8Lasso_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_8Ridge_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_8Ridge_results.xlsx -------------------------------------------------------------------------------- /代码/predicted_results/cluster_8_model_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/predicted_results/cluster_8_model_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_1RF_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_1RF_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_2RF_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_2RF_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_3RF_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_3RF_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_4RF_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_4RF_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_5RF_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_5RF_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_6RF_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_6RF_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_7RF_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_7RF_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_8RF_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_8RF_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/DCSA-predicted-results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/DCSA-predicted-results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/cluster_4Lasso_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/cluster_4Lasso_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/cluster_4Ridge_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/cluster_4Ridge_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/cluster_5Lasso_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/cluster_5Lasso_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/cluster_5Ridge_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/cluster_5Ridge_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/cluster_6Lasso_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/cluster_6Lasso_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/cluster_6Ridge_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/cluster_6Ridge_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/cluster_7Lasso_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/cluster_7Lasso_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/cluster_7Ridge_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/cluster_7Ridge_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/cluster_8Lasso_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/cluster_8Lasso_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/cluster_8Ridge_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/cluster_8Ridge_results.xlsx -------------------------------------------------------------------------------- /代码/test_data_file/17_new_testing_samples(no Ru).xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/test_data_file/17_new_testing_samples(no Ru).xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_1GPR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_1GPR_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_1Lasso_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_1Lasso_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_1MLR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_1MLR_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_1Ridge_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_1Ridge_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_1SVR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_1SVR_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_2GPR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_2GPR_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_2Lasso_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_2Lasso_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_2MLR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_2MLR_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_2Ridge_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_2Ridge_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_2SVR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_2SVR_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_3GPR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_3GPR_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_3Lasso_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_3Lasso_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_3MLR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_3MLR_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_3Ridge_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_3Ridge_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_3SVR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_3SVR_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_4GPR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_4GPR_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_4Lasso_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_4Lasso_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_4MLR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_4MLR_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_4Ridge_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_4Ridge_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_4SVR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_4SVR_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_5GPR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_5GPR_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_5Lasso_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_5Lasso_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_5MLR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_5MLR_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_5Ridge_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_5Ridge_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_5SVR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_5SVR_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_6GPR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_6GPR_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_6Lasso_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_6Lasso_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_6MLR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_6MLR_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_6Ridge_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_6Ridge_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_6SVR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_6SVR_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_7GPR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_7GPR_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_7Lasso_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_7Lasso_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_7MLR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_7MLR_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_7Ridge_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_7Ridge_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_7SVR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_7SVR_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_8GPR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_8GPR_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_8Lasso_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_8Lasso_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_8MLR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_8MLR_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_8Ridge_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_8Ridge_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_8SVR_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_8SVR_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/cluster_4_model_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/cluster_4_model_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/cluster_5_model_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/cluster_5_model_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/cluster_6_model_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/cluster_6_model_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/cluster_7_model_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/cluster_7_model_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/cluster_8_model_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/cluster_8_model_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/~$cluster_1_model_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/~$cluster_1_model_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/~$cluster_2_model_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/~$cluster_2_model_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/~$cluster_3_model_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/~$cluster_3_model_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/~$cluster_4_model_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/~$cluster_4_model_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/~$cluster_5_model_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/~$cluster_5_model_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/~$cluster_6_model_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/~$cluster_6_model_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/~$cluster_7_model_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/~$cluster_7_model_results.xlsx -------------------------------------------------------------------------------- /数据/最终预测结果数据/DCSA-中间结果/~$cluster_8_model_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/最终预测结果数据/DCSA-中间结果/~$cluster_8_model_results.xlsx -------------------------------------------------------------------------------- /代码/Comparative_results/Comparative_models_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/Comparative_results/Comparative_models_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_1_model_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_1_model_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_2_model_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_2_model_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_3_model_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_3_model_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_4_model_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_4_model_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_5_model_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_5_model_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_6_model_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_6_model_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_7_model_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_7_model_results.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/2_最优预测模型的自适应选择/cluster_8_model_results.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/2_最优预测模型的自适应选择/cluster_8_model_results.xlsx -------------------------------------------------------------------------------- /代码/test_data_file/8-new validated instance_revision.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/代码/test_data_file/8-new validated instance_revision.xlsx -------------------------------------------------------------------------------- /数据/266条蠕变数据+8条测试数据/8-new validated instance_revison.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/266条蠕变数据+8条测试数据/8-new validated instance_revison.xlsx -------------------------------------------------------------------------------- /数据/中间结果数据/1_基于聚类的蠕变样本的自动划分数据/multi-factors_clusters_912.xls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunming1/mla-shu/HEAD/数据/中间结果数据/1_基于聚类的蠕变样本的自动划分数据/multi-factors_clusters_912.xls -------------------------------------------------------------------------------- /代码/Readme.txt: -------------------------------------------------------------------------------- 1 | English: 2 | Program description: 3 | Note: The libraries that the python program depends on are installed one by one 4 | How to run the program: After installing python and all dependent libraries, you can run it in the following two ways. (1) Run python ***.py; (2) Install pycharm and configure it 5 | After the environment, you can run. 6 | (1) cluster_superalloy.py: 266 alloy creep samples were classified into cluster categories to distinguish the differences in creep mechanisms under different compositions, heat treatment processes and microstructures; 7 | (2) ClusterResultVisualization.py: visualization of cluster division; 8 | (3) DCSA_analysis.py and OptModelForCluster.py: adaptive selection of the optimal prediction model; 9 | (4) DCSA_ModelValidation.py: The predictions of the 8 newly collected alloy sample models. 10 | Chinese: 11 | 程序说明: 12 | 注:python程序依赖的库一一装好 13 | 运行程序方法:安装好python及所有依赖库后,可通过以下两个方式运行。(1) python ***.py运行;(2)安装pycharm,配置好 14 | 环境后,即可运行。 15 | (1)cluster_superalloy.py :对266条合金蠕变样本进行簇类别划分,以区别不同成分、热处理工艺和微观结构下 16 | 的蠕变机制的差异性; 17 | (2)ClusterResultVisualization.py:聚类划分可视化; 18 | (3)DCSA_analysis.py和OptModelForCluster.py:最优预测模型的自适应选择; 19 | (4)DCSA_ModelValidation.py:新收集的8条合金样本模型的预测。 20 | -------------------------------------------------------------------------------- /代码/ClusterResultVisualization.py: -------------------------------------------------------------------------------- 1 | import pandas as pd 2 | from sklearn.preprocessing import MinMaxScaler 3 | from sklearn.preprocessing import StandardScaler 4 | from sklearn.externals import joblib 5 | from sklearn.manifold import TSNE 6 | import matplotlib.pyplot as plt 7 | from sklearn.decomposition import PCA 8 | import numpy as np 9 | # def mscatter(x,y,ax=None, m=None, **kw): 10 | # import matplotlib.markers as mmarkers 11 | # if not ax: ax=plt.gca() 12 | # sc = ax.scatter(x,y,**kw) 13 | # if (m is not None) and (len(m)==len(x)): 14 | # paths = [] 15 | # for marker in m: 16 | # if isinstance(marker, mmarkers.MarkerStyle): 17 | # marker_obj = marker 18 | # else: 19 | # marker_obj = mmarkers.MarkerStyle(marker) 20 | # path = marker_obj.get_path().transformed( 21 | # marker_obj.get_transform()) 22 | # paths.append(path) 23 | # sc.set_paths(paths) 24 | # return sc 25 | df = pd.read_excel("data_files/多尺度样本_聚类标签.xlsx") 26 | data_array = df.values 27 | train_data, label = data_array[:, 0:28], data_array[:, -1] 28 | train_data = MinMaxScaler().fit_transform(train_data) 29 | pca = PCA(n_components=2) 30 | trans_data = pca.fit_transform(train_data) 31 | print(trans_data) 32 | print(pca.explained_variance_ratio_) 33 | new_data = np.column_stack((trans_data, label)) 34 | print("data of transformation is", new_data) 35 | df = pd.DataFrame(new_data) 36 | df.to_excel("ClusterVisualation.xlsx") 37 | for row_index in range(len(trans_data)): 38 | row_data = trans_data[row_index] 39 | if(label[row_index]==0): 40 | plt.scatter(row_data[0], row_data[1], c='#FF00FF') #洋红#FF00FF #cluster1 41 | elif(label[row_index]==1): 42 | plt.scatter(row_data[0], row_data[1],c='r')#红色 #cluster2 43 | elif (label[row_index] == 2): 44 | plt.scatter(row_data[0], row_data[1],c='g')#绿色 cluster3 45 | elif (label[row_index] == 3): 46 | plt.scatter(row_data[0], row_data[1],c='b')#蓝色cluster4 47 | elif (label[row_index] == 4): 48 | plt.scatter(row_data[0], row_data[1],c='#696969')#暗灰色 cluster5 49 | elif (label[row_index] == 5): 50 | plt.scatter(row_data[0], row_data[1], c='#FFA500')#橙色 cluster6 51 | elif (label[row_index] == 6): 52 | plt.scatter(row_data[0], row_data[1], c='#00BFFF')# 深天蓝#00BFFF cluster7 53 | else: 54 | plt.scatter(row_data[0], row_data[1], c='#7CFC00')#草坪绿 cluster8 55 | plt.show() -------------------------------------------------------------------------------- /ClusterResultVisualization.py: -------------------------------------------------------------------------------- 1 | import pandas as pd 2 | from sklearn.preprocessing import MinMaxScaler 3 | from sklearn.preprocessing import StandardScaler 4 | from sklearn.externals import joblib 5 | from sklearn.manifold import TSNE 6 | import matplotlib.pyplot as plt 7 | from sklearn.decomposition import PCA 8 | import numpy as np 9 | # def mscatter(x,y,ax=None, m=None, **kw): 10 | # import matplotlib.markers as mmarkers 11 | # if not ax: ax=plt.gca() 12 | # sc = ax.scatter(x,y,**kw) 13 | # if (m is not None) and (len(m)==len(x)): 14 | # paths = [] 15 | # for marker in m: 16 | # if isinstance(marker, mmarkers.MarkerStyle): 17 | # marker_obj = marker 18 | # else: 19 | # marker_obj = mmarkers.MarkerStyle(marker) 20 | # path = marker_obj.get_path().transformed( 21 | # marker_obj.get_transform()) 22 | # paths.append(path) 23 | # sc.set_paths(paths) 24 | # return sc 25 | df = pd.read_excel("data_files/多尺度样本_聚类标签.xlsx") 26 | data_array = df.values 27 | train_data, label = data_array[:, 0:28], data_array[:, -1] 28 | train_data = MinMaxScaler().fit_transform(train_data) 29 | pca = PCA(n_components=2) 30 | trans_data = pca.fit_transform(train_data) 31 | print(trans_data) 32 | print(pca.explained_variance_ratio_) 33 | new_data = np.column_stack((trans_data, label)) 34 | print("data of transformation is", new_data) 35 | df = pd.DataFrame(new_data) 36 | df.to_excel("ClusterVisualation.xlsx") 37 | for row_index in range(len(trans_data)): 38 | row_data = trans_data[row_index] 39 | if(label[row_index]==0): 40 | plt.scatter(row_data[0], row_data[1], c='#FF00FF') #洋红#FF00FF #cluster1 41 | elif(label[row_index]==1): 42 | plt.scatter(row_data[0], row_data[1],c='r')#红色 #cluster2 43 | elif (label[row_index] == 2): 44 | plt.scatter(row_data[0], row_data[1],c='g')#绿色 cluster3 45 | elif (label[row_index] == 3): 46 | plt.scatter(row_data[0], row_data[1],c='b')#蓝色cluster4 47 | elif (label[row_index] == 4): 48 | plt.scatter(row_data[0], row_data[1],c='#696969')#暗灰色 cluster5 49 | elif (label[row_index] == 5): 50 | plt.scatter(row_data[0], row_data[1], c='#FFA500')#橙色 cluster6 51 | elif (label[row_index] == 6): 52 | plt.scatter(row_data[0], row_data[1], c='#00BFFF')# 深天蓝#00BFFF cluster7 53 | else: 54 | plt.scatter(row_data[0], row_data[1], c='#7CFC00')#草坪绿 cluster8 55 | plt.show() -------------------------------------------------------------------------------- /代码/Cluster_superalloy.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import pandas as pd 3 | import xlrd 4 | 5 | 6 | def load_data(input_file): 7 | source_data = pd.read_excel(input_file) 8 | np_data = source_data.iloc[:,:].values 9 | # print(source_data.columns) 10 | return source_data, np_data 11 | 12 | 13 | def data_process(np_data): 14 | from sklearn import preprocessing 15 | array_data = np.zeros(np_data.shape) 16 | for i in range(26): 17 | # array_data[:, i+1] = preprocessing.minmax_scale(np_data[:, i+1]) 18 | array_data[:, i] = preprocessing.minmax_scale(np_data[:, i]) 19 | # array_data[:, 23] = np.log(np_data[:, 23]) 20 | # print(array_data.shape) 21 | return array_data 22 | 23 | 24 | def cluster_split(array_data): 25 | print(array_data[1, 1:-1]) 26 | return array_data[:, 1:-1] 27 | 28 | 29 | def train_cluster(train_data, array_data, source_data): 30 | from sklearn.cluster import KMeans, DBSCAN 31 | # model = DBSCAN() 32 | model = KMeans() 33 | model.fit(train_data) 34 | label = np.zeros((len(model.labels_), 1), dtype=int) 35 | for i in range(len(model.labels_)): 36 | label[i, 0] = int(model.labels_[i]) 37 | # print(train_data, model.cluster_centers_) 38 | # r = pd.concat([source_data, pd.Series(model.labels_, index=source_data.index)], axis=1) 39 | 40 | # print(labels) 41 | combine = np.concatenate((array_data, label), axis=1) 42 | writer = pd.ExcelWriter('cluster_data2.xls') 43 | r0 = pd.concat([pd.DataFrame(array_data[:, 0:2]), pd.DataFrame(model.labels_)], axis=1) 44 | # r0.columns = ['temp', 'stress','stacking','DL','G','L','Ni3Al', 'label'] 45 | r0.columns = ['temp', 'stress', 'label'] 46 | r0.to_excel(writer, sheet_name='cluster_label') 47 | for i in range(len(np.unique(model.labels_))): 48 | cluster_subset = combine[combine[:, -1] == i][:, :-1] 49 | # print(np.arange(0, len(cluster_subset[:, 0])+1, 1).T) 50 | r0 = pd.DataFrame(np.arange(0, int(len(cluster_subset[:, 0])), 1).T) 51 | r1 = pd.DataFrame(cluster_subset) 52 | r = pd.concat([r0, r1], axis=1) 53 | r.columns = ['alloy'] + list(source_data.columns) 54 | r.to_excel(writer, sheet_name='cluster_'+str(i)) 55 | plot_cluster(train_data, model.labels_) 56 | # r2 = pd.concat([pd.DataFrame(model.cluster_centers_)]) 57 | # r2.columns = source_data.columns[1:] 58 | # r2.to_excel(writer, sheet_name='center') 59 | # writer.save() 60 | # r2 = pd.concat([array_data, model.labels_], axis=0) 61 | # print(combine[1, :]) 62 | # r1 = pd.DataFrame(list(model.labels_)) 63 | # r2 = pd.concat([r1]) 64 | # r2.to_excel(writer, sheet_name='name2') 65 | writer.save() 66 | 67 | 68 | def plot_cluster(data_zs, r): 69 | from sklearn.manifold import TSNE 70 | 71 | tsne = TSNE() 72 | tsne.fit_transform(data_zs) # 进行数据降维,降成两维 73 | # a=tsne.fit_transform(data_zs) #a是一个array,a相当于下面的tsne_embedding_ 74 | tsne = pd.DataFrame(tsne.embedding_) # 转换数据格式 75 | 76 | import matplotlib.pyplot as plt 77 | 78 | d = tsne[r == 0] 79 | plt.plot(d[0], d[1], 'k.') 80 | 81 | d = tsne[r == 1] 82 | plt.plot(d[0], d[1], 'r.') 83 | 84 | d = tsne[r == 2] 85 | plt.plot(d[0], d[1], 'y.') 86 | d = tsne[r == 3] 87 | plt.plot(d[0], d[1], 'g.') 88 | d = tsne[r == 4] 89 | plt.plot(d[0], d[1], 'c.') 90 | 91 | d = tsne[r == 5] 92 | plt.plot(d[0], d[1], 'm.') 93 | d = tsne[r == 6] 94 | plt.plot(d[0], d[1], 'b.') 95 | d = tsne[r == 7] 96 | plt.plot(d[0], d[1], '#EE82EE',marker='.',linestyle='dotted') 97 | 98 | plt.show() 99 | 100 | def run_cluster(): 101 | print("run_cluster") 102 | resource_data, np_data = load_data('多尺度样本_revision.xlsx') 103 | array_data = data_process(np_data) 104 | train_data = cluster_split(array_data) 105 | # print(array_data, np_data) 106 | train_cluster(train_data, np_data, resource_data) 107 | 108 | 109 | if __name__ == "__main__": 110 | print('welcome to cluster world') 111 | run_cluster() 112 | -------------------------------------------------------------------------------- /Cluster_superalloy.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import pandas as pd 3 | import xlrd 4 | 5 | 6 | def load_data(input_file): 7 | source_data = pd.read_excel(input_file) 8 | np_data = source_data.source_data.iloc[:,:].values 9 | # print(source_data.columns) 10 | return source_data, np_data 11 | 12 | 13 | def data_process(np_data): 14 | from sklearn import preprocessing 15 | array_data = np.zeros(np_data.shape) 16 | for i in range(26): 17 | # array_data[:, i+1] = preprocessing.minmax_scale(np_data[:, i+1]) 18 | array_data[:, i] = preprocessing.minmax_scale(np_data[:, i]) 19 | # array_data[:, 23] = np.log(np_data[:, 23]) 20 | # print(array_data.shape) 21 | return array_data 22 | 23 | 24 | def cluster_split(array_data): 25 | print(array_data[1, 1:-1]) 26 | return array_data[:, 1:-1] 27 | 28 | 29 | def train_cluster(train_data, array_data, source_data): 30 | from sklearn.cluster import KMeans, DBSCAN 31 | # model = DBSCAN() 32 | model = KMeans() 33 | model.fit(train_data) 34 | label = np.zeros((len(model.labels_), 1), dtype=int) 35 | for i in range(len(model.labels_)): 36 | label[i, 0] = int(model.labels_[i]) 37 | # print(train_data, model.cluster_centers_) 38 | # r = pd.concat([source_data, pd.Series(model.labels_, index=source_data.index)], axis=1) 39 | 40 | # print(labels) 41 | combine = np.concatenate((array_data, label), axis=1) 42 | writer = pd.ExcelWriter('cluster_data2.xls') 43 | r0 = pd.concat([pd.DataFrame(array_data[:, 0:2]), pd.DataFrame(model.labels_)], axis=1) 44 | # r0.columns = ['temp', 'stress','stacking','DL','G','L','Ni3Al', 'label'] 45 | r0.columns = ['temp', 'stress', 'label'] 46 | r0.to_excel(writer, sheet_name='cluster_label') 47 | for i in range(len(np.unique(model.labels_))): 48 | cluster_subset = combine[combine[:, -1] == i][:, :-1] 49 | # print(np.arange(0, len(cluster_subset[:, 0])+1, 1).T) 50 | r0 = pd.DataFrame(np.arange(0, int(len(cluster_subset[:, 0])), 1).T) 51 | r1 = pd.DataFrame(cluster_subset) 52 | r = pd.concat([r0, r1], axis=1) 53 | r.columns = ['alloy'] + list(source_data.columns) 54 | r.to_excel(writer, sheet_name='cluster_'+str(i)) 55 | plot_cluster(train_data, model.labels_) 56 | # r2 = pd.concat([pd.DataFrame(model.cluster_centers_)]) 57 | # r2.columns = source_data.columns[1:] 58 | # r2.to_excel(writer, sheet_name='center') 59 | # writer.save() 60 | # r2 = pd.concat([array_data, model.labels_], axis=0) 61 | # print(combine[1, :]) 62 | # r1 = pd.DataFrame(list(model.labels_)) 63 | # r2 = pd.concat([r1]) 64 | # r2.to_excel(writer, sheet_name='name2') 65 | writer.save() 66 | 67 | 68 | def plot_cluster(data_zs, r): 69 | from sklearn.manifold import TSNE 70 | 71 | tsne = TSNE() 72 | tsne.fit_transform(data_zs) # 进行数据降维,降成两维 73 | # a=tsne.fit_transform(data_zs) #a是一个array,a相当于下面的tsne_embedding_ 74 | tsne = pd.DataFrame(tsne.embedding_) # 转换数据格式 75 | 76 | import matplotlib.pyplot as plt 77 | 78 | d = tsne[r == 0] 79 | plt.plot(d[0], d[1], 'k.') 80 | 81 | d = tsne[r == 1] 82 | plt.plot(d[0], d[1], 'r.') 83 | 84 | d = tsne[r == 2] 85 | plt.plot(d[0], d[1], 'y.') 86 | d = tsne[r == 3] 87 | plt.plot(d[0], d[1], 'g.') 88 | d = tsne[r == 4] 89 | plt.plot(d[0], d[1], 'c.') 90 | 91 | d = tsne[r == 5] 92 | plt.plot(d[0], d[1], 'm.') 93 | d = tsne[r == 6] 94 | plt.plot(d[0], d[1], 'b.') 95 | d = tsne[r == 7] 96 | plt.plot(d[0], d[1], '#EE82EE',marker='.',linestyle='dotted') 97 | 98 | plt.show() 99 | 100 | def run_cluster(): 101 | print("run_cluster") 102 | resource_data, np_data = load_data('多尺度样本_revision.xlsx') 103 | array_data = data_process(np_data) 104 | train_data = cluster_split(array_data) 105 | # print(array_data, np_data) 106 | train_cluster(train_data, np_data, resource_data) 107 | 108 | 109 | if __name__ == "__main__": 110 | print('welcome to cluster world') 111 | run_cluster() 112 | -------------------------------------------------------------------------------- /代码/DCSA_ModelValidation.py: -------------------------------------------------------------------------------- 1 | ''' 2 | 65.89 5.61 0.99 5.2 0 7.56 0.81 4.27 8.52 0.07 0.03 0 0.83 0.22 4 4 20 1280 1080 871 1040 137.2 61.06426846 4.51733E-21 53.96456487 0.350781578 0.75214 454.3 3 | 58.832 1.26 12.4 4.35 0 6.32 0.73 6.6 7.68 0.062 0.026 0 1.5 0.24 4 4 20 1270 1080 871 1040 137.2 59.77759412 2.24667E-21 57.57985457 0.357581635 0.54641 211.1 4 | 64.53 0 5 4.15 3.68 6.5 0.92 10.6 4.42 0 0 0 0 0.2 3 4 20 1276 1080 871 204 759 41.04733707 1.80716E-21 69.04909109 0.349344299 0.60239 256.2 5 | 64.73 0 5 4.15 3.68 6.5 0.92 10.6 4.42 0 0 0 0 0 3 4 20 1288 1080 871 315 448.5 41.34221675 1.79973E-21 69.20082315 0.349701573 0.5966 277.1 6 | ''' 7 | import pandas as pd 8 | from sklearn.ensemble import RandomForestRegressor 9 | from sklearn.preprocessing import MinMaxScaler 10 | from sklearn.preprocessing import StandardScaler 11 | from sklearn.externals import joblib 12 | import numpy as np 13 | # data = pd.read_excel("data_files/多尺度样本聚类_912.xls", sheetname="cluster_6").values 14 | # X = data[:, :-1] 15 | # y = np.log(data[:, -1]) 16 | # scaler = MinMaxScaler(feature_range=(0, 1)) 17 | # X = scaler.fit_transform(X) 18 | # model = RandomForestRegressor(n_estimators=15, max_depth=6, criterion='mae', bootstrap=True) 19 | # model.fit(X, y) 20 | # pred_data = pd.read_excel("test_data_file/8-new validated instance.xlsx").values 21 | # single_data = pred_data[6:7,:-1] 22 | # print(single_data) 23 | # single_data = scaler.transform(single_data) 24 | # print("22222", single_data) 25 | # pred_y = model.predict(single_data) 26 | # print("1111tian", np.exp(pred_y)) 27 | # a=np.array([[1,2,3], 28 | # [2,3,5], 29 | # [7,8,9]]) 30 | # print(MinMaxScaler().fit_transform(a)) 31 | # max_a = np.max(a, axis=0) 32 | # min_a = np.min(a, axis=0) 33 | # # a[0](max_a-min_a) 34 | # norm_a = [(row-min_a)/(max_a-min_a) for row in a] 35 | # print(norm_a) 36 | def pre_progressing(original_data): 37 | data = original_data[:, :-1] 38 | target = original_data[:, -1] 39 | normalize_data = MinMaxScaler().fit_transform(data) 40 | normalize_target = np.log(target) 41 | return normalize_data, normalize_target 42 | 43 | df_original = pd.read_excel("data_files/多尺度样本_revision.xlsx") 44 | original_data = df_original.values[:, 1:-1] 45 | print(original_data) 46 | original_min = np.min(original_data, axis=0) 47 | original_max = np.max(original_data, axis=0) 48 | print("11111", original_max) 49 | print("22222", original_min) 50 | print(original_min.shape) 51 | print(original_max-original_min) 52 | 53 | cluster_centers = [] 54 | for index in range(8): 55 | #每个簇上的样本 56 | cluster_data = pd.read_excel("data_files/multi-factors_clusters_912.xls", 57 | sheetname="cluster_"+str(index)) 58 | print("222ddddd", cluster_data.values) 59 | cluster_dataX = cluster_data.values[:, 1:28] 60 | normalize_data = [(row-original_min)/(original_max-original_min) 61 | for row in cluster_dataX]#每个簇按照全部最大最小值归一化 62 | #求每个簇的聚类中心 63 | print("每个簇最大最小归一化的数据为", normalize_data) 64 | cluster_center = np.mean(normalize_data, axis=0) 65 | cluster_centers.append(cluster_center) 66 | print("聚类中心为", cluster_centers) 67 | cluster_centers = np.array(cluster_centers)#将聚类中心转化为numpy数组 68 | #8条验证样本 69 | df = pd.read_excel("test_data_file/8-new validated instance_revison.xlsx") 70 | validation_data = df.values 71 | # print(validation_data) 72 | validation_dataX, validation_targetY = validation_data[:, :-1], np.log(validation_data[:, -1]) 73 | # normalize_data, normalize_target = pre_progressing(validation_data) 74 | #第一条样本 75 | data, target = (validation_dataX[7:8]-original_min)/(original_max-original_min), validation_targetY[7:8] 76 | cluster_distance = [np.sqrt(np.sum((data-value)**2, axis=1)) 77 | for value in cluster_centers]#样本到各个簇之间的距离 78 | print("样本到各个簇上的距离", cluster_distance) 79 | cluster_dis = [dis[0] for dis in cluster_distance] 80 | print(cluster_dis) 81 | cluster_index = np.argmin(cluster_distance) 82 | print("该样本所属簇的标号为", cluster_index)#从0开始计算 83 | # print(data.shape) 84 | clf = joblib.load("model_for_custers/cluster_7SVR.model") 85 | #1 cluster_1 RR 25.5 413.5841 86 | #2 cluster_1 RR 0.05 217.5486 87 | #3 cluster_0 SVR C=2200 283.1851 88 | #4 cluster_0 SVR C=2200 306.2867 89 | #5 cluster_1 RR 0.02 690.9123 90 | #6 cluster_7 SVR C=0.1 379.8833 91 | #7 cluster_0 SVR C=2200 218.4674 92 | #8 cluster_0 SVR C=3000 118.0444 93 | # df2 = pd.read_excel("data_files/多尺度样本聚类_912.xls", 94 | # sheetname="cluster_"+str(cluster_index)) 95 | # cluster_data = df2.values[:, 0:27] 96 | # cluster_min = np.min(cluster_data, axis=0)#g该簇上最小值 97 | # cluster_max = np.max(cluster_data, axis=0)#该簇上最大值 98 | # print(c) 99 | # print("22222", target[0:2]) 100 | # norm_data, norm_target = (validation_dataX[6:7]-cluster_min)/(cluster_max-cluster_min), \ 101 | # validation_targetY[6:7] 102 | print("true value", np.exp(target)) 103 | print(np.exp(target), np.exp(clf.predict(data))) 104 | #1 #RR 251 SVR 228.4340 105 | 106 | #1 cluster_2 RR 754.79 107 | #2 cluster_8 MLR 212.6244 -------------------------------------------------------------------------------- /DCSA_ModelValidation.py: -------------------------------------------------------------------------------- 1 | ''' 2 | 65.89 5.61 0.99 5.2 0 7.56 0.81 4.27 8.52 0.07 0.03 0 0.83 0.22 4 4 20 1280 1080 871 1040 137.2 61.06426846 4.51733E-21 53.96456487 0.350781578 0.75214 454.3 3 | 58.832 1.26 12.4 4.35 0 6.32 0.73 6.6 7.68 0.062 0.026 0 1.5 0.24 4 4 20 1270 1080 871 1040 137.2 59.77759412 2.24667E-21 57.57985457 0.357581635 0.54641 211.1 4 | 64.53 0 5 4.15 3.68 6.5 0.92 10.6 4.42 0 0 0 0 0.2 3 4 20 1276 1080 871 204 759 41.04733707 1.80716E-21 69.04909109 0.349344299 0.60239 256.2 5 | 64.73 0 5 4.15 3.68 6.5 0.92 10.6 4.42 0 0 0 0 0 3 4 20 1288 1080 871 315 448.5 41.34221675 1.79973E-21 69.20082315 0.349701573 0.5966 277.1 6 | ''' 7 | import pandas as pd 8 | from sklearn.ensemble import RandomForestRegressor 9 | from sklearn.preprocessing import MinMaxScaler 10 | from sklearn.preprocessing import StandardScaler 11 | from sklearn.externals import joblib 12 | import numpy as np 13 | # data = pd.read_excel("data_files/多尺度样本聚类_912.xls", sheetname="cluster_6").values 14 | # X = data[:, :-1] 15 | # y = np.log(data[:, -1]) 16 | # scaler = MinMaxScaler(feature_range=(0, 1)) 17 | # X = scaler.fit_transform(X) 18 | # model = RandomForestRegressor(n_estimators=15, max_depth=6, criterion='mae', bootstrap=True) 19 | # model.fit(X, y) 20 | # pred_data = pd.read_excel("test_data_file/8-new validated instance.xlsx").values 21 | # single_data = pred_data[6:7,:-1] 22 | # print(single_data) 23 | # single_data = scaler.transform(single_data) 24 | # print("22222", single_data) 25 | # pred_y = model.predict(single_data) 26 | # print("1111tian", np.exp(pred_y)) 27 | # a=np.array([[1,2,3], 28 | # [2,3,5], 29 | # [7,8,9]]) 30 | # print(MinMaxScaler().fit_transform(a)) 31 | # max_a = np.max(a, axis=0) 32 | # min_a = np.min(a, axis=0) 33 | # # a[0](max_a-min_a) 34 | # norm_a = [(row-min_a)/(max_a-min_a) for row in a] 35 | # print(norm_a) 36 | def pre_progressing(original_data): 37 | data = original_data[:, :-1] 38 | target = original_data[:, -1] 39 | normalize_data = MinMaxScaler().fit_transform(data) 40 | normalize_target = np.log(target) 41 | return normalize_data, normalize_target 42 | 43 | df_original = pd.read_excel("data_files/多尺度样本_revision.xlsx") 44 | original_data = df_original.values[:, 1:-1] 45 | print(original_data) 46 | original_min = np.min(original_data, axis=0) 47 | original_max = np.max(original_data, axis=0) 48 | print("11111", original_max) 49 | print("22222", original_min) 50 | print(original_min.shape) 51 | print(original_max-original_min) 52 | 53 | cluster_centers = [] 54 | for index in range(8): 55 | #每个簇上的样本 56 | cluster_data = pd.read_excel("data_files/multi-factors_clusters_912.xls", 57 | sheetname="cluster_"+str(index)) 58 | print("222ddddd", cluster_data.values) 59 | cluster_dataX = cluster_data.values[:, 1:28] 60 | normalize_data = [(row-original_min)/(original_max-original_min) 61 | for row in cluster_dataX]#每个簇按照全部最大最小值归一化 62 | #求每个簇的聚类中心 63 | print("每个簇最大最小归一化的数据为", normalize_data) 64 | cluster_center = np.mean(normalize_data, axis=0) 65 | cluster_centers.append(cluster_center) 66 | print("聚类中心为", cluster_centers) 67 | cluster_centers = np.array(cluster_centers)#将聚类中心转化为numpy数组 68 | #8条验证样本 69 | df = pd.read_excel("test_data_file/8-new validated instance_revison.xlsx") 70 | validation_data = df.values 71 | # print(validation_data) 72 | validation_dataX, validation_targetY = validation_data[:, :-1], np.log(validation_data[:, -1]) 73 | # normalize_data, normalize_target = pre_progressing(validation_data) 74 | #第一条样本 75 | data, target = (validation_dataX[7:8]-original_min)/(original_max-original_min), validation_targetY[7:8] 76 | cluster_distance = [np.sqrt(np.sum((data-value)**2, axis=1)) 77 | for value in cluster_centers]#样本到各个簇之间的距离 78 | print("样本到各个簇上的距离", cluster_distance) 79 | cluster_dis = [dis[0] for dis in cluster_distance] 80 | print(cluster_dis) 81 | cluster_index = np.argmin(cluster_distance) 82 | print("该样本所属簇的标号为", cluster_index)#从0开始计算 83 | # print(data.shape) 84 | clf = joblib.load("model_for_custers/cluster_7SVR.model") 85 | #1 cluster_1 RR 25.5 413.5841 86 | #2 cluster_1 RR 0.05 217.5486 87 | #3 cluster_0 SVR C=2200 283.1851 88 | #4 cluster_0 SVR C=2200 306.2867 89 | #5 cluster_1 RR 0.02 690.9123 90 | #6 cluster_7 SVR C=0.1 379.8833 91 | #7 cluster_0 SVR C=2200 218.4674 92 | #8 cluster_0 SVR C=3000 118.0444 93 | # df2 = pd.read_excel("data_files/多尺度样本聚类_912.xls", 94 | # sheetname="cluster_"+str(cluster_index)) 95 | # cluster_data = df2.values[:, 0:27] 96 | # cluster_min = np.min(cluster_data, axis=0)#g该簇上最小值 97 | # cluster_max = np.max(cluster_data, axis=0)#该簇上最大值 98 | # print(c) 99 | # print("22222", target[0:2]) 100 | # norm_data, norm_target = (validation_dataX[6:7]-cluster_min)/(cluster_max-cluster_min), \ 101 | # validation_targetY[6:7] 102 | print("true value", np.exp(target)) 103 | print(np.exp(target), np.exp(clf.predict(data))) 104 | #1 #RR 251 SVR 228.4340 105 | 106 | #1 cluster_2 RR 754.79 107 | #2 cluster_8 MLR 212.6244 -------------------------------------------------------------------------------- /代码/OptModelForCluster.py: -------------------------------------------------------------------------------- 1 | ''' 2 | Clusters Selected optimal model Fitness 3 | 1 RF 0.8924 4 | 2 GPR 0.9595 5 | 3 GPR 0.9376 6 | 4 RF 0.9692 7 | 5 RF 0.9364 8 | 6 SVR 0.9548 9 | 7 SVR 0.9791 10 | 8 RF 0.9212 11 | ''' 12 | import pandas as pd 13 | 14 | 15 | def gaussian_model(): 16 | #GPR model 17 | from sklearn.gaussian_process import GaussianProcessRegressor 18 | from sklearn.gaussian_process.kernels import RationalQuadratic, WhiteKernel, RBF 19 | from sklearn.gaussian_process.kernels import ConstantKernel as C 20 | # parameter = "C(1, (1e-4, 10000)) * RationalQuadratic(alpha=0.01, length_scale_bounds=(1e-5, 20))" 21 | parameter = ' gaussian_model ' 22 | # kernel_5 = C(1, (1e-4, 1)) * RationalQuadratic(alpha=0.1, length_scale_bounds=(0.01, 2000)) 23 | kernel = C(1, (0.01, 10)) * RationalQuadratic(alpha=0.1, length_scale_bounds=(0.1, 2000)) 24 | model = GaussianProcessRegressor(kernel=kernel, alpha=0.01, n_restarts_optimizer=10) 25 | return model, parameter 26 | 27 | 28 | def svr_model(): 29 | #SVR model 30 | from sklearn.svm import SVR 31 | parameter = ' svr_model ' 32 | model = SVR(kernel='rbf', C=100, gamma='auto') 33 | return model, parameter 34 | 35 | 36 | def random_forest_model(): 37 | #random forest model 38 | from sklearn.ensemble import RandomForestRegressor 39 | parameter = ' RandomForest_model ' 40 | # model = RandomForestRegressor(n_estimators=15, max_depth=4, criterion='mae', bootstrap=True)\ 41 | #10 ,6 42 | model = RandomForestRegressor(n_estimators=15, max_depth=6, criterion='mae', bootstrap=True) 43 | return model, parameter 44 | 45 | def linear_model(): 46 | from sklearn.linear_model import LinearRegression 47 | parameter = ' Linear_model ' 48 | model = LinearRegression(normalize=True) 49 | 50 | return model, parameter 51 | 52 | 53 | def lasso_model(): 54 | from sklearn.linear_model import Ridge, Lasso 55 | parameter = 'Lasso_model' 56 | model = Lasso(alpha=0.01) 57 | return model, parameter 58 | 59 | 60 | def ridge_model(): 61 | from sklearn.linear_model import Ridge 62 | parameter = ' Elastic_model ' 63 | model = Ridge(alpha = 0.02) 64 | return model, parameter 65 | 66 | 67 | import pickle 68 | from sklearn.externals import joblib 69 | import numpy as np 70 | from sklearn.preprocessing import MinMaxScaler 71 | all_clusters = ["cluster_0", "cluster_1", "cluster_2", 72 | "cluster_3", "cluster_4", 73 | "cluster_5","cluster_6","cluster_7"] #eight different 74 | # alloy clusters with various creep mechanisms 75 | candidate_models = ["RF", "GPR", "SVR", "LR", "RR"]#three candidate machine learning model 76 | cluster_model = {"cluster_0": "SVR", "cluster_1": "RR","cluster_2": "RR", 77 | "cluster_3": "GPR","cluster_4": "RF","cluster_5": "RF", 78 | "cluster_6": "SVR","cluster_7": "SVR"} 79 | print("all models start running!") 80 | for cluster in cluster_model: 81 | print(cluster) 82 | df = pd.read_excel("data_files/multi-factors_clusters_912.xls",sheetname=cluster) 83 | cluster_sample = df.values[:, 1:] 84 | # print("11111", cluster_sample.shape) 85 | data, target = cluster_sample[:, 0:22], cluster_sample[:, -1] 86 | # print("2222", data) 87 | df_original = pd.read_excel("data_files/多尺度样本_revision.xlsx") 88 | original_data = df_original.values[:, 1:23] 89 | # original_data = df_original.values[:, 1:-1] 90 | # print(original_data.shape) 91 | # original_min = np.min(original_data, axis=0) 92 | # original_max = np.max(original_data, axis=0) 93 | # train_dataX = [(row-original_min)/(original_max-original_min) 94 | # for row in original_dataX] 95 | # train_dataX = np.array(train_dataX) 96 | scaler = MinMaxScaler() 97 | scaler.fit(original_data) # 用全部266条数据的最大与最小值对每个簇上的特征进行最大最小归一化 98 | data = scaler.transform(data) 99 | # print("归一化后的值", data) 100 | target = np.log(target) 101 | # print(data ,target) 102 | if cluster_model.get(cluster) == "RF": 103 | rf_model, rf_para = random_forest_model() 104 | rf_model.fit(data, target) 105 | joblib.dump(rf_model, "model_for_custers1/"+cluster+"RF"+".model") 106 | elif cluster_model.get(cluster) == "GPR": 107 | rf_model, rf_para = gaussian_model() 108 | rf_model.fit(data, target) 109 | joblib.dump(rf_model, "model_for_custers1/"+cluster + "GPR" + ".model") 110 | elif cluster_model.get(cluster) == "SVR": 111 | rf_model, rf_para = svr_model() 112 | rf_model.fit(data, target) 113 | joblib.dump(rf_model, "model_for_custers1/"+cluster + "SVR" + ".model") 114 | elif cluster_model.get(cluster) == "LR": 115 | lasso_model, lr_para = lasso_model() 116 | lasso_model.fit(data, target) 117 | joblib.dump(lasso_model, "model_for_custers1/" + cluster + "LR" + ".model") 118 | else: 119 | rr_model, rr_para = ridge_model() 120 | rr_model.fit(data, target) 121 | joblib.dump(rr_model, "model_for_custers1/" + cluster + "RR" + ".model") 122 | print("all models have already save!") -------------------------------------------------------------------------------- /generateMetadata.py: -------------------------------------------------------------------------------- 1 | import pandas as pd 2 | import time 3 | import os 4 | import xlwt 5 | import xlrd 6 | import xlutils.copy 7 | from hyperopt import hp, fmin, tpe, Trials, STATUS_OK 8 | from sklearn.cluster import estimate_bandwidth, KMeans, MiniBatchKMeans, AffinityPropagation, MeanShift, \ 9 | SpectralClustering, AgglomerativeClustering, FeatureAgglomeration, DBSCAN, Birch, OPTICS 10 | from processing import data_missing, data_processing 11 | from evaluation import hopkins, sil_score 12 | 13 | def traverse(f): 14 | global filename 15 | fs = os.listdir(f) 16 | for f1 in fs: 17 | tmp_path = os.path.join(f, f1) 18 | if not os.path.isdir(tmp_path): 19 | filename.append(tmp_path) 20 | else: 21 | traverse(tmp_path) 22 | 23 | def hyperopt_train(params): 24 | global X 25 | algorithm = params['type'] 26 | del params['type'] 27 | if algorithm == 0: 28 | clf = KMeans(**params) 29 | elif algorithm == 1: 30 | clf = MiniBatchKMeans(**params) 31 | elif algorithm == 2: 32 | clf = AffinityPropagation(**params) 33 | elif algorithm == 3: 34 | clf = MeanShift(**params) 35 | elif algorithm == 4: 36 | clf = SpectralClustering(**params) 37 | elif algorithm == 5: 38 | if params['linkage'] == 'ward': 39 | params['affinity'] = 'euclidean' 40 | clf = AgglomerativeClustering(**params) 41 | elif algorithm == 6: 42 | if params['linkage'] == 'ward': 43 | params['affinity'] = 'euclidean' 44 | clf = FeatureAgglomeration(**params) 45 | elif algorithm == 7: 46 | clf = DBSCAN(**params) 47 | elif algorithm == 8: 48 | clf = OPTICS(**params) 49 | elif algorithm == 9: 50 | clf = Birch(**params) 51 | else: 52 | return 0 53 | try: 54 | clf.fit(X) 55 | score = sil_score(X, clf.labels_) 56 | except Exception as e: 57 | print(e) 58 | score = -1 59 | return score 60 | 61 | 62 | def f(params): 63 | global best_score, best_time, best_params, early_stopping 64 | score = hyperopt_train(params) 65 | if score > best_score: 66 | print('score: ', score, 'using ', params) 67 | best_params = params 68 | best_score = score 69 | return {'loss': -score, 'status': STATUS_OK} 70 | 71 | 72 | if __name__ == "__main__": 73 | 74 | filename = [] 75 | traverse("../data/") 76 | print(filename) 77 | 78 | # workbook = xlwt.Workbook() 79 | # worksheet_score = workbook.add_sheet('score') 80 | # worksheet_params = workbook.add_sheet('params') 81 | # workbook.save("result.xls") 82 | 83 | try: 84 | for col in range(len(filename)): 85 | print(filename[col]) 86 | excel_data = xlrd.open_workbook('result.xls') 87 | ws = xlutils.copy.copy(excel_data) 88 | worksheet_score = ws.get_sheet(0) 89 | worksheet_params = ws.get_sheet(1) 90 | worksheet_score.write(col, 0, filename[col]) 91 | worksheet_params.write(col, 0, filename[col]) 92 | 93 | ####文件讀取 94 | source_data = pd.read_excel(filename[col]) 95 | source_data.dropna(inplace=True) 96 | np_data = source_data.values 97 | np_data = data_missing(np_data) 98 | 99 | if np_data.shape[0] > 5000 or np_data.shape[1] > 51: 100 | continue 101 | 102 | ###条件属性与决策属性 103 | X = np_data[:, 0:np_data.shape[1]-1] ###条件属性 104 | y = np_data[:, np_data.shape[1] - 1] 105 | 106 | ###对X、y进行预处理 X去空值与独热编码、归一化 y数值编码 107 | X = data_processing(X) 108 | if X.shape[1] > 300: 109 | continue 110 | # try: 111 | # result = hopkins(X) 112 | # except Exception as e: 113 | # print(e) 114 | # result = 0 115 | # if result < 0.7: 116 | # continue 117 | 118 | ###定义参数空间 119 | kmeans = {'n_clusters': hp.choice('n_clusters', range(2, 30)), 120 | 'algorithm': hp.choice('algorithm', ['auto', 'full', 'elkan']), 121 | 'init': hp.choice('init', ['k-means++', 'random']), 122 | 'precompute_distances': hp.choice('precompute_distances', ['auto', True, False]), 123 | 'tol': hp.uniform('tol', 1e-5, 1e-2), 124 | 'type': 0} 125 | minbatchkmeans = {'n_clusters': hp.choice('n_clusters', range(2, 30)), 126 | 'batch_size': hp.choice('batch_size', range(20, 200)), 127 | 'max_iter': 300, 128 | 'tol': hp.uniform('tol', 1e-5, 1e-2), 129 | 'reassignment_ratio': hp.uniform('reassignment_ratio', 1e-3, 1e-1), 130 | 'type': 1} 131 | affnitypropagation = {'damping': hp.uniform('damping', 0.5, 1), 132 | 'convergence_iter': hp.choice('convergence_iter', range(10, 50)), 133 | 'affinity': hp.choice('affinity', ['precomputed', 'euclidean']), 134 | 'type': 2} 135 | bandwidth = estimate_bandwidth(X, quantile=0.3, n_samples=len(X)) 136 | meanshift = {'cluster_all': hp.choice('cluster_all', [True, False]), 137 | 'min_bin_freq': hp.choice('min_bin_freq', range(1, 10)), 138 | 'bin_seeding': hp.choice('bin_seeding', [True, False]), 139 | 'bandwidth': hp.uniform('bandwidth', bandwidth - bandwidth / 2, bandwidth + bandwidth / 2), 140 | 'type': 3} 141 | spectralclustering = {'n_clusters': hp.choice('n_clusters', range(2, 30)), 142 | 'eigen_solver': hp.choice('eigen_solver', [None, 'arpack', 'lobpcg', 'amg']), 143 | 'n_init': hp.choice('n_init', range(2, 20)), 144 | 'gamma': hp.uniform('gamma', 0, 10), 145 | 'assign_labels': hp.choice('assign_labels', ['kmeans']), 146 | 'degree': hp.choice('degree', range(2, 7)), 147 | 'coef0': hp.uniform('coef0', 0, 2), 148 | 'affinity': hp.choice('affinity', ['nearest_neighbors', 'rbf']), 149 | 'n_neighbors': hp.choice('n_neighbors', range(1, 50)), 150 | 'type': 4} 151 | agglomerativelustering = {'n_clusters': hp.choice('n_clusters', range(2, 30)), 152 | 'affinity': hp.choice('affinity', ['euclidean', 'l1', 'l2', 'manhattan', 'cosine']), 153 | 'linkage': hp.choice('linkage', ['ward', 'complete', 'average', 'single']), 154 | 'compute_full_tree': hp.choice('compute_full_tree', ['auto', True, False]), 155 | 'type': 5} 156 | featureagglomeration = {'n_clusters': hp.choice('n_clusters', range(2, 30)), 157 | 'affinity': hp.choice('affinity', ['euclidean', 'l1', 'l2', 'manhattan', 'cosine']), 158 | 'linkage': hp.choice('linkage', ['ward', 'complete', 'average', 'single']), 159 | 'type': 6} 160 | dbsacn = {'eps': hp.uniform('eps', 0.1, 30), 161 | 'min_samples': hp.choice('min_samples', range(1, int(X.shape[0]/30))), 162 | 'algorithm': hp.choice('algorithm', ['auto', 'ball_tree', 'kd_tree', 'brute']), 163 | 'leaf_size': hp.choice('leaf_size', range(1, 60)), 164 | 'type': 7} 165 | optics = {'min_samples': hp.choice('min_samples', range(2, int(X.shape[0]/30))), 166 | 'max_eps': hp.uniform('max_eps', 0.1, 30), 167 | 'p': hp.choice('p', range(1, 6)), 168 | 'min_cluster_size': hp.uniform('min_cluster_size', 0, 1), 169 | 'algorithm': hp.choice('algorithm', ['auto', 'ball_tree', 'kd_tree', 'brute']), 170 | 'leaf_size': hp.choice('leaf_size', range(1, 60)), 171 | 'cluster_method': hp.choice('cluster_method', ['xi', 'dbscan']), 172 | 'eps': hp.uniform('eps', 0.1, 30), 173 | 'xi': hp.uniform('xi', 0, 1), 174 | 'type': 8} 175 | birch = {'threshold': hp.uniform('threshold', 0.1, 2), 176 | 'branching_factor': hp.choice('branching_factor', range(10, 200)), 177 | 'n_clusters': hp.choice('n_clusters', range(2, 30)), 178 | 'type': 9} 179 | for j in range(0, 10): 180 | best_score = -1 181 | best_params = {} 182 | trials = Trials() 183 | try: 184 | if j == 0: 185 | fmin(f, kmeans, algo=tpe.suggest, max_evals=200, trials=trials) 186 | elif j == 1: 187 | continue 188 | # fmin(f, minbatchkmeans, algo=tpe.suggest, max_evals=200, trials=trials) 189 | elif j == 2: 190 | fmin(f, affnitypropagation, algo=tpe.suggest, max_evals=100, trials=trials) 191 | elif j == 3: 192 | fmin(f, meanshift, algo=tpe.suggest, max_evals=200, trials=trials) 193 | elif j == 4: 194 | continue 195 | # fmin(f, spectralclustering, algo=tpe.suggest, max_evals=300, trials=trials) 196 | elif j == 5: 197 | fmin(f, agglomerativelustering, algo=tpe.suggest, max_evals=100, trials=trials) 198 | elif j == 6: 199 | continue 200 | # fmin(f, featureagglomeration, algo=tpe.suggest, max_evals=100, trials=trials) 201 | elif j == 7: 202 | fmin(f, dbsacn, algo=tpe.suggest, max_evals=200, trials=trials) 203 | elif j == 8: 204 | fmin(f, optics, algo=tpe.suggest, max_evals=300, trials=trials) 205 | elif j == 9: 206 | fmin(f, birch, algo=tpe.suggest, max_evals=200, trials=trials) 207 | except Exception as e: 208 | print(e) 209 | except Warning as w: 210 | print(w) 211 | worksheet_score.write(col, j+1, best_score) 212 | worksheet_params.write(col, j+1, str(best_params)) 213 | ws.save("result.xls") 214 | except Exception as e: 215 | print(e) 216 | 217 | 218 | 219 | -------------------------------------------------------------------------------- /divide_and_conquer.py: -------------------------------------------------------------------------------- 1 | ''' 2 | Clusters Selected optimal model Fitness 3 | 1 RF 0.8924 4 | 2 GPR 0.9595 5 | 3 GPR 0.9376 6 | 4 RF 0.9692 7 | 5 RF 0.9364 8 | 6 SVR 0.9548 9 | 7 SVR 0.9791 10 | 8 RF 0.9212 11 | ''' 12 | import pandas as pd 13 | import numpy as np 14 | from sklearn.cluster import KMeans 15 | from sklearn.metrics import mean_squared_error, r2_score 16 | from sklearn.preprocessing import MinMaxScaler 17 | def load_data(filename): 18 | file_list = filename.strip().split(".") 19 | data_frame = None 20 | if file_list[-1] == "xlsx": 21 | data_frame = pd.read_excel(filename) 22 | elif file_list[-1] == "csv": 23 | data_frame = pd.read_csv(filename) 24 | else: 25 | data_frame = None 26 | input_data = data_frame.values 27 | n_samples, n_dimension = input_data.shape 28 | print("样本数为%d,维度为%d" % (n_samples, n_dimension)) 29 | feature_names = [column for column in data_frame]#列属性名 30 | print(feature_names) 31 | return input_data 32 | 33 | 34 | def data_precessing(data_set): 35 | #对原始数据进行标准差归一化 36 | dataX, dataY = data_set[:, 1:-1], data_set[:, -1] 37 | Normalize_dataX = MinMaxScaler().fit_transform(dataX) 38 | # Normalize_dataX = StandardScaler().fit_transform(dataX) 39 | Normalize_dataY = np.log(dataY) 40 | return Normalize_dataX, Normalize_dataY 41 | 42 | 43 | # def gaussian_model(): 44 | # #GPR model 45 | # from sklearn.gaussian_process import GaussianProcessRegressor 46 | # from sklearn.gaussian_process.kernels import RationalQuadratic, WhiteKernel, RBF 47 | # from sklearn.gaussian_process.kernels import ConstantKernel as C 48 | # # parameter = "C(1, (1e-4, 10000)) * RationalQuadratic(alpha=0.01, length_scale_bounds=(1e-5, 20))" 49 | # parameter = ' gaussian_model ' 50 | # # kernel_5 = C(1, (1e-4, 1)) * RationalQuadratic(alpha=0.1, length_scale_bounds=(0.01, 2000)) 51 | # kernel = C(1, (0.01, 10)) * RationalQuadratic(alpha=0.1, length_scale_bounds=(0.1, 2000)) 52 | # model = GaussianProcessRegressor(kernel=kernel, alpha=0.01, n_restarts_optimizer=10) 53 | # return model, parameter 54 | 55 | 56 | def k_means_cluster(train_data): 57 | kmeans = KMeans(n_clusters=8) 58 | kmeans.fit(train_data) 59 | labels = kmeans.labels_#聚类标签 60 | clusters_center = kmeans.cluster_centers_ 61 | return labels, clusters_center 62 | 63 | 64 | def train_cluster(train_data, array_data, source_data): 65 | from sklearn.cluster import KMeans 66 | model = KMeans() 67 | model.fit(train_data) 68 | label = np.zeros((len(model.labels_), 1), dtype=int) 69 | for i in range(len(model.labels_)): 70 | label[i, 0] = int(model.labels_[i]) 71 | # print(train_data, model.cluster_centers_) 72 | # r = pd.concat([source_data, pd.Series(model.labels_, index=source_data.index)], axis=1) 73 | 74 | # print(labels) 75 | combine = np.concatenate((array_data, label), axis=1) 76 | writer = pd.ExcelWriter('brg\\cluster_data2.xls') 77 | r0 = pd.concat([pd.DataFrame(array_data[:, 0:2]), pd.DataFrame(model.labels_)], axis=1) 78 | # r0.columns = ['temp', 'stress','stacking','DL','G','L','Ni3Al', 'label'] 79 | r0.columns = ['temp', 'stress', 'label'] 80 | r0.to_excel(writer, sheet_name='cluster_label') 81 | for i in range(len(np.unique(model.labels_))): 82 | cluster_subset = combine[combine[:, -1] == i][:, :-1] 83 | # print(np.arange(0, len(cluster_subset[:, 0])+1, 1).T) 84 | r0 = pd.DataFrame(np.arange(0, int(len(cluster_subset[:, 0])), 1).T) 85 | r1 = pd.DataFrame(cluster_subset) 86 | r = pd.concat([r0, r1], axis=1) 87 | r.columns = ['alloy'] + list(source_data.columns) 88 | r.to_excel(writer, sheet_name='cluster_'+str(i)) 89 | writer.save() 90 | 91 | 92 | def mkdir(path): 93 | # 引入模块 94 | import os 95 | # 去除首位空格 96 | path = path.strip() 97 | # 去除尾部 \ 符号 98 | path = path.rstrip("\\") 99 | # 判断路径是否存在 100 | # 存在 True 101 | # 不存在 False 102 | isExists = os.path.exists(path) 103 | # 判断结果 104 | if not isExists: 105 | # 如果不存在则创建目录 106 | # 创建目录操作函数 107 | os.makedirs(path) 108 | return True 109 | 110 | 111 | else: 112 | # 如果目录存在则不创建,并提示目录已存在 113 | print(path + ' 目录已存在') 114 | return False 115 | 116 | 117 | # 定义要创建的目录 118 | def linear_prediction(data, target): 119 | from sklearn.linear_model import LinearRegression 120 | parameter = ' Linear_model ' 121 | linear_model = LinearRegression() 122 | linear_model.fit(data, target) 123 | pre_y = linear_model.predict(data) 124 | rmse = np.sqrt(mean_squared_error(target, pre_y)) 125 | return linear_model, rmse 126 | 127 | 128 | def lasso_regression(data, target): 129 | from sklearn.linear_model import Ridge, Lasso 130 | parameter = 'Lasso_model' 131 | lasso_model = Lasso(alpha=0.01) #alpha = 0.1,,0.5,1.0 132 | lasso_model.fit(data, target) 133 | pre_y = lasso_model.predict(data) 134 | rmse = np.sqrt(mean_squared_error(target, pre_y)) 135 | return lasso_model, rmse 136 | 137 | 138 | def ridge_prediction(data, target): 139 | from sklearn.linear_model import Ridge 140 | parameter = ' Elastic_model ' 141 | ridge_model = Ridge(alpha=0.5) 142 | 143 | ridge_model.fit(data, target) 144 | pre_y = ridge_model.predict(data) 145 | rmse = np.sqrt(mean_squared_error(target, pre_y)) 146 | return ridge_model, rmse 147 | 148 | 149 | def gaussian_prediction(data, target): 150 | from sklearn.gaussian_process import GaussianProcessRegressor 151 | from sklearn.gaussian_process.kernels import RationalQuadratic, WhiteKernel, RBF 152 | from sklearn.gaussian_process.kernels import ConstantKernel as C 153 | from sklearn.metrics import mean_squared_error 154 | # parameter = "C(1, (1e-4, 10000)) * RationalQuadratic(alpha=0.01, length_scale_bounds=(1e-5, 20))" 155 | parameter_1 = ' gaussian_model ' 156 | # kernel_5 = C(1, (1e-4, 1)) * RationalQuadratic(alpha=0.1, length_scale_bounds=(0.01, 2000)) 157 | kernel = C(1, (0.01, 10)) * RationalQuadratic(alpha=0.1, length_scale_bounds=(0.1, 1000)) 158 | gaussian_model = GaussianProcessRegressor(kernel=kernel, alpha=0.001, n_restarts_optimizer=20) 159 | 160 | 161 | gaussian_model.fit(data, target) 162 | pre_y = gaussian_model.predict(data) 163 | rmse = np.sqrt(mean_squared_error(target, pre_y)) 164 | return gaussian_model, rmse 165 | 166 | 167 | def svr_prediction(data, target): 168 | from sklearn.svm import SVR 169 | from sklearn.metrics import mean_squared_error 170 | parameter_2 = ' svr_model ' 171 | svr_model = SVR(kernel='rbf', C=800, gamma='auto') 172 | 173 | svr_model.fit(data, target) 174 | pre_y = svr_model.predict(data) 175 | rmse = np.sqrt(mean_squared_error(pre_y, target)) 176 | return svr_model, rmse 177 | 178 | 179 | def rf_prediction(data, target): 180 | from sklearn.ensemble import RandomForestRegressor 181 | from sklearn.metrics import mean_squared_error 182 | parameter_3 = ' RandomForest_model ' 183 | # model = RandomForestRegressor(n_estimators=15, max_depth=4, criterion='mae', bootstrap=True) 184 | random_forest_model = RandomForestRegressor(n_estimators=15, max_depth=8, criterion='mae', bootstrap=True) 185 | 186 | random_forest_model.fit(data,target) 187 | pre_y = random_forest_model.predict(data) 188 | rmse = np.sqrt(mean_squared_error(pre_y, target)) 189 | 190 | return random_forest_model, rmse 191 | 192 | 193 | def mape_function(y_pred, y_true): 194 | return abs(np.sum((y_pred - y_true) / y_true) / len(y_pred)) 195 | 196 | 197 | def plot_cluster(train_data, cluster_label, subplot_num): 198 | #聚类结果的可视化 199 | import pandas as pd 200 | import matplotlib.pyplot as plt 201 | from sklearn.decomposition import PCA 202 | pca = PCA(n_components=2) 203 | trans_data = pca.fit_transform(train_data) 204 | print(trans_data) 205 | plt.subplot(subplot_num) 206 | for row_index in range(len(trans_data)): 207 | row_data = trans_data[row_index] 208 | if(cluster_label[row_index]==0): 209 | plt.scatter(row_data[0], row_data[1], c='#FF00FF', s=8, label="Cluster1") #洋红#FF00FF #cluster1 210 | elif(cluster_label[row_index]==1): 211 | plt.scatter(row_data[0], row_data[1],c='r', s=8, label="Cluster2")#红色 #cluster2 212 | elif (cluster_label[row_index] == 2): 213 | plt.scatter(row_data[0], row_data[1], c='g', s=8, label="Cluster3")#绿色 cluster3 214 | elif (cluster_label[row_index] == 3): 215 | plt.scatter(row_data[0], row_data[1],c='b', s=8, label="Cluster4")#蓝色cluster4 216 | elif (cluster_label[row_index] == 4): 217 | plt.scatter(row_data[0], row_data[1],c='#696969', s=8, label="Cluster5")#暗灰色 cluster5 218 | # elif (cluster_label[row_index] == 5): 219 | # plt.scatter(row_data[0], row_data[1], c='#FFA500')#橙色 cluster6 220 | # elif (cluster_label[row_index] == 6): 221 | # plt.scatter(row_data[0], row_data[1], c='#00BFFF')# 深天蓝#00BFFF cluster7 222 | else: 223 | plt.scatter(row_data[0], row_data[1], c='#7CFC00', s=8, label="Cluster6")#草坪绿 cluster8 224 | # plt.xlabel("PC1") 225 | # plt.ylabel("PC2") 226 | # plt.xticks(trans_data[:, 0]) 227 | # plt.xticks(trans_data[:, 1]) 228 | return plt 229 | 230 | 231 | from sklearn.model_selection import KFold 232 | input_data = pd.read_excel("data_files/多尺度样本_revision.xlsx") 233 | print(input_data) 234 | input_data = input_data.values 235 | #读取274条合金样本 236 | print(input_data.shape) 237 | normalize_dataX, normalize_dataY = data_precessing(input_data) 238 | #对数据进行归一化处理 239 | kf = KFold(n_splits=10) 240 | fold_count = 0 241 | all_pred_y = [] 242 | rmse_sum = 0 243 | mape_sum = 0 244 | rmse_all = [] 245 | mape_all = [] 246 | plt = None 247 | for train_index, test_index in kf.split(input_data): 248 | train_x, train_y = normalize_dataX[train_index],normalize_dataY[train_index] 249 | test_x, test_y = normalize_dataX[test_index], normalize_dataY[test_index] 250 | cluster_labels, cluster_centers = k_means_cluster(train_x) 251 | print("ddddd", cluster_labels , cluster_centers) 252 | # plw = plot_cluster(train_x, cluster_labels, int("33"+str(fold_count+1))) 253 | clu_labels = np.array(cluster_labels) 254 | print(clu_labels) 255 | #每择(10次)交叉验证,训练集都聚成6个簇 256 | optimal_models = [] 257 | for index in range(8): 258 | #为每个簇选择最优回归预测模型 259 | cluster_index = np.argwhere(clu_labels==index) 260 | cluster_index = cluster_index[:, 0] 261 | cluster_data_x = train_x[cluster_index]#每个簇中样本的特征或者输入 262 | cluster_data_y = train_y[cluster_index]#每个簇中样本的目标属性或者输出 263 | print("1111", cluster_data_x, cluster_data_y) 264 | gaussian_model, gaussian_rmse = gaussian_prediction(cluster_data_x ,cluster_data_y) 265 | svr_model, svr_rmse = svr_prediction(cluster_data_x, cluster_data_y) 266 | rf_model, rf_rmse = rf_prediction(cluster_data_x, cluster_data_y) 267 | # linear_model, mlr_rmse = linear_prediction(cluster_data_x, cluster_data_y) 268 | lasso_model, lasso_rmse = lasso_regression(cluster_data_x, cluster_data_y) 269 | ridge_model, ridge_rmse = ridge_prediction(cluster_data_x, cluster_data_y) 270 | print("dddaff1ff", rf_model) 271 | models = ["gaussian_model", "svr_model", "random_forest_model","lasso_model", "ridge_model"] 272 | 273 | rmses = [gaussian_rmse, svr_rmse, rf_rmse, 274 | lasso_rmse, ridge_rmse] 275 | print("各模型的rmse为", rmses) 276 | print("1111111ddddd", rmses) 277 | optimal_cluster_model = models[rmses.index(min(rmses))] 278 | print("最优回归模型", optimal_cluster_model) 279 | print("111111", gaussian_model) 280 | # print(optimal_cluster_model==gaussian_model) 281 | import pickle 282 | from sklearn.externals import joblib 283 | from sklearn.preprocessing import MinMaxScaler 284 | 285 | mkpath = str(fold_count)+"model_for_custers/" 286 | # 调用函数 287 | mkdir(mkpath) 288 | if(optimal_cluster_model == "gaussian_model"): 289 | gaussian_model.fit(cluster_data_x,cluster_data_y) 290 | joblib.dump(gaussian_model, str(fold_count)+"model_for_custers/" + "cluster"+str(index) + "GPR" + ".model") 291 | elif(optimal_cluster_model == "svr_model"): 292 | svr_model.fit(cluster_data_x, cluster_data_y) 293 | joblib.dump(svr_model, str(fold_count)+"model_for_custers/" + "cluster"+str(index) + "SVR" + ".model") 294 | # elif(optimal_cluster_model=="mlr_model"): 295 | # linear_model.fit(cluster_data_x, cluster_data_y) 296 | # joblib.dump(linear_model, str(fold_count) + "model_for_custers/" + "cluster" + str(index) + "MLR" + ".model") 297 | elif (optimal_cluster_model == "lasso_model"): 298 | lasso_model.fit(cluster_data_x, cluster_data_y) 299 | joblib.dump(lasso_model, 300 | str(fold_count) + "model_for_custers/" + "cluster" + str(index) + "LR" + ".model") 301 | elif (optimal_cluster_model == "ridge_model"): 302 | ridge_model.fit(cluster_data_x, cluster_data_y) 303 | joblib.dump(ridge_model, 304 | str(fold_count) + "model_for_custers/" + "cluster" + str(index) + "RR" + ".model") 305 | else: 306 | rf_model.fit(cluster_data_x, cluster_data_y) 307 | joblib.dump(rf_model, str(fold_count)+"model_for_custers/" + "cluster"+str(index) + "RF" + ".model") 308 | optimal_models.append(optimal_cluster_model) 309 | print("all models have already save!") 310 | test_indice = 0 311 | y_test = [] 312 | for test_x_index in test_x: 313 | #判断测试集中每条样本属于哪个簇 314 | # min_distance = np.linalg.norm(test_x[0]-cluster_centers[0]) 315 | # # belongto_cluster = 0 316 | # for center_ in cluster_centers: 317 | # cluster_distance = np.linalg.norm(test_x_index, center_) 318 | # if(cluster_distance<=min_distance): 319 | # min_distance = cluster_distance 320 | # # belongto_cluster+=1 321 | 322 | distances = [] 323 | for center in cluster_centers: 324 | center_1 = np.array(center) 325 | test_x_index_1 = np.array(test_x_index) 326 | # print("簇中心", center) 327 | # print("测试样本", test_x_index) 328 | distances.append(np.linalg.norm(test_x_index_1- center_1)) 329 | min_cluster_index = distances.index(min(distances)) 330 | predict_model=optimal_models[min_cluster_index] 331 | if predict_model=="gaussian_model": 332 | clf = joblib.load(str(fold_count)+"model_for_custers/" + "cluster"+str(min_cluster_index) + "GPR" + ".model") 333 | # print("22222", target) 334 | print(clf.predict([test_x_index]), test_y[test_indice]) 335 | y_test.append(clf.predict([test_x_index])[0]) 336 | elif predict_model=="svr_model": 337 | clf = joblib.load(str(fold_count) + "model_for_custers/" + "cluster" + str(min_cluster_index) + "SVR" + ".model") 338 | # print("22222", target) 339 | print(clf.predict([test_x_index]), test_y[test_indice]) 340 | y_test.append(clf.predict([test_x_index])[0]) 341 | elif predict_model=="lasso_model": 342 | clf = joblib.load(str(fold_count) + "model_for_custers/" + "cluster" + str(min_cluster_index) + "LR" + ".model") 343 | # print("22222", target) 344 | print(clf.predict([test_x_index]), test_y[test_indice]) 345 | y_test.append(clf.predict([test_x_index])[0]) 346 | # elif predict_model == "mlr_model": 347 | # clf = joblib.load( 348 | # str(fold_count) + "model_for_custers/" + "cluster" + str(min_cluster_index) + "MLR" + ".model") 349 | # # print("22222", target) 350 | # print(clf.predict([test_x_index]), test_y[test_indice]) 351 | # y_test.append(clf.predict([test_x_index])[0]) 352 | elif predict_model == "ridge_model": 353 | clf = joblib.load( 354 | str(fold_count) + "model_for_custers/" + "cluster" + str(min_cluster_index) + "RR" + ".model") 355 | # print("22222", target) 356 | print(clf.predict([test_x_index]), test_y[test_indice]) 357 | y_test.append(clf.predict([test_x_index])[0]) 358 | else: 359 | clf = joblib.load(str(fold_count) + "model_for_custers/" + "cluster" + str(min_cluster_index) + "RF" + ".model") 360 | # print("22222", target) 361 | print(clf.predict([test_x_index]), test_y[test_indice]) 362 | y_test.append(clf.predict([test_x_index])[0]) 363 | test_indice+=1 364 | fold_count += 1 365 | all_pred_y.extend(y_test) 366 | rmse = np.sqrt(mean_squared_error(test_y, y_test)) 367 | ab_error = 0 368 | for i in range(len(test_y)): 369 | diff = test_y[i]-y_test[i] 370 | absolute_error = abs(diff/test_y[i]) 371 | ab_error += absolute_error 372 | mape = ab_error/len(test_y) 373 | rmse_sum += rmse 374 | mape_sum += mape 375 | rmse_all.append(rmse) 376 | mape_all.append(mape) 377 | # plw.show() 378 | print("模型预测值为", all_pred_y, "模型真实值为",normalize_dataY) 379 | df1_rmse = pd.Series(rmse_all) 380 | df2_mape = pd.Series(mape_all) 381 | print(df1_rmse.describe()) 382 | print(df2_mape.describe()) 383 | rmse = df1_rmse.describe()["min"] 384 | mape = df2_mape.describe()["min"] 385 | true_pred = list(zip(normalize_dataY, all_pred_y)) 386 | df = pd.DataFrame(true_pred, columns=["真实值", "预测值"]) 387 | df.to_excel("蠕变断裂寿命真实值和预测值.xlsx") 388 | df = pd.read_excel("蠕变断裂寿命真实值和预测值.xlsx") 389 | predicted_results = df.values 390 | mean_rmse = np.sqrt(mean_squared_error(predicted_results[:, 0], predicted_results[:, 1])) 391 | mean_mape = mape_function(predicted_results[:, 0], predicted_results[:, 1]) 392 | r2_score1 = r2_score(predicted_results[:, 0], predicted_results[:, 1]) 393 | print("模型的平均预测精度rmse为", rmse, "模型的平均预测精度mape为", mape, 394 | "r2分数为", r2_score1) 395 | 396 | 397 | 398 | -------------------------------------------------------------------------------- /代码/DCSA_analysis.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import pandas as pd 3 | from sklearn.preprocessing import MinMaxScaler, StandardScaler 4 | from sklearn.model_selection import LeaveOneOut, train_test_split 5 | from sklearn.model_selection import KFold 6 | from sklearn.metrics import mean_squared_error,r2_score 7 | import math 8 | 9 | def gaussian_model(): 10 | from sklearn.gaussian_process import GaussianProcessRegressor 11 | from sklearn.gaussian_process.kernels import RationalQuadratic, WhiteKernel, RBF 12 | from sklearn.gaussian_process.kernels import ConstantKernel as C 13 | # parameter = "C(1, (1e-4, 10000)) * RationalQuadratic(alpha=0.01, length_scale_bounds=(1e-5, 20))" 14 | parameter = ' gaussian_model ' 15 | # kernel_5 = C(1, (1e-4, 1)) * RationalQuadratic(alpha=0.1, length_scale_bounds=(0.01, 2000)) 16 | kernel = C(1, (0.1, 10)) * RationalQuadratic(alpha=0.01, length_scale_bounds=(0.1, 1500)) 17 | model = GaussianProcessRegressor(kernel=kernel, alpha=0.008, n_restarts_optimizer=20) 18 | return model, parameter 19 | 20 | 21 | def svr_model(): 22 | #SVR model 23 | from sklearn.svm import SVR 24 | parameter = ' svr_model ' 25 | model = SVR(kernel='rbf', C=1400, gamma='auto') 26 | return model, parameter 27 | 28 | 29 | def random_forest_model(): 30 | #random forest model 31 | from sklearn.ensemble import RandomForestRegressor 32 | parameter = ' RandomForest_model ' 33 | # model = RandomForestRegressor(n_estimators=15, max_depth=4, criterion='mae', bootstrap=True) 34 | model = RandomForestRegressor(n_estimators=15, max_depth=6, criterion='mae', bootstrap=True) 35 | return model, parameter 36 | 37 | 38 | def pre_progressing(original_data): 39 | #Normalization X: Max-Min normalization Y :log scale 40 | data = original_data[:, :-1] 41 | target = original_data[:, -1] 42 | normalize_data = MinMaxScaler().fit_transform(data) 43 | normalize_target = np.log(target) 44 | return normalize_data, normalize_target 45 | 46 | 47 | def linear_model(): 48 | from sklearn.linear_model import LinearRegression 49 | parameter = ' Linear_model ' 50 | model = LinearRegression() 51 | 52 | return model, parameter 53 | 54 | 55 | def lasso_regression(): 56 | from sklearn.linear_model import Ridge, Lasso 57 | parameter = 'Lasso_model' 58 | model = Lasso(alpha=0.5) #alpha = 0.1,,0.5,1.0 59 | return model, parameter 60 | 61 | def lasso_regression_dump(): 62 | from sklearn.linear_model import Ridge, Lasso 63 | parameter = 'Lasso_model' 64 | model = Lasso(alpha=0.01) #alpha = 0.1,,0.5,1.0 65 | return model, parameter 66 | 67 | 68 | def elastic_model(): 69 | from sklearn.linear_model import ElasticNet 70 | parameter = ' Elastic_model ' 71 | model = ElasticNet(alpha=1.0, l1_ratio=0.8) 72 | return model, parameter 73 | 74 | 75 | def ridge_model(): 76 | from sklearn.linear_model import Ridge 77 | parameter = ' Elastic_model ' 78 | model = Ridge(alpha=0.01)#0.5 79 | return model, parameter 80 | 81 | 82 | def network_model(): 83 | from keras.models import Sequential 84 | from keras.layers import Dense 85 | model = Sequential() 86 | model.add(Dense(37, input_dim=27, activation='relu')) 87 | model.add(Dense(1, activation='linear' )) 88 | model.compile(loss="MAE", optimizer='adam', metrics=['accuracy']) 89 | parameter = 'BPNN' 90 | return model, parameter 91 | 92 | 93 | def fitness_fuction(y_pred, y_true): 94 | return 1-abs(np.sum((y_pred-y_true)/y_true)/len(y_pred)) 95 | 96 | 97 | 98 | def mape_function(y_pred, y_true): 99 | return abs(np.sum((y_pred - y_true) / y_true) / len(y_pred)) 100 | 101 | 102 | def get_feature_importance(): 103 | from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressor 104 | df = pd.read_excel("data_files/多尺度样本_revision.xlsx") 105 | feature_name = [column for column in df][1:] 106 | print(feature_name) 107 | sample_data = df.values[:, 1:] # 多尺度数据集 108 | # sample_data = df.values[:, 1:23] 109 | print(sample_data) 110 | original_dataX = sample_data[:, :-1] 111 | train_dataX, train_dataY = pre_progressing(sample_data) 112 | k = 10 # or k=10 113 | kf = KFold(n_splits=k) 114 | rf = RandomForestRegressor() 115 | rf.fit(train_dataX, train_dataY) 116 | feature_impor_all_data = rf.feature_importances_ 117 | f_importances = np.zeros(27,) 118 | for train_index, test_index in kf.split(train_dataX): 119 | trainX, trainY = train_dataX[train_index], train_dataY[train_index] 120 | testX, testY = train_dataX[test_index], train_dataY[test_index] 121 | rf.fit(trainX, trainY) 122 | f_importances+=rf.feature_importances_ 123 | x_train, x_test, y_train, y_test = train_test_split( train_dataX, train_dataY, test_size=0.01, random_state=0) 124 | rf = RandomForestRegressor() 125 | gbr = GradientBoostingRegressor() 126 | rf.fit(x_train, y_train) 127 | 128 | print(rf.feature_importances_) 129 | importances = rf.feature_importances_ 130 | average_importance = f_importances/k 131 | indices = np.argsort(average_importance)[::-1] 132 | features = [] 133 | feature_importances = [] 134 | for f in range(train_dataX.shape[1]): 135 | features.append(feature_name[indices[f]]) 136 | feature_importances.append(average_importance[indices[f]]) 137 | print("%2d) %-*s %f" % (f + 1, 30, feature_name[indices[f]],average_importance[indices[f]])) 138 | # model1.fit(train_dataX, train_dataY) 139 | f_im = np.column_stack((features, feature_importances)) 140 | df = pd.DataFrame(f_im, columns=["特征名", "重要度"]) 141 | df.to_excel("feature_importance.xlsx") 142 | 143 | 144 | def run_validation_microdescriptor(): 145 | df = pd.read_excel("data_files/多尺度样本_revision.xlsx") 146 | feature_name = [column for column in df][1:] 147 | print(feature_name) 148 | sample_data = df.values[:, 1:] #多尺度数据集 149 | # sample_data = df.values[:, 1:23] 150 | print(sample_data) 151 | original_dataX = sample_data[:, :-1] 152 | train_dataX, train_dataY = pre_progressing(sample_data) 153 | train_dataX = train_dataX[:, 0:23] 154 | k = 10 # or k=10 155 | kf = KFold(n_splits=k) 156 | model, parameter = lasso_regression_dump() #svr_model() 157 | sum_rmse = 0 158 | sum_mape = 0 159 | y_pred = [] 160 | rmse_all = [] 161 | mape_all = [] 162 | for train_index, test_index in kf.split(train_dataX): 163 | trainX, trainY = train_dataX[train_index], train_dataY[train_index] 164 | testX, testY = train_dataX[test_index], train_dataY[test_index] 165 | model.fit(trainX, trainY) 166 | predictedY = model.predict(testX) 167 | model_i_mape = mape_function(predictedY, testY) 168 | sum_mape += model_i_mape 169 | y_pred.extend(predictedY) 170 | model_i_rmse = mean_squared_error(testY, model.predict(testX)) 171 | sum_rmse += model_i_rmse 172 | rmse_all.append(model_i_rmse) 173 | # fitness_all.append(fitness_fuction(predictedY, testY)) 174 | mape_all.append(model_i_mape) 175 | print("预测精度mape为", sum_mape / k, "标准差为", np.std(mape_all)) 176 | print("预测精度rmse为", sum_rmse / k, "标准差为", np.std(rmse_all)) 177 | true_pred = np.column_stack((train_dataY, y_pred)) 178 | df1 = pd.DataFrame(true_pred, columns=["真实值", "预测值"]) 179 | # df1.to_excel("micro_descriptors.xlsx") 180 | df1.to_excel("micro_descriptors.xlsx") 181 | 182 | 183 | def true_pred(): 184 | df = pd.read_excel("data_files/Lasso_results.xlsx") 185 | sample_data = df.values 186 | print(sample_data) 187 | # print(sample_data) 188 | print(np.sqrt(mean_squared_error(sample_data[:, -4], sample_data[:,-3]))) 189 | print(mape_function(sample_data[:, -4], sample_data[:, -3])) 190 | print(r2_score(sample_data[:, -4], sample_data[:, -3])) 191 | 192 | 193 | def run_comparitive_experiments(): 194 | #与DCSA相比较的6种模型SVR、GPR、RF、MLR、Lasso和Ridge 195 | df = pd.read_excel("data_files/多尺度样本_revision.xlsx") 196 | feature_name = [column for column in df][1:] 197 | print(feature_name) 198 | sample_data = df.values[:, 1:] 199 | print(sample_data) 200 | original_dataX = sample_data[:, :-1] 201 | train_dataX, train_dataY = pre_progressing(sample_data) 202 | k = 10 # or k=10 203 | kf = KFold(n_splits=k) 204 | model1, parameter1 = svr_model() 205 | model2, parameter2 = gaussian_model() 206 | model3, parameter3 = random_forest_model() 207 | # model4, parameter4 = linear_model() 208 | model4, parameter4 = lasso_regression() 209 | model5, parameter5 = ridge_model() 210 | # model7, parameter7 = network_model() 211 | predicted_models = [model1, model2, model3, model4, model5] 212 | model_name = ["SVR", "GPR", "RF", "Lasso", "Ridge"] 213 | 214 | model_rmse = [] 215 | model_rmse_dev = [] 216 | model_mape = [] 217 | model_mape_dev = [] 218 | model_r2 = [] 219 | model_r2_dev = [] 220 | model_index = 0 221 | for model_i in predicted_models: 222 | sum_rmse = 0 223 | sum_mape = 0 224 | sum_r2 = 0 225 | y_pred = [] 226 | mape_all = [] 227 | rmse_all = [] 228 | r2_all = [] 229 | for train_index, test_index in kf.split(train_dataX): 230 | trainX, trainY = train_dataX[train_index], train_dataY[train_index] 231 | testX, testY = train_dataX[test_index], train_dataY[test_index] 232 | model = model_i 233 | model.fit(trainX, trainY) 234 | # print(testY, model.predict(testX)) 235 | predictedY = model.predict(testX) 236 | # predict_Y.append(model.predict(testX)) 237 | model_i_mape = mape_function(predictedY, testY) 238 | sum_mape += model_i_mape 239 | model_i_r2 = r2_score(predictedY, testY) 240 | r2_all.append(model_i_r2) 241 | sum_r2 += model_i_r2 242 | y_pred.extend(predictedY) 243 | model_i_rmse = mean_squared_error(testY, model.predict(testX)) 244 | rmse_all.append(model_i_rmse) 245 | # fitness_all.append(fitness_fuction(predictedY, testY)) 246 | mape_all.append(model_i_mape) 247 | # cross_score += r2_score(testY, predictedY) 248 | sum_rmse += model_i_rmse 249 | rmse_dev = np.std(rmse_all) 250 | mape_dev = np.std(mape_all) 251 | r2_dev = np.std(r2_all) 252 | model_mape_dev.append(mape_dev) 253 | model_rmse_dev.append(rmse_dev) 254 | model_r2_dev.append(r2_dev) 255 | print(y_pred) 256 | print("预测精度mape为", sum_mape/k) 257 | print("预测精度rmse为", sum_rmse/k) 258 | model_mape.append(sum_mape/k) 259 | model_rmse.append(sum_rmse/k) 260 | model_r2.append(sum_r2/k) 261 | true_pred = np.column_stack((train_dataY, y_pred)) 262 | predict_data = np.column_stack((original_dataX, true_pred)) 263 | predict_data1 = np.column_stack((predict_data, np.exp(train_dataY))) 264 | predict_data2 = np.column_stack((predict_data1, np.exp(y_pred))) 265 | df1 = pd.DataFrame(predict_data2, columns=feature_name[:-1] + ["真实值", "预测值", 266 | "还原后的真实值", "还原后的预测值"]) 267 | df1.to_excel("Comparative_results/" + model_name[model_index] + "_results.xlsx") 268 | model_index = model_index + 1 269 | model_results = np.column_stack((model_name, model_rmse)) 270 | model_re1 = np.column_stack((model_results, model_rmse_dev)) 271 | model_re2 = np.column_stack((model_re1, model_mape)) 272 | model_re3 = np.column_stack((model_re2, model_mape_dev)) 273 | model_re4 = np.column_stack((model_re3, model_r2)) 274 | model_re5 = np.column_stack((model_re4, model_r2_dev)) 275 | df2 = pd.DataFrame(model_re5, columns=["预测模型","rmse", "rmse_dev", "mape", 276 | "mape_dev", "r2", "r2_dev"]) 277 | df2.to_excel("Comparative_results/Comparative_models_results.xlsx") 278 | 279 | 280 | def runDCSA(): 281 | #DCSA model results 282 | for index in range(0, 8): 283 | df = pd.read_excel("data_files/multi-factors_clusters_912.xls", 284 | sheetname="cluster_" + str(index)) 285 | feature_name = [column for column in df][1:] 286 | print(feature_name) 287 | cluster_data = df.values[:, 1:] # 去除第一列 288 | print(cluster_data) 289 | original_dataX = cluster_data[:, :-1] 290 | print(original_dataX.shape) 291 | df_original = pd.read_excel("data_files/多尺度样本_revision.xlsx") 292 | original_data = df_original.values[:, 1:-1] 293 | # original_data = df_original.values[:, 1:-1] 294 | print(original_data.shape) 295 | # original_min = np.min(original_data, axis=0) 296 | # original_max = np.max(original_data, axis=0) 297 | # train_dataX = [(row-original_min)/(original_max-original_min) 298 | # for row in original_dataX] 299 | # train_dataX = np.array(train_dataX) 300 | scaler = MinMaxScaler() 301 | scaler.fit(original_data)#用全部266条数据的最大与最小值对每个簇上的特征进行最大最小归一化 302 | train_dataX =scaler.transform(original_dataX) 303 | print("归一化后的值", train_dataX) 304 | train_dataY = np.log(cluster_data[:, -1]) 305 | # index1 = [i for i in range(len(train_dataX))] 306 | # random.shuffle(index1) 307 | # train_dataX = train_dataX[index1] 308 | # train_dataY = train_dataY[index1] 309 | # Loo = LeaveOneOut() 310 | k = 10 # or k=10 311 | kf = KFold(n_splits=k) 312 | # model.fit(train_dataX, train_dataY) 313 | # print("ssddd", train_dataY, model.predict(train_dataX)) 314 | model1, parameter1 = svr_model() 315 | model2, parameter2 = gaussian_model() 316 | model3, parameter3 = random_forest_model() 317 | 318 | model4, parameter4 = lasso_regression() 319 | model5, parameter5 = ridge_model() 320 | model6, parameter6 = linear_model() 321 | # model7, parameter7 = network_model() 322 | predicted_models = [model1, model2, model3, model4, model5, model6] 323 | model_name = ["SVR", "GPR", "RF", "Lasso", "Ridge", "MLR"] 324 | model_fitness = [] 325 | model_index = 0 326 | model_rmse = [] 327 | model_rmse_dev = [] # std of rmse for each model 328 | model_fitness_dev = [] # std of fitness for each model 329 | model_mape = [] 330 | model_mape_dev = [] 331 | model_fitness_rms = [] 332 | for model_i in predicted_models: 333 | predict_Y = [] 334 | sum_rmse = 0 335 | # cross_score = 0 336 | y_pred = [] 337 | sum_fitness = 0 338 | sum_mape = 0 339 | rmse_all = [] 340 | fitness_all = [] 341 | mape_all = [] 342 | sum_fitness_rms = 0 343 | for train_index, test_index in kf.split(train_dataX): 344 | trainX, trainY = train_dataX[train_index], train_dataY[train_index] 345 | testX, testY = train_dataX[test_index], train_dataY[test_index] 346 | model = model_i 347 | model.fit(trainX, trainY) 348 | # print(testY, model.predict(testX)) 349 | predictedY = model.predict(testX) 350 | # predict_Y.append(model.predict(testX)) 351 | sum_fitness += fitness_fuction(predictedY, testY) 352 | sum_fitness_rms += fitness_fuction(predictedY, testY) ** 2 353 | model_i_mape = mape_function(predictedY, testY) 354 | sum_mape += model_i_mape 355 | y_pred.extend(predictedY) 356 | model_i_rmse = mean_squared_error(testY, model.predict(testX)) 357 | rmse_all.append(model_i_rmse) 358 | fitness_all.append(fitness_fuction(predictedY, testY)) 359 | mape_all.append(model_i_mape) 360 | # cross_score += r2_score(testY, predictedY) 361 | sum_rmse += model_i_rmse 362 | print(y_pred) 363 | # y_pred = np.array(y_pred) 364 | # train_dataY = np.array(train_dataY) 365 | print("预测精度rmse为", sum_rmse / k) 366 | print("预测精度fitness为", sum_fitness / k) 367 | print("预测精度mape为", sum_mape / k) 368 | fitness_rms = np.sqrt(sum_fitness_rms / k) 369 | print("预测精度fitness均方根", fitness_rms) 370 | model_fitness_rms.append(fitness_rms) 371 | model_fitness.append(sum_fitness / k) 372 | model_rmse.append(sum_rmse / k) 373 | model_mape.append(sum_mape / k) 374 | rmse_dev = np.std(rmse_all) 375 | fitness_dev = np.std(fitness_all) 376 | mape_dev = np.std(mape_all) 377 | model_mape_dev.append(mape_dev) 378 | model_rmse_dev.append(rmse_dev) 379 | model_fitness_dev.append(fitness_dev) 380 | true_pred = np.column_stack((train_dataY, y_pred)) 381 | predict_data = np.column_stack((original_dataX, true_pred)) 382 | predict_data1 = np.column_stack((predict_data, np.exp(train_dataY))) 383 | predict_data2 = np.column_stack((predict_data1, np.exp(y_pred))) 384 | df1 = pd.DataFrame(predict_data2, columns=feature_name[:-1] + ["真实值", "预测值", 385 | "还原后的真实值", "还原后的预测值"]) 386 | df1.to_excel("predicted_results/cluster_" + str(index + 1) + model_name[model_index] + "_results.xlsx") 387 | model_index = model_index + 1 388 | model_results = np.column_stack((model_name, model_fitness)) 389 | model_re1 = np.column_stack((model_results, model_fitness_dev)) 390 | model_re2 = np.column_stack((model_re1, model_fitness_rms)) 391 | model_re3 = np.column_stack((model_re2, model_rmse)) 392 | model_re4 = np.column_stack((model_re3, model_rmse_dev)) 393 | model_re5 = np.column_stack((model_re4, model_mape)) 394 | model_re6 = np.column_stack((model_re5, model_mape_dev)) 395 | df2 = pd.DataFrame(model_re6, columns=["预测模型", "fitness", "fitness_dev", "fitness_rms", 396 | "rmse", "rmse_dev", "mape", "mape_dev"]) 397 | df2.to_excel("predicted_results/cluster_" + str(index + 1) + "_model_results.xlsx") 398 | # print("预测精度为fitness", 1-abs(np.sum((y_pred-train_dataY)/train_dataY)/len(train_dataX))) 399 | # predicted_result = np.column_stack((train_dataX, train_dataY)) 400 | # predict_results = np.column_stack((predicted_result, predict_Y)) 401 | # df = pd.DataFrame(predict_results) 402 | # df.to_excel("cluster3_results_36.xlsx") 403 | 404 | 405 | if __name__ == "__main__": 406 | # runDCSA() 407 | # run_comparitive_experiments() 408 | true_pred() 409 | run_validation_microdescriptor() 410 | # get_feature_importance() 411 | -------------------------------------------------------------------------------- /DCSA_analysis.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import pandas as pd 3 | from sklearn.preprocessing import MinMaxScaler, StandardScaler 4 | from sklearn.model_selection import LeaveOneOut, train_test_split 5 | from sklearn.model_selection import KFold 6 | from sklearn.metrics import mean_squared_error,r2_score 7 | import math 8 | 9 | def gaussian_model(): 10 | from sklearn.gaussian_process import GaussianProcessRegressor 11 | from sklearn.gaussian_process.kernels import RationalQuadratic, WhiteKernel, RBF 12 | from sklearn.gaussian_process.kernels import ConstantKernel as C 13 | # parameter = "C(1, (1e-4, 10000)) * RationalQuadratic(alpha=0.01, length_scale_bounds=(1e-5, 20))" 14 | parameter = ' gaussian_model ' 15 | # kernel_5 = C(1, (1e-4, 1)) * RationalQuadratic(alpha=0.1, length_scale_bounds=(0.01, 2000)) 16 | kernel = C(1, (0.1, 10)) * RationalQuadratic(alpha=0.01, length_scale_bounds=(0.1, 1500)) 17 | model = GaussianProcessRegressor(kernel=kernel, alpha=0.008, n_restarts_optimizer=20) 18 | return model, parameter 19 | 20 | 21 | def svr_model(): 22 | #SVR model 23 | from sklearn.svm import SVR 24 | parameter = ' svr_model ' 25 | model = SVR(kernel='rbf', C=1400, gamma='auto') 26 | return model, parameter 27 | 28 | 29 | def random_forest_model(): 30 | #random forest model 31 | from sklearn.ensemble import RandomForestRegressor 32 | parameter = ' RandomForest_model ' 33 | # model = RandomForestRegressor(n_estimators=15, max_depth=4, criterion='mae', bootstrap=True) 34 | model = RandomForestRegressor(n_estimators=15, max_depth=6, criterion='mae', bootstrap=True) 35 | return model, parameter 36 | 37 | 38 | def pre_progressing(original_data): 39 | #Normalization X: Max-Min normalization Y :log scale 40 | data = original_data[:, :-1] 41 | target = original_data[:, -1] 42 | normalize_data = MinMaxScaler().fit_transform(data) 43 | normalize_target = np.log(target) 44 | return normalize_data, normalize_target 45 | 46 | 47 | def linear_model(): 48 | from sklearn.linear_model import LinearRegression 49 | parameter = ' Linear_model ' 50 | model = LinearRegression() 51 | 52 | return model, parameter 53 | 54 | 55 | def lasso_regression(): 56 | from sklearn.linear_model import Ridge, Lasso 57 | parameter = 'Lasso_model' 58 | model = Lasso(alpha=0.5) #alpha = 0.1,,0.5,1.0 59 | return model, parameter 60 | 61 | def lasso_regression_dump(): 62 | from sklearn.linear_model import Ridge, Lasso 63 | parameter = 'Lasso_model' 64 | model = Lasso(alpha=0.01) #alpha = 0.1,,0.5,1.0 65 | return model, parameter 66 | 67 | 68 | def elastic_model(): 69 | from sklearn.linear_model import ElasticNet 70 | parameter = ' Elastic_model ' 71 | model = ElasticNet(alpha=1.0, l1_ratio=0.8) 72 | return model, parameter 73 | 74 | 75 | def ridge_model(): 76 | from sklearn.linear_model import Ridge 77 | parameter = ' Elastic_model ' 78 | model = Ridge(alpha=0.01)#0.5 79 | return model, parameter 80 | 81 | 82 | def network_model(): 83 | from keras.models import Sequential 84 | from keras.layers import Dense 85 | model = Sequential() 86 | model.add(Dense(37, input_dim=27, activation='relu')) 87 | model.add(Dense(1, activation='linear' )) 88 | model.compile(loss="MAE", optimizer='adam', metrics=['accuracy']) 89 | parameter = 'BPNN' 90 | return model, parameter 91 | 92 | 93 | def fitness_fuction(y_pred, y_true): 94 | return 1-abs(np.sum((y_pred-y_true)/y_true)/len(y_pred)) 95 | 96 | 97 | 98 | def mape_function(y_pred, y_true): 99 | return abs(np.sum((y_pred - y_true) / y_true) / len(y_pred)) 100 | 101 | 102 | def get_feature_importance(): 103 | from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressor 104 | df = pd.read_excel("data_files/多尺度样本_revision.xlsx") 105 | feature_name = [column for column in df][1:] 106 | print(feature_name) 107 | sample_data = df.values[:, 1:] # 多尺度数据集 108 | # sample_data = df.values[:, 1:23] 109 | print(sample_data) 110 | original_dataX = sample_data[:, :-1] 111 | train_dataX, train_dataY = pre_progressing(sample_data) 112 | k = 10 # or k=10 113 | kf = KFold(n_splits=k) 114 | rf = RandomForestRegressor() 115 | rf.fit(train_dataX, train_dataY) 116 | feature_impor_all_data = rf.feature_importances_ 117 | f_importances = np.zeros(27,) 118 | for train_index, test_index in kf.split(train_dataX): 119 | trainX, trainY = train_dataX[train_index], train_dataY[train_index] 120 | testX, testY = train_dataX[test_index], train_dataY[test_index] 121 | rf.fit(trainX, trainY) 122 | f_importances+=rf.feature_importances_ 123 | x_train, x_test, y_train, y_test = train_test_split( train_dataX, train_dataY, test_size=0.01, random_state=0) 124 | rf = RandomForestRegressor() 125 | gbr = GradientBoostingRegressor() 126 | rf.fit(x_train, y_train) 127 | 128 | print(rf.feature_importances_) 129 | importances = rf.feature_importances_ 130 | average_importance = f_importances/k 131 | indices = np.argsort(average_importance)[::-1] 132 | features = [] 133 | feature_importances = [] 134 | for f in range(train_dataX.shape[1]): 135 | features.append(feature_name[indices[f]]) 136 | feature_importances.append(average_importance[indices[f]]) 137 | print("%2d) %-*s %f" % (f + 1, 30, feature_name[indices[f]],average_importance[indices[f]])) 138 | # model1.fit(train_dataX, train_dataY) 139 | f_im = np.column_stack((features, feature_importances)) 140 | df = pd.DataFrame(f_im, columns=["特征名", "重要度"]) 141 | df.to_excel("feature_importance.xlsx") 142 | 143 | 144 | def run_validation_microdescriptor(): 145 | df = pd.read_excel("data_files/多尺度样本_revision.xlsx") 146 | feature_name = [column for column in df][1:] 147 | print(feature_name) 148 | sample_data = df.values[:, 1:] #多尺度数据集 149 | # sample_data = df.values[:, 1:23] 150 | print(sample_data) 151 | original_dataX = sample_data[:, :-1] 152 | train_dataX, train_dataY = pre_progressing(sample_data) 153 | train_dataX = train_dataX[:, 0:23] 154 | k = 10 # or k=10 155 | kf = KFold(n_splits=k) 156 | model, parameter = lasso_regression_dump() #svr_model() 157 | sum_rmse = 0 158 | sum_mape = 0 159 | y_pred = [] 160 | rmse_all = [] 161 | mape_all = [] 162 | for train_index, test_index in kf.split(train_dataX): 163 | trainX, trainY = train_dataX[train_index], train_dataY[train_index] 164 | testX, testY = train_dataX[test_index], train_dataY[test_index] 165 | model.fit(trainX, trainY) 166 | predictedY = model.predict(testX) 167 | model_i_mape = mape_function(predictedY, testY) 168 | sum_mape += model_i_mape 169 | y_pred.extend(predictedY) 170 | model_i_rmse = mean_squared_error(testY, model.predict(testX)) 171 | sum_rmse += model_i_rmse 172 | rmse_all.append(model_i_rmse) 173 | # fitness_all.append(fitness_fuction(predictedY, testY)) 174 | mape_all.append(model_i_mape) 175 | print("预测精度mape为", sum_mape / k, "标准差为", np.std(mape_all)) 176 | print("预测精度rmse为", sum_rmse / k, "标准差为", np.std(rmse_all)) 177 | true_pred = np.column_stack((train_dataY, y_pred)) 178 | df1 = pd.DataFrame(true_pred, columns=["真实值", "预测值"]) 179 | # df1.to_excel("micro_descriptors.xlsx") 180 | df1.to_excel("micro_descriptors.xlsx") 181 | 182 | 183 | def true_pred(): 184 | df = pd.read_excel("data_files/Lasso_results.xlsx") 185 | sample_data = df.values 186 | print(sample_data) 187 | # print(sample_data) 188 | print(np.sqrt(mean_squared_error(sample_data[:, -4], sample_data[:,-3]))) 189 | print(mape_function(sample_data[:, -4], sample_data[:, -3])) 190 | print(r2_score(sample_data[:, -4], sample_data[:, -3])) 191 | 192 | 193 | def run_comparitive_experiments(): 194 | #与DCSA相比较的6种模型SVR、GPR、RF、MLR、Lasso和Ridge 195 | df = pd.read_excel("data_files/多尺度样本_revision.xlsx") 196 | feature_name = [column for column in df][1:] 197 | print(feature_name) 198 | sample_data = df.values[:, 1:] 199 | print(sample_data) 200 | original_dataX = sample_data[:, :-1] 201 | train_dataX, train_dataY = pre_progressing(sample_data) 202 | k = 10 # or k=10 203 | kf = KFold(n_splits=k) 204 | model1, parameter1 = svr_model() 205 | model2, parameter2 = gaussian_model() 206 | model3, parameter3 = random_forest_model() 207 | # model4, parameter4 = linear_model() 208 | model4, parameter4 = lasso_regression() 209 | model5, parameter5 = ridge_model() 210 | # model7, parameter7 = network_model() 211 | predicted_models = [model1, model2, model3, model4, model5] 212 | model_name = ["SVR", "GPR", "RF", "Lasso", "Ridge"] 213 | 214 | model_rmse = [] 215 | model_rmse_dev = [] 216 | model_mape = [] 217 | model_mape_dev = [] 218 | model_r2 = [] 219 | model_r2_dev = [] 220 | model_index = 0 221 | for model_i in predicted_models: 222 | sum_rmse = 0 223 | sum_mape = 0 224 | sum_r2 = 0 225 | y_pred = [] 226 | mape_all = [] 227 | rmse_all = [] 228 | r2_all = [] 229 | for train_index, test_index in kf.split(train_dataX): 230 | trainX, trainY = train_dataX[train_index], train_dataY[train_index] 231 | testX, testY = train_dataX[test_index], train_dataY[test_index] 232 | model = model_i 233 | model.fit(trainX, trainY) 234 | # print(testY, model.predict(testX)) 235 | predictedY = model.predict(testX) 236 | # predict_Y.append(model.predict(testX)) 237 | model_i_mape = mape_function(predictedY, testY) 238 | sum_mape += model_i_mape 239 | model_i_r2 = r2_score(predictedY, testY) 240 | r2_all.append(model_i_r2) 241 | sum_r2 += model_i_r2 242 | y_pred.extend(predictedY) 243 | model_i_rmse = mean_squared_error(testY, model.predict(testX)) 244 | rmse_all.append(model_i_rmse) 245 | # fitness_all.append(fitness_fuction(predictedY, testY)) 246 | mape_all.append(model_i_mape) 247 | # cross_score += r2_score(testY, predictedY) 248 | sum_rmse += model_i_rmse 249 | rmse_dev = np.std(rmse_all) 250 | mape_dev = np.std(mape_all) 251 | r2_dev = np.std(r2_all) 252 | model_mape_dev.append(mape_dev) 253 | model_rmse_dev.append(rmse_dev) 254 | model_r2_dev.append(r2_dev) 255 | print(y_pred) 256 | print("预测精度mape为", sum_mape/k) 257 | print("预测精度rmse为", sum_rmse/k) 258 | model_mape.append(sum_mape/k) 259 | model_rmse.append(sum_rmse/k) 260 | model_r2.append(sum_r2/k) 261 | true_pred = np.column_stack((train_dataY, y_pred)) 262 | predict_data = np.column_stack((original_dataX, true_pred)) 263 | predict_data1 = np.column_stack((predict_data, np.exp(train_dataY))) 264 | predict_data2 = np.column_stack((predict_data1, np.exp(y_pred))) 265 | df1 = pd.DataFrame(predict_data2, columns=feature_name[:-1] + ["真实值", "预测值", 266 | "还原后的真实值", "还原后的预测值"]) 267 | df1.to_excel("Comparative_results/" + model_name[model_index] + "_results.xlsx") 268 | model_index = model_index + 1 269 | model_results = np.column_stack((model_name, model_rmse)) 270 | model_re1 = np.column_stack((model_results, model_rmse_dev)) 271 | model_re2 = np.column_stack((model_re1, model_mape)) 272 | model_re3 = np.column_stack((model_re2, model_mape_dev)) 273 | model_re4 = np.column_stack((model_re3, model_r2)) 274 | model_re5 = np.column_stack((model_re4, model_r2_dev)) 275 | df2 = pd.DataFrame(model_re5, columns=["预测模型","rmse", "rmse_dev", "mape", 276 | "mape_dev", "r2", "r2_dev"]) 277 | df2.to_excel("Comparative_results/Comparative_models_results.xlsx") 278 | 279 | 280 | def runDCSA(): 281 | #DCSA model results 282 | for index in range(0, 8): 283 | df = pd.read_excel("data_files/multi-factors_clusters_912.xls", 284 | sheetname="cluster_" + str(index)) 285 | feature_name = [column for column in df][1:] 286 | print(feature_name) 287 | cluster_data = df.values[:, 1:] # 去除第一列 288 | print(cluster_data) 289 | original_dataX = cluster_data[:, :-1] 290 | print(original_dataX.shape) 291 | df_original = pd.read_excel("data_files/多尺度样本_revision.xlsx") 292 | original_data = df_original.values[:, 1:-1] 293 | # original_data = df_original.values[:, 1:-1] 294 | print(original_data.shape) 295 | # original_min = np.min(original_data, axis=0) 296 | # original_max = np.max(original_data, axis=0) 297 | # train_dataX = [(row-original_min)/(original_max-original_min) 298 | # for row in original_dataX] 299 | # train_dataX = np.array(train_dataX) 300 | scaler = MinMaxScaler() 301 | scaler.fit(original_data)#用全部266条数据的最大与最小值对每个簇上的特征进行最大最小归一化 302 | train_dataX =scaler.transform(original_dataX) 303 | print("归一化后的值", train_dataX) 304 | train_dataY = np.log(cluster_data[:, -1]) 305 | # index1 = [i for i in range(len(train_dataX))] 306 | # random.shuffle(index1) 307 | # train_dataX = train_dataX[index1] 308 | # train_dataY = train_dataY[index1] 309 | # Loo = LeaveOneOut() 310 | k = 10 # or k=10 311 | kf = KFold(n_splits=k) 312 | # model.fit(train_dataX, train_dataY) 313 | # print("ssddd", train_dataY, model.predict(train_dataX)) 314 | model1, parameter1 = svr_model() 315 | model2, parameter2 = gaussian_model() 316 | model3, parameter3 = random_forest_model() 317 | 318 | model4, parameter4 = lasso_regression() 319 | model5, parameter5 = ridge_model() 320 | model6, parameter6 = linear_model() 321 | # model7, parameter7 = network_model() 322 | predicted_models = [model1, model2, model3, model4, model5, model6] 323 | model_name = ["SVR", "GPR", "RF", "Lasso", "Ridge", "MLR"] 324 | model_fitness = [] 325 | model_index = 0 326 | model_rmse = [] 327 | model_rmse_dev = [] # std of rmse for each model 328 | model_fitness_dev = [] # std of fitness for each model 329 | model_mape = [] 330 | model_mape_dev = [] 331 | model_fitness_rms = [] 332 | for model_i in predicted_models: 333 | predict_Y = [] 334 | sum_rmse = 0 335 | # cross_score = 0 336 | y_pred = [] 337 | sum_fitness = 0 338 | sum_mape = 0 339 | rmse_all = [] 340 | fitness_all = [] 341 | mape_all = [] 342 | sum_fitness_rms = 0 343 | for train_index, test_index in kf.split(train_dataX): 344 | trainX, trainY = train_dataX[train_index], train_dataY[train_index] 345 | testX, testY = train_dataX[test_index], train_dataY[test_index] 346 | model = model_i 347 | model.fit(trainX, trainY) 348 | # print(testY, model.predict(testX)) 349 | predictedY = model.predict(testX) 350 | # predict_Y.append(model.predict(testX)) 351 | sum_fitness += fitness_fuction(predictedY, testY) 352 | sum_fitness_rms += fitness_fuction(predictedY, testY) ** 2 353 | model_i_mape = mape_function(predictedY, testY) 354 | sum_mape += model_i_mape 355 | y_pred.extend(predictedY) 356 | model_i_rmse = mean_squared_error(testY, model.predict(testX)) 357 | rmse_all.append(model_i_rmse) 358 | fitness_all.append(fitness_fuction(predictedY, testY)) 359 | mape_all.append(model_i_mape) 360 | # cross_score += r2_score(testY, predictedY) 361 | sum_rmse += model_i_rmse 362 | print(y_pred) 363 | # y_pred = np.array(y_pred) 364 | # train_dataY = np.array(train_dataY) 365 | print("预测精度rmse为", sum_rmse / k) 366 | print("预测精度fitness为", sum_fitness / k) 367 | print("预测精度mape为", sum_mape / k) 368 | fitness_rms = np.sqrt(sum_fitness_rms / k) 369 | print("预测精度fitness均方根", fitness_rms) 370 | model_fitness_rms.append(fitness_rms) 371 | model_fitness.append(sum_fitness / k) 372 | model_rmse.append(sum_rmse / k) 373 | model_mape.append(sum_mape / k) 374 | rmse_dev = np.std(rmse_all) 375 | fitness_dev = np.std(fitness_all) 376 | mape_dev = np.std(mape_all) 377 | model_mape_dev.append(mape_dev) 378 | model_rmse_dev.append(rmse_dev) 379 | model_fitness_dev.append(fitness_dev) 380 | true_pred = np.column_stack((train_dataY, y_pred)) 381 | predict_data = np.column_stack((original_dataX, true_pred)) 382 | predict_data1 = np.column_stack((predict_data, np.exp(train_dataY))) 383 | predict_data2 = np.column_stack((predict_data1, np.exp(y_pred))) 384 | df1 = pd.DataFrame(predict_data2, columns=feature_name[:-1] + ["真实值", "预测值", 385 | "还原后的真实值", "还原后的预测值"]) 386 | df1.to_excel("predicted_results/cluster_" + str(index + 1) + model_name[model_index] + "_results.xlsx") 387 | model_index = model_index + 1 388 | model_results = np.column_stack((model_name, model_fitness)) 389 | model_re1 = np.column_stack((model_results, model_fitness_dev)) 390 | model_re2 = np.column_stack((model_re1, model_fitness_rms)) 391 | model_re3 = np.column_stack((model_re2, model_rmse)) 392 | model_re4 = np.column_stack((model_re3, model_rmse_dev)) 393 | model_re5 = np.column_stack((model_re4, model_mape)) 394 | model_re6 = np.column_stack((model_re5, model_mape_dev)) 395 | df2 = pd.DataFrame(model_re6, columns=["预测模型", "fitness", "fitness_dev", "fitness_rms", 396 | "rmse", "rmse_dev", "mape", "mape_dev"]) 397 | df2.to_excel("predicted_results/cluster_" + str(index + 1) + "_model_results.xlsx") 398 | # print("预测精度为fitness", 1-abs(np.sum((y_pred-train_dataY)/train_dataY)/len(train_dataX))) 399 | # predicted_result = np.column_stack((train_dataX, train_dataY)) 400 | # predict_results = np.column_stack((predicted_result, predict_Y)) 401 | # df = pd.DataFrame(predict_results) 402 | # df.to_excel("cluster3_results_36.xlsx") 403 | 404 | 405 | if __name__ == "__main__": 406 | # runDCSA() 407 | # run_comparitive_experiments() 408 | true_pred() 409 | run_validation_microdescriptor() 410 | # get_feature_importance() 411 | --------------------------------------------------------------------------------