目录

MATLAB版本SISSO

misaraty 更新 | 2025-12-20
前言

Sure Independence Screening and Sparsifying Operator (SISSO)是一款基于压缩感知理论的符号回归方法,由上海大学欧阳润海教授参与开发和维护,其核心思想是通过Sure Independence Screening (SIS)+Sparsifying Operator (SO)策略,在高维特征空间中高效筛选解析模型。

本文基于SISSORegressor_MATLAB进行了适度修改,发布了mSISSO_MATLAB

原版SISSO

  • Fortran实现的SISSO官方版本,功能最为完整。

MATLAB版本SISSO

mSISSO_MATLAB_v1

  • 基于SISSORegressor_MATLAB

  • 将原始多文件结构整合为单个.m文件,命名为mSISSO_MATLAB_v1.m。保留了SISSO的核心思想与基本流程。

  • 运行结果:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
Loaded data_v4.csv: 3624 samples, 8 base features.
Generated descriptor library: 3624 samples, 28747 features.
Split: train=2537, val=544, test=543
Searching for models up to 3 dimensions, considering 26 new features per iteration.
          RMSE            Model
1D:	0.320931	0.599 - 0.227 ((χ_X^2)/((χ_B'^(1/4))+eps)) 
2D:	0.197306	0.256 - 0.232 ((χ_X^2)/((χ_B'^(1/4))+eps)) + 0.448 (χ_A+χ_B''+(-r_A)) 
3D:	0.178237	0.065 - 0.232 ((χ_X^2)/((χ_B'^(1/4))+eps)) + 0.443 (χ_A+χ_B''+(-r_A)) + 0.133 ((1/(r_B'+eps))-log(r_B''+eps)) 
 

=== Metrics (Model Dim = 3) ===
Train: MAE=  0.1212, RMSE=  0.1782, R2=  0.9455
Val  : MAE=  0.1228, RMSE=  0.1688, R2=  0.9536
Test : MAE=  0.1225, RMSE=  0.1613, R2=  0.9540

mSISSO_MATLAB_v2

  • 同样采用单个.m文件的形式。

  • 与v1的共同点:对输入数据进行标准化处理(对每一列特征执行mean/scale标准化);采用SIS进行候选特征筛选;采用SO完成稀疏模型构建。

  • 相比v1的主要改进:在描述符构造层面进行了扩展,引入更灵活、稳健的特征生成方式;增加了Train/Validation/Test数据划分流程;明确输出R2、MAE、RMSE等回归评价指标,用于模型泛化性能评估。

Python版本SISSO

pysisso

tutorial-compressed-sensing

C++版本SISSO