matlab - 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 和不同的偏差。
谁能告诉我可能是什么原因?随机性从何而来?
解决方案
系统从一个随机起点开始,从那里开始,随着系统的大小,有许多局部最小值仍然可能很好。这个想法是,对于更大尺寸的框架,我们并不真正关心拥有相同的全局最小值,我们关心的是获得体面的结果。因此,我们可以从任何随机点开始,并接受我们的系统不太可能以最好的结果结束,而是在某个能给我们带来良好结果的位置。这意味着,给定一个大型系统,任何两个训练序列都是相同的,这不太可能。
推荐阅读
- python - Python/Flask 获取 HTML 输入并将它们存储在 SQL Server 数据库中
- php - 仅将多维数组与键数组进行比较
- iot - ModuleClient IoT Hub Edge 设备:如何从设备队列接收消息?
- c# - Word Automation 重置编号方案
- json - 处理应该是 json 的数据框列时出现 JSONDecodeError
- loops - 更改变量顺序后“for”循环突然无限
- c# - 如何将“未知”对象作为参数传递并使用它的原始对象类型进行反序列化
- c++ - 从非提升的插件 DLL 随意提升自己的代码
- android - 如何使用 Dagger Hilt 在动态功能模块中创建 ViewModel?
- django - Django 大师/细节