python中最快的线性回归实现
作者:互联网
我正在执行逐步模型选择,逐步降低变量膨胀因子超过某个阈值的变量.
为了做到这一点,我在从数百MB到10演出的数据集上运行OLS很多次.
对于较大的数据集,最快的OLS实现是什么? Statsmodel OLS实现似乎使用numpy来反转矩阵.基于梯度下降的方法会更快吗? scikit-learn是否具有特别快速的实现?
或者使用pymc的基于mcmc的方法可能是最快的…
更新1:似乎scikit学习LinearRegression的实现是scipy实现的包装器.
更新2:scipy OLS通过scikit学习LinearRegression的速度是我在非常有限的测试中的两倍于statsmodels OLS …
解决方法:
scikit-learn SGDRegressor类是(iirc)最快的,但可能比简单的LinearRegression更难调整.
我会尝试每一个,看看它们是否符合你的需求.我还建议对数据进行二次采样 – 如果你有很多演出,但它们都来自相同的分布样本,你可以在几千个样本上训练/调整你的模型(取决于特征的数量).这样可以更快地探索模型空间,而不会浪费大量时间来处理“重复/无趣”数据.
找到一些候选模型后,您就可以在整个数据集上尝试这些模型.
标签:statsmodels,python,scipy,scikit-learn,pymc 来源: https://codeday.me/bug/20190830/1769913.html