scikit-learn中DictionaryLearning和MiniBatchDictionaryLearning之间的区别

时间:2017-02-24 18:03:28

标签: python scikit-learn

我正在尝试使用Dictionary Learning中的scikit-learn lib为Python编写一些代码。但是我找到了两个函数,两个函数看起来都一样。

我想知道它们之间有什么区别?

1 个答案:

答案 0 :(得分:2)

DictionaryLearning是一种完整批处理方法,在学习过程中将整个数据保存在内存中。

MiniBatchDictionaryLearning是一种小批量方法(每次迭代中只需要n =小批量大小的项目),其中 @using (Html.BeginForm("Registro", "Login", FormMethod.Post, new { @class = "form-horizontal", role = "form", id="nuevo" })) { @Html.AntiForgeryToken() <div> <hr /> @Html.ValidationSummary(true, "", new { @class = "text-danger" }) <div class="form-group"> @Html.LabelFor(model => model.NIT, new { @class = "sr-only control-label col-md-2" }) <div class="col-md-12"> <div class="input-group"> <div class="input-group-addon">digite NIT Proveedor</div> @Html.TextBoxFor(model => model.NIT, new { @class = "form-control", @type = "text" }) </div> <p class="text-danger"> @Html.ValidationMessageFor(model => model.NIT)</p> </div> </div> <div class="form-group"> <div class="col-md-12"> <button type="submit" id="submit" value="Registrarse" class="btn btn-primary" @*onclick="return confirm('Desea ingresar información de registro?')"*@ > Registrarse <span class="glyphicon glyphicon-user"></span> </button> </div> </div> </div> <div id="dialog-confirm" style="display: none"> <p><span class="ui-icon ui-icon-alert" style="float: left; margin: 0 7px 20px 0;"></span> Are you sure to delete? </p> </div> } (=适合小批量)支持在更大的实例上工作打得太难了。

虽然一般的想法是相同的,但这些算法是不同的,并针对不同的用例。

如果你可以使用前者和你的记忆,请使用它。如果没有,请使用后者。

如果使用minibatch-variant,请记住,partial_fit仍存在未解决的漏洞。

可以在sklearn(提到MiniBatchDictionaryLearning)中找到关于大规模计算和特别是增量学习的概述here。它还提到了缺点:调整超参数小批量大小。