本人CSDN博客专栏:https://blog.csdn.net/yty_7

Github地址:https://github.com/yot777/

单特征与多特征

在上一节标签和特征的示例中,我们使用的是标签和特征一一对应:

  特征(身高,以米为单位) 标签
A 1.51 0
B 1.61 1
C 1.76 1
D 2.1 1
E 1.58 0
F 1.68 1

事实上,在现实生活中,存在着大量的多个特征对应一个标签的情况,以我们熟知的线性规划问题举例:

在此问题中,存在x1和x2两种特征共同决定了该机床厂的销售利润。

依照线性规划的图解法,我们可以得到:

上图中的标黄部分是可行域,可行域中的每个坐标(x1,x2)记为标签1(可行)

除了可行域之外的部分,每个坐标(x1,x2)记为标签0(不可行)

这样,我们就完成了多个特征对应一个标签的匹配。

训练集与测试集

依照图解法的结果,我们可以得到以下10个样本数据的特征和标签

其中5个数据的标签为0,5个数据的标签为1,总共10个数据构成了源数据集:

样本数据 特征x1 特征x2 标签
1 1 2 1
2 4 5 0
3 2 1 1
4 4 2 1
5 6 1 0
6 3 3 1
7 5 2 0
8 4 5 0
9 2 7 0
10 2 6 1

在引言中我们学过,机器学习的前两个步骤是:

学到知识:通过大量训练数据进行数学建模,让机器“学”到数据的某种规律。

按时温习:通过已经建好的模型运行测试数据,验证“学”到的那些规律是否正确。

那么我们现在只有10个数据,一般来说会将70%~80%的数据用来进行数学建模,这部分数据叫训练集。

剩下的20%到30%的数据用来验证建模运算后的数据是否得到正确的标签,这部分数据叫测试集。

在机器学习领域,通常我们用以下4个变量来表示训练集、测试集以及他们的特征和标签:

X_train表示训练集特征,y_train表示训练集标签

X_test表示测试集特征,y_test表示测试集标签。

注意:X为大写,表示矩阵(一条数据可以有多个特征);y为小写,表示向量(一条数据只能有一个标签)

按照80%训练集20%测试集的原则,我们将以上表格划分为以下4个部分:

Python实现训练集与测试集

代码如下:

import numpy as np
#源数据矩阵
S = np.array([[1,2,1],[4,5,0],[2,1,1],[4,2,1],[6,1,0],[3,3,1],[5,2,0],[4,5,0],[2,7,0],[2,6,1]])
print('源数据矩阵是\n',S)
#X_train训练集特征矩阵,先取行再取列
X_train = S[:8][:,0:-1]
print('X_train训练集特征矩阵是\n',X_train)
#y_train训练集标签向量,先取行再取列
y_train = S[:8][:,-1]
print('y_train训练集标签向量是\n',y_train)
#X_test测试集特征矩阵,先取行再取列
X_test = S[8:][:,0:-1]
print('X_test测试集特征矩阵是\n',X_test)
#y_train训练集标签向量,先取行再取列
y_test = S[8:][:,-1]
print('y_test测试集标签向量是\n',y_test)

运行结果:

源数据矩阵是[[1 2 1][4 5 0][2 1 1][4 2 1][6 1 0][3 3 1][5 2 0][4 5 0][2 7 0][2 6 1]]
X_train训练集特征矩阵是[[1 2][4 5][2 1][4 2][6 1][3 3][5 2][4 5]]
y_train训练集标签向量是[1 0 1 1 0 1 0 0]
X_test测试集特征矩阵是[[2 7][2 6]]
y_test测试集标签向量是[0 1]

总结

在现实生活中,存在着大量的多个特征对应一个标签的情况。

源数据中用来进行数学建模的数据叫训练集,一般占源数据的70%~80%

源数据中用来验证通过建模运算后的数据是否得到正确的标签,这部分数据叫测试集,一般占源数据的20%~30%

在机器学习领域,通常我们用以下4个变量来表示训练集、测试集以及他们的特征和标签:

X_train表示训练集特征,y_train表示训练集标签

X_test表示测试集特征,y_test表示测试集标签。

注意:X为大写,表示矩阵(一条数据可以有多个特征);y为小写,表示向量(一条数据只能有一个标签)

本人CSDN博客专栏:https://blog.csdn.net/yty_7

Github地址:https://github.com/yot777/

如果您觉得本篇本章对您有所帮助,欢迎关注、评论、点赞!Github欢迎您的Follow、Star!

