关于数据X-train 和y_train之间,他们之间有什么联系?

来源:4-1 k近邻算法基础

大门旁的桂花树

2018-07-10

关于数据X-train 和y_train之间,X_train是一个数组,y_trian是一个向量,y_train和X_train是怎么建立对应关系的?我在用另一种方式来尽量表达清楚:计算机是怎么知道X_train里的数据中一行数据所对应的类别是y_train向量中的数据?

写回答

1回答

liuyubobobo

2018-07-10

首先,X_train更准确的说是二维数组。行数代表有多少数据,列数代表数据的特征数量。y_train是一个向量。y_train中的元素个数和X_train的行数一样,y_train中第i个元素表示X_train中第i行的数据所对应的output。


以上的这些逻辑,就是 X_train 和 y_train的所有关联。计算机不知道X_train 和 y_train 有这样的联系。是我们算法设计者知道。所以我们在设计算法的时候会使用这些联系。我们的算法完全可以在纸上推导出来。如果你愿意,完全可以使用纸笔计算。计算机只是帮助我们快速计算而已。


再仔细理解一下这一小节我们设计的算法,以及最后完成的代码。之所以我们的代码要这样实现,正是因为X_train和y_train满足这样的关系:)


这里举一个例子。有些同学不理解为什么以下的代码可以将 y == 0 和 y == 1 的两类数据点以不同颜色分别绘制出来:

plt.scatter(X_train[y_train==0,0], X_train[y_train==0,1], color='g')
plt.scatter(X_train[y_train==1,0], X_train[y_train==1,1], color='r')
plt.show()


事实上,我们正是因为知道X_train和y_train之间的联系,特意设计程序,才让它能够绘制出来。具体可以参考这个问答:https://coding.imooc.com/learn/questiondetail/36343.html


请再体会一下:不是计算机知道X_train和y_train之间有联系。而是我们算法设计者将数据特意布置成这个样子,运用这种数据布置上关系,完成的算法:)

2
3
liuyubobobo
回复
亦余心之所善兮灬
看看这个问答能不能解决你的疑问?https://coding.imooc.com/learn/questiondetail/36343.html 加油!:)
2019-07-12
共3条回复

Python3入门机器学习 经典算法与应用  

Python3+sklearn,兼顾原理、算法底层实现和框架使用。

5839 学习 · 2437 问题

查看课程