博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Bobo老师机器学习笔记第九课-逻辑回归之决策边界
阅读量:4171 次
发布时间:2019-05-26

本文共 1598 字,大约阅读时间需要 5 分钟。

1、什么是决策边界?

决策边界又称为是限定边界,引用百度的定义:在具有两个类的统计分类问题中,决策边界或决策表面是超曲面,其将基础向量空间划分为两个集合,一个集合。 分类器将决策边界一侧的所有点分类为属于一个类,而将另一侧的所有点分类为属于另一个类。

我们先看逻辑回归的sigmoid函数。  

我们求出

在中我们已经计算出来了值,那么我们把这条曲线绘制出来。 

这个线就是我们的决策边界,可以通过图形,清晰看到这条直线把上面点分为两类。

2、那么对于不规则的分类如何求出决策边界呢,比如下面?

这里Bobo老师提供了一种通用的方法。 老师的代码分享如下:

def plot_decision_boundary(model, axis):        x0, x1 = np.meshgrid(        np.linspace(axis[0], axis[1], int((axis[1]-axis[0])*100)).reshape(-1, 1),        np.linspace(axis[2], axis[3], int((axis[3]-axis[2])*100)).reshape(-1, 1),    )    X_new = np.c_[x0.ravel(), x1.ravel()]    y_predict = model.predict(X_new)    zz = y_predict.reshape(x0.shape)    from matplotlib.colors import ListedColormap    custom_cmap = ListedColormap(['#EF9A9A','#FFF59D','#90CAF9'])        plt.contourf(x0, x1, zz, linewidth=5, cmap=custom_cmap)

model: 训练模型

axis: X和Y轴对应的起始和终止点

使用是matplotlib模块

上面的逻辑回归我们就可以利用这种绘制成这样:

3、 以前KNN分类应该如何绘制?

从上图看起始分类有点过拟合了,我们看看参数:

KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',           metric_params=None, n_jobs=1, n_neighbors=5, p=2,           weights='uniform')

可以看出来,这个n_neighbours =5,现在我们修改为50再试试:

这样看起来好多了。绘制KNN的代码如下:

from sklearn.neighbors import KNeighborsClassifierknn_clf_all = KNeighborsClassifier()knn_clf_all.fit(iris.data[:,:2], iris.target)plot_decision_boundary(knn_clf_all, axis=[4, 8, 1.5, 4.5])plt.scatter(iris.data[iris.target==0,0], iris.data[iris.target==0,1])plt.scatter(iris.data[iris.target==1,0], iris.data[iris.target==1,1])plt.scatter(iris.data[iris.target==2,0], iris.data[iris.target==2,1])plt.show()

总结:

1、 模型的复杂与简单与决策边界的直接练习。

2、通过决策边界可视化看到模型是否存在过拟合。

 

参考文章:

转载地址:http://bekai.baihongyu.com/

你可能感兴趣的文章
摆脱贫穷2021V1
查看>>
第六章SQL数据库开发--TSQL—储存过程
查看>>
第七章SQL数据库开发--TSQL—事务和锁
查看>>
sqlserver服务器常用的性能计数器
查看>>
Android Intent的几种用法全面总结
查看>>
Android读取txt的方法
查看>>
排序的复杂度
查看>>
在 Java 应用程序中定时执行任务
查看>>
命令行下编译java并生成jar包
查看>>
fat插件打包jar(Eclipse会丢掉引用的外部包)
查看>>
卸载apk代码
查看>>
Eclipse快捷键大全[转]
查看>>
soap 的使用
查看>>
Android Handler的使用!!!
查看>>
Android SharedPreferences的使用
查看>>
代码实现改变语言
查看>>
如何用CVS下载SourceForge.net上的源码
查看>>
教你如何开关Android的APN网络
查看>>
JDK1.6官方下载_JDK6官方下载
查看>>
显示word文档
查看>>