评估机器学习模型好坏的时候,常常需要观察学习曲线的变化,以及最后的分类结果(二分类)的效果。一个好的可视化结果可以加强对模型的理解程度。下面总结一下决策边界和学习曲线的绘制代码,以便加强印象,方便查看。

# 决策边界的绘制

import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
def plot_decision_boundary(clf, X, y, num_row = 100, num_col = 100):"""绘制决策边界的核心代码:param clf: 分类器, 即使用的模型:param X: 输入的数据X:param y: 真实的分类结果y:param num_row: 绘制决策边界时,行数据生成的个数:param num_col: 列数据生成的个数"""clf.fit(X, y)sigma = 1   # 防止数据在图形的边上而加上的一个偏移量,设定一个较小的值即可x1_min, x1_max = np.min(X[:, 0])-sigma, np.max(X[:, 0])+sigmax2_min, x2_max = np.min(X[:, 1])-sigma, np.max(X[:, 1])+sigmat1 = np.linspace(x1_min, x1_max, num_row)t2 = np.linspace(x2_min, x2_max, num_col)x1, x2 = np.meshgrid(t1, t2)x_test = np.stack((x1, x2), axis=1)# 设置使用的颜色colors, 这里假设最后的结果是三个类别cm_dark = mpl.colors.ListedColormap(['#FFA0A0', '#A0FFA0', '#A0A0FF'])cm_light = mpl.colors.ListedColormap(['r', 'g', 'b'])y_hat = clf.predict(x_test)y_hat = y_hat.reshape(x1.shape)plt.pcolormesh(x1, x2, y_hat, cmap=cm_dark)   # 绘制底色plt.scatter(X[:, 0], X[:, 1], y, edgecolors='k', cmap=cm_light)   # 绘制数据的颜色plt.xlabel('x label')plt.ylabel('y label')plt.title('decision-boundary')plt.xlim(x1_min, x1_max)plt.ylim(x2_min, x2_max)plt.grid()plt.show()

# 学习曲线的绘制

from sklearn.model_selection import learning_curve
import numpy as np
import matplotlib.pyplot as plt
def plot_learning_curve(estimator, X, y, n_jobs=1, cv = 5, train_size = np.linspace(0.02, 1, 50), verbose=0):"""绘制学习曲线,评估训练和测试结果,方便对模型进行评估:param estimator: 使用的模型"""train_sizes, train_scores, test_scores = learning_curve(estimator=estimator, X=X, y=y, cv=cv, n_jobs=n_jobs,train_sizes=train_size, scoring='accuracy', verbose=verbose)# 从 http://scikit-learn.org/stable/modules/model_evaluation.html#scoring-parameter 选择适合的scoringtrain_score_mean = train_scores.mean(axis=1)train_size_std = train_scores.std(axis=1)test_score_mean = np.mean(test_scores, axis=1)test_score_std = np.std(test_scores, axis=1)plt.figure()plt.fill_between(train_sizes, train_score_mean+train_size_std, train_score_mean-train_size_std, color='blue', alpha=0.1)plt.fill_between(train_sizes, test_score_mean+test_score_std, test_score_mean-test_score_std, color='red', alpha=0.1)plt.plot(train_sizes, train_score_mean, 'o-', color='blue', label='training score')plt.plot(train_sizes, test_score_mean, 'o-', color='red', label='testing score')plt.xlabel('xlabel')plt.ylabel('ylabel')plt.title('learning_curve')plt.legend(loc='best')plt.grid()plt.show()

# 说明:以上部分代码可能来自网络,如有侵权,请联系删除

