我刚开始在Coursera的this answer上学习Andrew Ng的课程。 第三周的主题是逻辑回归,所以我试图实现以下成本函数。
该假设定义为:
其中g是sigmoid函数:
这就是我的功能目前的看法:
X = [magic(3) ; magic(3)];
y = [1 0 1 0 1 0]';
[j g] = costFunction([0 1 0]', X, y)
给出以下值
if $::ipaddress_bond0 {
$primary_interface = 'bond0'
notify{"$primary_interface":}
}
else {
$primary_interface = 'eth0'
notify{"$primary_interface":}
}
j返回0.6931 2.6067 0.6931,即使结果应为j = 2.6067。我假设Xi有问题,但我看不出错误。
如果有人能指出我正确的方向,我将非常感激。
答案 0 :(得分:7)
您应该将sigmoid函数应用于参数向量(theta)和输入向量(Xi
的点积,在这种情况下是行向量)。所以,你应该改变
H = sigmoid(transpose(theta).*Xi);
到
H = sigmoid(theta' * Xi'); % or sigmoid(Xi * theta)
当然,您需要确保将偏差输入1添加到输入中(1到1行X
)。
接下来,考虑如何对整个操作进行矢量化,以便可以在没有任何循环的情况下编写它。这样会快得多。
答案 1 :(得分:0)
//Create model and assign values
$user_d = new UserDetail;
$user_d->father_name = $request['fname'];
$user_d->dob = $request['dob'];
$user_d->save();
//pass the model to updateOrCreate method
$ud = UserDetail::updateOrCreate([
'user_id' => $user->id
], $user_d->attributesToArray());
在sigmoid函数可以正常工作的情况下,上述代码段对Logistic Regrssion Cost和Gradient函数非常适用。