我正在尝试使用Dictionary Learning
中的scikit-learn
lib为Python
编写一些代码。但是我找到了两个函数,两个函数看起来都一样。
我想知道它们之间有什么区别?
答案 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。它还提到了缺点:调整超参数小批量大小。