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

本人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!

发布了55 篇原创文章 · 获赞 16 · 访问量 6111

猜你喜欢

转载自blog.csdn.net/yty_7/article/details/105038648
今日推荐