学习曲线和决策边界的绘制
评估机器学习模型好坏的时候,常常需要观察学习曲线的变化,以及最后的分类结果(二分类)的效果。一个好的可视化结果可以加强对模型的理解程度。下面总结一下决策边界和学习曲线的绘制代码,以便加强印象,方便查看。
# 决策边界的绘制
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 数据加载 2 数据EDA 3 模型创建及应用 3.1 数据切分 3.2 创建模型与分类 3.3 决策边界绘制 3.3.1 二分类决策边界绘 ...
- Lesson 5.分类模型决策边界与模型评估指标
Lesson 5.分类模型决策边界与模型评估指标(上) 在逻辑回归的算法基础内容结束之后,我们还需要补充一些关于分类模型的基础知识,包括观察分类模型判别性能的决策边界基本的概念与实现方法,同时也包括对 ...
- python 画出决策边界_Python3入门机器学习 - 逻辑回归与决策边界
logistic回归又称logistic回归分析,是一种广义的线性回归分析模型,以胃癌病情分析为例,选择两组人群,一组是胃癌组,一组是非胃癌组,两组人群必定具有不同的体征与生活方式等.因此因变量就为是 ...
- 关于利用np.contour画出logistic模型决策边界(plot_decision_regions)的一点感想
本篇文章纯粹为了记录遇到问题以及解决问题.苦于没人指引,加上网上资料少不知从何搜起,断断续续三天才弄明白,走了一些弯路.希望可以给看到这篇文章的小伙伴一点点帮助,少踩坑. 写在前面,最近碰到个问题,需 ...
- KMeans聚类并绘制聚类后的决策边界
KMeans聚类并绘制聚类后的决策边界 # 导数基础包和函数 from sklearn import datasets import matplotlib.pyplot as plt # 使用skel ...
- DL之DNN:基于神经网络(从1层~50层)DNN算法实现对非线性数据集点进行绘制决策边界
DL之DNN:基于神经网络(从1层~50层)DNN算法实现对非线性数据集点进行绘制决策边界 目录 输出结果 设计代码 输出结果 设计代码 首先查看数据集 import numpy as np from ...
- 机器学习 绘制决策边界
两个特征的决策边界绘制. 绘制决策边界 1.数据处理 1.1 数据准备 1.2 数据集切分 1.3 数据标准化 2.绘制决策边界 2.1 可视化函数(两个特征) 2.2 决策树模型 2.3 KNN模型 ...
- 决策边界绘制函数plot_decision_boundary()和plt.contourf函数详解
在做吴恩达老师的深度学习课程作业时,发现决策边界函数不好理解plot_decision_boundary(model , X , y).将此函数理解记录下: 作业地址:https://blog.csd ...
- matlab contourf设置范围,如何使用matlab contourf绘制二维决策边界
我知道这已经有一段时间了,但我会试一试,以防其他人提出这个问题. 假设我们有一个2D训练集来训练SVM模型,换句话说特征空间是一个2D空间.我们知道,一个核SVM模型导致得分(或决定)的形式的函数: ...
最新文章
- 办公室28个经典赞美句子【转】
- Python 200个标准库汇总
- 解决数据库读写分离(转)
- ListView Viewholder的坑 线性布局的坑
- 深入理解abstract class和interface
- 自学编程是从python语言还是c语言开始-非计算机专业大学生想自学编程应该学C语言还是学Python?...
- python字典遍历的4种方法
- day18 java的数组
- EJB Remote/Local 绑定和JNDI Lookup
- 本计算机的英文意思,电脑的英文什么意思最新见解
- 最新手机号码归属地数据库(2017年4月1日)
- 360勒索病毒补丁,不能访问共享修复
- 计算机安装应用程序卸的步骤,怎么彻底删除电脑安装的软件程序
- SpringCloud之实现下载Excel模板文件
- 两个表格内容怎么合并
- 记录:MI 10 反复重启的原因之一
- Unity下实现弹簧骨骼(Spring Bone)
- HTTP POST 请求工具类
- linux/android驱动工程师面试相关内容总结
- 网络安全漏洞原理利用与渗透
热门文章
- 什么软件运用计算机处理图像,平面设计中计算机图形图像处理软件的运用探究...
- husky gazebo
- IMT-2020(5G)推进组最新工作进展
- 通达OA用户操作手册(二)
- Python爬虫从入门到精通─第2课 Requests库讲解
- Android自定义控件实现圆形图片
- 计算机主机无信号输出,电脑屏幕不亮主机还在运行显示无信号(教你解决方法)...
- 编程基础——鱼龙混杂来三波
- 折腾 NeoVim 和 SpaceVim
- 推荐100首值得听的英文歌【ZT】