土壤属性数据的 pH 值缺失,还挺常见的。尤其在做数据或者建模的时候,少一个关键变量,模型就容易跑偏。用传统均值插补?那结果基本靠运气。想靠谱点,KNN随机森林这两个方法就比较顶了。调好参数,插补出来的数据和原值拟合度还不错。

pH 值的 KNN 插补,优点挺的:思路简单,效果也不赖。就是距离计算比较耗性能,数据量大的时候你得注意效率问题。至于随机森林,适合变量间关系复杂的场景,用它来补 pH 数据挺有意思,尤其在缺失率高的时候,它还蛮稳的。

数据来源是国内农田生态系统的土壤数据库,用起来有真实感,不是玩具例子。他们还比较了多元回归SVM神经网络,最终还是 KNN 和 RF 表现最好。像 MAE、RMSE 这些指标都测了,数值也贴得清楚。

要动手试试?建议你看看这个matlab 随机森林代码实现SVM、BP 神经网络、随机森林 Matlab 代码,不想自己写的可以直接改。

还有,参数设置挺关键的,随便调效果还不如均值填充,所以也别忽略了数据缺失值替换参数设置这些基础资源。

如果你经常和土壤、pH 这些属性打交道,或者做农业类的数据,这几个插补方法蛮值得一试的,提升效果也挺。