关于Logistic回归边界的理解

fig, axes = plt.subplots(1,3, sharey = True, figsize=(17,5))

决策边界,咱们分别来看看正则化系数lambda太大太小分别会出现什么情况

Lambda = 0 : 就是没有正则化,这样的话,就过拟合咯

Lambda = 1 : 这才是正确的打开方式

Lambda = 100 : 卧槽,正则化项太激进,导致基本就没拟合出决策边界

for i, C in enumerate([0.0, 1.0, 100.0]):
    # 最优化 costFunctionReg
    res2 = minimize(costFunctionReg, initial_theta, args=(C, XX, y), jac=gradientReg, options={'maxiter':3000})
    
    # 准确率
    accuracy = 100.0*sum(predict(res2.x, XX) == y.ravel())/y.size    

    # 对X,y的散列绘图
    plotData(data2, 'Microchip Test 1', 'Microchip Test 2', 'y = 1', 'y = 0', axes.flatten()[i])
    
    # 画出决策边界
    x1_min, x1_max = X[:,0].min(), X[:,0].max()
    x2_min, x2_max = X[:,1].min(), X[:,1].max()
    xx1, xx2 = np.meshgrid(np.linspace(x1_min, x1_max), np.linspace(x2_min, x2_max))
    h = sigmoid(poly.fit_transform(np.c_[xx1.ravel(), xx2.ravel()]).dot(res2.x))
    h = h.reshape(xx1.shape)
    print h.shape
    axes.flatten()[i].contour(xx1, xx2, h, [0.5], linewidths=2, colors='g');       
    axes.flatten()[i].set_title('Train accuracy {}% with Lambda = {}'.format(np.round(accuracy, decimals=2), C))


无标题.png


在寒老师的github的例子,最后考虑绘制边界,如上图的绿色曲线。
Q1. 这里不是很理解这个边界具体的物理含义?
Q2. 感觉在课程中好像没有提到哪一步部分的数学公式所对应。换句话来说,SVM的边界是若干支持向量组成,那这里的边界具体指的是什么呢?
Q3. 通过程序h = sigmoid(poly.fit_transform(np.c_[xx1.ravel(), xx2.ravel()]).dot(res2.x))这句话,不知道为何用多项式分布来近似,随后带入sigmoid函数?
Q4. 这里在绘制的时候第四个参数设置为[0.5]查询相关手册,应该和contour的level相关,但这里设置为[0.5]的依据是?
已邀请:

寒老师

赞同来自: JoyceWYJ


课程内容里面讲过哦。。。认真看看哦^_^

Q1:就是决策边界,如果不做特征映射,二维平面是直线,三维空间是平面,更高维是超平面。只不过和SVM的超平面会有一些差别
Q2: W^T*X=0...对应概率=0.5的超平面,提到了吧...
Q3:不是近似,这是feature mapping,生成高维特征
Q4:这只是一个绘图的参数,你调成其他的,只是显示略有差别而已。

要回复问题请先登录注册