杨桃的Python机器学习3——单特征与多特征、训练集与测试集相关推荐

  1. python划分训练集和测试集_杨涛的Python机器学习3:单特征与多特征、训练集与测试集,杨桃...

    本人CSDN博客专栏:https://blog.csdn.net/yty_7 Github地址:https://github.com/yot777/ 单特征与多特征 在上一节标签和特征的示例中,我们使 ...

  2. python尝试不同的随机数进行数据划分、使用卡方检验依次计算不同随机数划分下训练接和测试集所有分类特征的卡方检验的p值,如果所有p值都大于0.05则训练集和测试集都具有统计显著性、数据划分合理

    python尝试不同的随机数进行数据划分.使用卡方检验依次计算不同随机数划分下训练接和测试集所有分类特征(categorical)的卡方检验的p值,如果所有p值都大于0.05则退出循环.则训练集和测试 ...

  3. Python计算医疗数据训练集、测试集的对应的临床特征:训练集(测试集)的阴性和阳性的样本个数、连续变量的均值(标准差)以及训练测试集阳性阴性的p值、离散变量的分类统计、比率、训练测试集阳性阴性的p值

    Python使用pandas和scipy计算医疗数据训练集.测试集的对应的临床特征:训练集(测试集)的阴性和阳性的样本个数.连续变量的均值(标准差࿰

  4. 机器学习数据集(训练集、测试集)划分方法

    数据集划分方法 留出(Hold-out)法 交叉验证(cross validation)法 自助法(bootstrap)   一个模型的好坏终归还是需要一个客观的评价标准,但是现有标准都比较难以适用于 ...

  5. ML之FE:数据处理—特征工程之数据集划分成训练集、验证集、测试集三部分简介、代码实现、案例应用之详细攻略

    ML之FE:数据处理-特征工程之数据集划分成训练集.验证集.测试集三部分简介.代码实现.案例应用之详细攻略 目录 数据集划分成训练.验证.测试三种数据的简介 1.训练集.验证集的作用 2.验证数据集 ...

  6. python 识别数字字母 训练集_Python 实现训练集、测试集随机划分

    随机从列表中取出元素: import random dataSet = [[0], [1], [2], [3], [4], [5], [6], [7], [8], [9], [10]] trainDa ...

  7. 训练集与测试集的阳性阴性p值计算方法Python实现

    训练集与测试集的阳性阴性p值计算方法Python实现 在机器学习领域,常常需要将数据划分为训练集和测试集.其中,阳性和阴性样本的比例也是非常重要的指标之一.在模型训练和测试过程中,我们需要了解阳性和阴 ...

  8. 【机器学习算法面试题】六.训练集、验证集、测试集的理解。

    欢迎订阅本专栏:<机器学习算法面试题> 订阅地址:https://blog.csdn.net/m0_38068876/category_11810806.html [机器学习算法面试题]一 ...

  9. 【Python】深度学习中将数据按比例随机分成随机 训练集 和 测试集的python脚本

    深度学习中经常将数据分成 训练集 和 测试集,参考博客,修改python脚本 randPickAITrainTestData.py . 功能:从 输入目录 中随机检出一定比例的文件或目录,移动到保存 ...

最新文章

  1. linux salt命令 -e,linux 下 Salt 命令的疑难杂症
  2. Android热修复原理,已整理成文档
  3. python使用界面-(八)Python 图形化界面设计
  4. [html] 表单可以跨域吗?
  5. Git系列笔记之一:git的简介及基本配置
  6. 信安教程第二版-第6章认证技术原理与应用
  7. i++和++i作为参数时的编译器处理方式分析
  8. pip install urllib3[secure] 报错 error: ffi.h: No such file or directory
  9. java线程期末考试_mooc课程 java 期末考试试卷
  10. winpe加载raid_windows pe3.0加载RAID驱动!
  11. Protobuf编码规则详解
  12. 凸优化学习笔记:内点法
  13. excel打印时显示服务器脱机怎么办,excle正在访问打印机!连接局域网打印机在excel中预览,excel自动就关闭是怎么回事...
  14. 基于HTML、CSS、JavaScript、jQuery的app小项目--简易备忘录
  15. 日语中的接打电话礼貌用语
  16. NLP情感分析——KNN算法
  17. 百度安卓开发一二面面经
  18. 微信小程序仿朋友圈,实现点赞和评论功能
  19. 简单的博弈问题:牛羊吃草问题(递归解法-暴力解法)
  20. Day1 - Python基础

热门文章

  1. 面试官:你觉得你最大的缺点是什么?
  2. 微信小程序 - 答题进度条
  3. 最新软件测试面试题+笔试题(十个面试官里有九个会问)
  4. android课堂小测试,[小薇班]APPIUM自动化测试 优酷APP测试脚本编写实例
  5. 增强了一下DownloaderPlus的视频转换功能
  6. Windows XP启动慢的问题
  7. Excel表格的创建与制作
  8. html css实现静态换肤,简单的JS+CSS实现网页自定义换肤
  9. 【演歌】函館の女 歌词翻译
  10. DataSphereStudio平台集成