逻辑回归决策边界不正确

我知道这个问题已经有很多讨论了,但是我就是无法解决。我想绘制逻辑回归模型的决策边界,但我的决策边界图与预期相差甚远。我还没有用新数据来验证分类器,然而,我的损失看起来符合预期,并且很好地收敛了。请查看下面的代码。

编辑1: 我已经尝试了几种解决方案和绘制决策边界的方法,结果总是看起来一样,所以我的参数肯定有问题。有人知道可能是什么问题吗?

编辑2: 出于无奈,我随机更改了决策边界的参数为 y = (-(w[2]+w[0].item()*x)/w[1]).T,现在它工作了。有人知道为什么我需要这样调整吗?

这就是我得到的结果。我做错了什么?

import numpy as npimport matplotlib.pyplot as pltdef sig(x):    return 1/(1+np.exp(-x))def N(mean, cov, n):    return np.matrix(np.random.multivariate_normal(mean, cov, n))# Datan = 100mean_1, cov_1 = [3,3], [[0.7,-0.3],[0.3,0.5]]mean_2, cov_2 = [1,2], [[0.5,0.3],[0.3,0.5]]X_1, X_2 = N(mean_1, cov_1, n), N(mean_2, cov_2, n) # (100, 2)X = np.vstack((X_1, X_2)) # (200, 2)Ts = np.vstack((np.zeros((n, 1)), np.ones((n, 1)))) # (200, 1)Xs = np.hstack((X, np.ones((n*2,1)))) # (200, 3)# Parametersw = np.matrix(np.random.rand(np.size(Xs,1))).T # (3, 1)alpha = 1e-2# Trainloss = []epochs = 10000for i in range(epochs):    Ys = sig(Xs@w)    loss += [1/(n*2) * ([email protected](Ys) -(1-Ts.T)@np.log(1-Ys)).item()]    grad = Xs.T@(Ys-Ts)    w -= alpha/(n*2) * grad# plot lossplot_loss = Falseif plot_loss:    plt.plot(range(len(loss)), loss)    plt.title("Convergence of loss")    plt.xlabel('Epochs')    plt.ylabel('Loss')# plot dataplot_data = Trueif plot_data:    plt.scatter([X_1[:,0]],[X_1[:,1]], color="b")    plt.scatter([X_2[:,0]],[X_2[:,1]], color="r")    plt.title("Data")    plt.xlabel('Feature 1')    plt.ylabel('Feature 2')# plot decision boundaryplot_db = Trueif plot_db:    x = np.linspace(-1, 6, 1000)    y = (-(w[0]+w[1].item()*x)/w[2]).T    plt.plot(x,y,"r")plt.show()

回答:

问题出在与特征向量拼接的ones向量上。将它与特征向量交换,并按照上面的代码绘制边界,就可以得到正确的边界。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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