我需要你们帮助找到非线性决策边界。我有 2 个带有数值数据的特征,我做了一个简单的线性决策边界(见下图)
现在问题是我希望我的红线看起来像黑线:
我用于绘制红线的“方程式”是:
# x and y not related to the dataset, those variables are only for plotting the red line
# mdl is my model
x = np.linspace(0.6, -0.6)
y = -(mdl.coef_[0][0] / mdl.coef_[0][1]) * x - mdl.intercept_ / mdl.coef_[0][1]
该模型是一个 SVM,我执行了一个 GridSearchCV 并得到了最好的估计器。我使用线性内核来获取模型系数和截距。
如果需要,我可以在方程中添加第三个维度。我的 df 中有很多可用的列。我只保留了两个最重要的(我通过查看模型的特征重要性得到了那些)。
最好的事情是,如果我可以有一个用于绘制决策边界的方程式,并且可以将其包含在我的数据集中,并将其用作“制裁”,例如方程式制裁的结果大于 0,则样本的目标为 1,否则为 0。
像这样(我用另一个模型制作的,但用于 3D 绘图):
# Equation sanction that goes into my dataset
df['sanction'] = df.widthS63R04 * model.coef_[0][0] + df.chordS67R04 * model.coef_[0][1] + df.chordS71R04 * model.coef_[0][2]
#Equation for 3D Hyperplane
tmp = np.linspace(-5,5,30)
x,y = np.meshgrid(tmp,tmp)
z = lambda x,y: (-mdl.intercept_[0]-mdl.coef_[0][0]*x -mdl.coef_[0][1]*y) / mdl.coef_[0][2]
# lambda usage for 3d surface hyperplane
ax.plot_surface(x, y, z(x, y))