学习曲线和决策边界的绘制相关推荐

  1. 【机器学习】逻辑回归案例二:鸢尾花数据分类,决策边界绘制逐步代码讲解

    逻辑回归案例二:鸢尾花数据分类,决策边界绘制逐步代码讲解 1 数据加载 2 数据EDA 3 模型创建及应用 3.1 数据切分 3.2 创建模型与分类 3.3 决策边界绘制 3.3.1 二分类决策边界绘 ...

  2. Lesson 5.分类模型决策边界与模型评估指标

    Lesson 5.分类模型决策边界与模型评估指标(上) 在逻辑回归的算法基础内容结束之后,我们还需要补充一些关于分类模型的基础知识,包括观察分类模型判别性能的决策边界基本的概念与实现方法,同时也包括对 ...

  3. python 画出决策边界_Python3入门机器学习 - 逻辑回归与决策边界

    logistic回归又称logistic回归分析,是一种广义的线性回归分析模型,以胃癌病情分析为例,选择两组人群,一组是胃癌组,一组是非胃癌组,两组人群必定具有不同的体征与生活方式等.因此因变量就为是 ...

  4. 关于利用np.contour画出logistic模型决策边界(plot_decision_regions)的一点感想

    本篇文章纯粹为了记录遇到问题以及解决问题.苦于没人指引,加上网上资料少不知从何搜起,断断续续三天才弄明白,走了一些弯路.希望可以给看到这篇文章的小伙伴一点点帮助,少踩坑. 写在前面,最近碰到个问题,需 ...

  5. KMeans聚类并绘制聚类后的决策边界

    KMeans聚类并绘制聚类后的决策边界 # 导数基础包和函数 from sklearn import datasets import matplotlib.pyplot as plt # 使用skel ...

  6. DL之DNN:基于神经网络(从1层~50层)DNN算法实现对非线性数据集点进行绘制决策边界

    DL之DNN:基于神经网络(从1层~50层)DNN算法实现对非线性数据集点进行绘制决策边界 目录 输出结果 设计代码 输出结果 设计代码 首先查看数据集 import numpy as np from ...

  7. 机器学习 绘制决策边界

    两个特征的决策边界绘制. 绘制决策边界 1.数据处理 1.1 数据准备 1.2 数据集切分 1.3 数据标准化 2.绘制决策边界 2.1 可视化函数(两个特征) 2.2 决策树模型 2.3 KNN模型 ...

  8. 决策边界绘制函数plot_decision_boundary()和plt.contourf函数详解

    在做吴恩达老师的深度学习课程作业时,发现决策边界函数不好理解plot_decision_boundary(model , X , y).将此函数理解记录下: 作业地址:https://blog.csd ...

  9. matlab contourf设置范围,如何使用matlab contourf绘制二维决策边界

    我知道这已经有一段时间了,但我会试一试,以防其他人提出这个问题. 假设我们有一个2D训练集来训练SVM模型,换句话说特征空间是一个2D空间.我们知道,一个核SVM模型导致得分(或决定)的形式的函数: ...

最新文章

  1. 办公室28个经典赞美句子【转】
  2. Python 200个标准库汇总
  3. 解决数据库读写分离(转)
  4. ListView Viewholder的坑 线性布局的坑
  5. 深入理解abstract class和interface
  6. 自学编程是从python语言还是c语言开始-非计算机专业大学生想自学编程应该学C语言还是学Python?...
  7. python字典遍历的4种方法
  8. day18 java的数组
  9. EJB Remote/Local 绑定和JNDI Lookup
  10. 本计算机的英文意思,电脑的英文什么意思最新见解
  11. 最新手机号码归属地数据库(2017年4月1日)
  12. 360勒索病毒补丁,不能访问共享修复
  13. 计算机安装应用程序卸的步骤,怎么彻底删除电脑安装的软件程序
  14. SpringCloud之实现下载Excel模板文件
  15. 两个表格内容怎么合并
  16. 记录:MI 10 反复重启的原因之一
  17. Unity下实现弹簧骨骼(Spring Bone)
  18. HTTP POST 请求工具类
  19. linux/android驱动工程师面试相关内容总结
  20. 网络安全漏洞原理利用与渗透

热门文章

  1. 什么软件运用计算机处理图像,平面设计中计算机图形图像处理软件的运用探究...
  2. husky gazebo
  3. IMT-2020(5G)推进组最新工作进展
  4. 通达OA用户操作手册(二)
  5. Python爬虫从入门到精通─第2课 Requests库讲解
  6. Android自定义控件实现圆形图片
  7. 计算机主机无信号输出,电脑屏幕不亮主机还在运行显示无信号(教你解决方法)...
  8. 编程基础——鱼龙混杂来三波
  9. 折腾 NeoVim 和 SpaceVim
  10. 推荐100首值得听的英文歌【ZT】