首页 > 解决方案 > Matlab中fitclinear中的随机数

问题描述

我正在使用带有以下参数的 matlab 函数 fitclinear 运行逻辑回归:

rng('default')
[Mdl,FitInfo] = fitclinear(X',y',   'Lambda','auto',...
                            'Learner','logistic',...
                            'ObservationsIn','columns',...
                            'Regularization','ridge',...
                            'Solver','sgd',...
                            'Verbose',1,...
                            'BatchSize',100,...
                            'LearnRate',0.1,...
                            'OptimizeLearnRate',true,...
                            'PassLimit',100,...
                            'ClassNames',[-1,1]);

由于我使用的是最近和长期的历史数据,我开始意识到用完全相同的 X 和 y 训练这个逻辑回归,并且在将随机生成器设置为默认重现结果之后,可能会导致 2 个不同的结果,即 2 组不同的 Beta 和不同的偏差。

谁能告诉我可能是什么原因?随机性从何而来?

标签: matlabmachine-learningrandomregressionlogistic-regression

解决方案


系统从一个随机起点开始,从那里开始,随着系统的大小,有许多局部最小值仍然可能很好。这个想法是,对于更大尺寸的框架,我们并不真正关心拥有相同的全局最小值,我们关心的是获得体面的结果。因此,我们可以从任何随机点开始,并接受我们的系统不太可能以最好的结果结束,而是在某个能给我们带来良好结果的位置。这意味着,给定一个大型系统,任何两个训练序列都是相同的,这不太可能。

https://stats.stackexchange.com/questions/203288/understanding-almost-all-local-minimum-have-very-similar-function-value-to-the


推荐阅读