目录

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
Fitting 'small' data: 82 data points, 115 features.
Searching for models up to 3 dimemsions, considering 10 new features per iteration.
          RMSE            Model
1D:	0.296696	1.922 - 0.478 (r_p(A)+r_d(B)) 
2D:	0.218070	7.495 - 3.483 (r_p(A)+r_d(B)) + 0.392 (r_p(A)+r_d(B))^2 
3D:	0.193928	7.280 - 3.528 (r_p(A)+r_d(B)) + 0.405 (r_p(A)+r_d(B))^2 + 0.293 |r_s(A)-r_d(B)| 
 
Fitting 'big' data: 82 data points, 3391 features.
Searching for models up to 3 dimemsions, considering 26 new features per iteration.
          RMSE            Model
1D:	0.137310	-0.327 - 0.055 (IP(A)+IP(B))/r_p(A)^2 
2D:	0.100216	-0.145 + 0.114 |IP(B)-EA(B)|/r_p(A)^2 - 1.482 |r_s(A)-r_p(B)|/exp(r_s(A)) 
3D:	0.076428	-0.005 + 0.109 |IP(B)-EA(B)|/r_p(A)^2 - 1.766 |r_s(A)-r_p(B)|/exp(r_s(A)) - 6.032 |r_s(B)-r_p(B)|/(r_p(B)+r_d(A))^2 

mSISSO_MATLAB_v2

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

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

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

Python版本SISSO

pysisso

tutorial-compressed-sensing

C++版本SISSO