有没有MCR-ALS算法的Python实现

2 投票
1 回答
2927 浏览
提问于 2025-04-17 17:56

多变量曲线分解-交替最小二乘法(MCR-ALS)是一种常用的化学计量学方法,主要用于处理那些成分不明的混合物,帮助我们分离出其中的多个成分。我想在一个Python程序中使用这个方法,但在scikit-learn这个包里找不到相关的内容。请问这个包里有没有类似的功能?或者我可以在哪里找到这个方法在Python中的实现呢?非常感谢大家的帮助。

1 个回答

2

据我了解(主要是通过谷歌、PyPI、AS和邮件列表搜索),目前没有纯Python的实现,也没有带有Python绑定的外部实现。

不过,你总是可以自己写一些代码,把外部实现和Python连接起来。

CRAN上有一个R语言的实现,叫做ALS,看起来可能符合你的需求。你可以使用RPy来从Python调用R代码。我建议你先试试这个。

我还找到了一些打包成DLL的代码(可能带有C语言的头文件),还有一些用C语言写的部分示例实现,以及其他类似的东西。我没有找到可以直接构建和使用的东西,但也许你能找到。当然,从Python连接本地代码的方法有很多,比如ctypesCython等等。(如果本地代码是用Fortran写的,可以用F2py,而不是从头开始写。)

还有一个MATLAB的实现,实际上,大部分搜索链接似乎都指向那里。你不能直接连接MATLAB代码,但可以通过MATLAB的脚本引擎来操作,比如使用PyMat,这个应该可以用。

我还发现了一些看起来是Java实现的死链接。如果你能使用Jython而不是CPython,那就很容易连接。(对于.NET和IronPython也是一样的道理。)

撰写回答