# -*- coding: utf-8 -*-
"""
Created on Thu Jun 28 17:16:19 2018 @author: zhen
"""
from sklearn.model_selection import train_test_split
import mglearn
import matplotlib.pyplot as plt
x, y = mglearn.datasets.make_forge()
x_train, x_test, y_train, y_test = train_test_split(x, y, random_state=0) # 生成训练和测试集数据 from sklearn.neighbors import KNeighborsClassifier
14 clf = KNeighborsClassifier(n_neighbors=3) # 调用K近邻分类算法
15
16 clf.fit(x_train, y_train) # 训练数据 print("Test set predictions:{}".format(clf.predict(x_test))) # 预测 print("Test set accuracy:{:.2f}".format(clf.score(x_test, y_test))) fig, axes = plt.subplots(1, 3, figsize=(10, 3)) # 使用matplotlib画图 for n_neighbors, ax in zip([1, 3, 9], axes):
# fit 方法返回对象本身,所以我们可以将实例化和拟合放在一行代码中
clf = KNeighborsClassifier(n_neighbors=n_neighbors).fit(x, y)
mglearn.plots.plot_2d_separator(clf, x, fill=True, eps=0.5, ax=ax, alpha=0.4)
mglearn.discrete_scatter(x[:, 0], x[:, 1], y, ax=ax)
ax.set_title("{} neighbor(s)".format(n_neighbors))
ax.set_xlabel("feature 0")
ax.set_ylabel("feature 1")
axes[0].legend(loc=3)
结果:
总结:从图中可以看出,使用单一邻居绘制的决策边界紧跟着训练数据,随着邻居的增多,决策边界也越来越平滑,更平滑的边界对应更简单的模型,换句话说,使用更少的邻居对应更高的模型复杂度。

最新文章

  1. Javascript进阶之路-论对象的重要性
  2. 【转】NuGet.org 无法访问的解决方法
  3. [Head First设计模式]生活中学设计模式——迭代器模式
  4. KendoUI系列:DropDownList
  5. c++ 在windows下建立目录
  6. selenium 安装与 chromedriver安装
  7. [原创]与来自facebook的朋友交流
  8. Codeforce Round #214 Div2
  9. scrollView滚动(通过代码)
  10. [AngularJS] angular-formly: Default Options
  11. codeforces 416B. Appleman and Tree 树形dp
  12. NET MVC运行机制
  13. 实战小项目BUG纪录
  14. Android Studio教程10-Intent的详细使用
  15. Spring Cloud 之 服务注册与发现
  16. pl/sql学习(6): 引号/程序调试/列中的字符串合并/正则表达式
  17. C语言编程比赛WBS
  18. rinetd 一个linux下的端口转发工具
  19. Flutter应用打包发布
  20. HDU 1827 Summer Holiday(tarjan求强连通分量+缩点构成新图+统计入度+一点贪心思)经典缩点入门题

热门文章

  1. 转载 Python 正则表达式入门(中级篇)
  2. 【Collection、泛型】
  3. 函数isNaN() parseFloat() parseInt() Math对象
  4. 全网最详细的IDEA、Eclipse和MyEclipse之间于Java web项目发布到Tomcat上运行成功的对比事宜【博主强烈推荐】【适合普通的还是Maven方式创建的】(图文详解)
  5. 从零开始学 Web 之 Ajax(六)jQuery中的Ajax
  6. SQL 必知必会·笔记<10>联结表
  7. Java第三方支付接入案例(支付宝)
  8. go sync.once用法
  9. 按值传递 vs. 按指针传递
  10. C#微信公众号开发--微信事件交互