逻辑回归的线性回归损失函数

数据挖掘 逻辑回归
2022-03-03 09:08:18

我在 youtube 上参加 Andrew Ng 机器学习课程 Lecture 6.4 他说如果我们使用线性回归损失函数(最小二乘)进行逻辑回归,成本函数会是什么样子 讲座幻灯片

我想自己看看这样的图表,所以我尝试用最小二乘损失绘制成本函数 J,以用于逻辑回归任务。

这是我的代码

import matplotlib.pyplot as plt
import numpy as np
import math


x = np.random.rand(10000)
# x = np.array([0.1, 0.2, 0.7, 0.4])
y = np.round(np.random.rand(10000))
b = 1

J_list = []
w_list = []
for w in np.arange(-500.5, 500.5, 0.05):
    J = (1/10000)*np.sum((1/2)*np.square(((1/(1 + np.exp(-1*(w*x + b)))) - y)))
    J_list.append(J)
    w_list.append(w)

df = pd.DataFrame()
df['w'] = w_list
df['J'] = J_list

import seaborn as sns
sns.lineplot(x='w', y='J', data=df)

线图的输出是

逻辑回归中具有最小二乘损失的成本函数

注意:我的代码中的 w 在 Andrew Ng 的讲座中的 theta 中

如果有人可以帮助我发现我的错误,将不胜感激。

1个回答

您从随机空间中获取了 x,y。因此,它不应该遵循任何规则/逻辑。

获取真实数据,例如鸢尾花(仅 2 类)或使用sklearn make_classification模块
找出良好模型 的theta
的近似值然后在该值之前和之后循环
具有y_true的概率(不是类