机器学习,二元逻辑回归

这是一个使用简单Sigmoid函数1/(1+e^(-t))的二元逻辑回归,我主要搞不清楚’graD’函数部分的正则化梯度下降有什么问题,结果不正确,如下所示:

lg(X,y,0.01,0.1,30)Out[137]: matrix([[1000.10539375],    [  49.33333333]])

我输入的数据是(对于X):123456789101112131415(对于y):000000011111111


回答:

您的代码中存在一些错误。

在计算新的theta值时,您需要使用同时更新。在您的案例中,改变theta0时您改变了theta,然后这个theta被用于theta1的计算。这是错误的。您可能需要使用两个临时变量(或者使用向量化解决方案)。

成本函数也不正确。它应该包含两部分:

y*log(h)(1-y)*log(1-h)

据我所知,成本函数不能为负,所以您不需要计算它的绝对值。

正则化对我来说看起来也不对。

这是我的代码,它对我来说是工作的。

输出:

theta = [[-5.51133636] [ 0.77301063]]-theta0/theta1 = [[ 7.12970317]]    #这个数字是一维情况下的决策边界

成本函数应该会下降:

二元逻辑回归的成本函数

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注