为啥我们在 Scikit learn 中将 X_test 存储到 y_preds 变量中? [关闭]

Posted

技术标签:

【中文标题】为啥我们在 Scikit learn 中将 X_test 存储到 y_preds 变量中? [关闭]【英文标题】:Why do we store X_test to y_preds variable in Scikit learn? [closed]为什么我们在 Scikit learn 中将 X_test 存储到 y_preds 变量中? [关闭] 【发布时间】:2021-01-23 18:06:04 【问题描述】:

我目前正在从事一个机器学习项目,之前没有机器学习或 Python 的实践经验。刚刚在网上遇到如下代码,不知道为什么会这样。

    训练后的数据存储在哪里?是存储在 X_train 还是 X_test 中?

    为什么我们预测 X_test 并将其存储到 y_preds 变量中?由于我们使用了 y_preds,所以我期待的是这样的:

    y_preds = clf.predict(y_test)
    

代码:

from sklearn.model_selection import train_test_split


# Using train_test_split() function, defining test data size + storing it to variables of test, train 
  and split data

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)


# Fitting the data into the training model defined above

clf.fit(X_train, y_train);

# Making predictions on our trained data

y_preds = clf.predict(X_test)

【问题讨论】:

predict 通过模型获取输入 (X) 以产生输出 (y),将输出作为输入提供给模型是没有意义的。 好吧,如果是这样的话。从 X 获取输入到 Y 的产品输出也没有任何意义。 那么我认为你应该阅读更多关于机器学习模型的内容,这个网站并不是要教你机器学习及其工作原理。这是一个编程网站。 这就是我在问题开始时所说的,我是机器学习的新手。另外,如果您不愿意,我也不会寻求您的帮助。周围仍有成千上万的人将其提供给新手。 不是我,是规矩,请看meta.***.com/questions/291009/… 【参考方案1】:

一般来说,学习问题会考虑一组 n 个数据样本,然后尝试预测未知数据的属性。如果每个样本不止一个数字,例如,一个多维条目(也称为多元数据),则称它具有多个属性或特征。

学习问题分为几类:

A) 监督学习,其中数据带有我们想要预测的附加属性(点击此处进入 scikit-learn 监督学习页面)。这个问题可以是:

    分类:样本属于两个或多个类别,我们希望从已标记的数据中学习如何预测未标记数据的类别。分类问题的一个例子是手写数字识别,其目的是将每个输入向量分配给有限数量的离散类别之一。将分类视为一种离散(相对于连续)形式的监督学习,其中一个具有有限数量的类别,并且对于提供的 n 个样本中的每一个,一个方法是尝试用正确的类别或类别标记它们.

    回归:如果所需的输出由一个或多个连续变量组成,则该任务称为回归。回归问题的一个例子是根据鲑鱼的年龄和体重来预测鲑鱼的长度。

B) 无监督学习,其中训练数据由一组输入向量 x 组成,没有任何对应的目标值。此类问题的目标可能是发现数据中的相似示例组,这称为聚类,或者确定输入空间内的数据分布,称为密度估计,或者从高维投影数据空间缩小到两个或三个维度以进行可视化(单击此处转到 Scikit-Learn 无监督学习页面)。

基本上,机器学习是学习数据集的某些属性,然后针对另一个数据集测试这些属性。机器学习中的一种常见做法是通过将数据集分成两部分来评估算法。我们将其中一组称为训练集,我们在其上学习一些属性;我们将另一组称为测试集,在其上测试学习到的属性。

看看下面的链接。

https://scikit-learn.org/stable/user_guide.html

这是学习 Scikit Learn 的绝佳资源。其中一些事情很难让您全神贯注,但这是一次很棒的学习体验,而且确实有效!

【讨论】:

以上是关于为啥我们在 Scikit learn 中将 X_test 存储到 y_preds 变量中? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

在 Scikit-learn 中将训练标签拟合到 2D 列表中

在 scikit-learn 中将数据加载到 SVC 模型时尝试避免 .toarray()

在 scikit-learn 中将 RandomizedSearchCV(或 GridSearcCV)与 LeaveOneGroupOut 交叉验证相结合

为啥带有铰链损失的 SGDClassifier 比 scikit-learn 中的 SVC 实现更快

如何在 scikit-learn 管道中将时代添加到 Keras 网络

为啥 pip 在安装 scikit-learn 时会出现权限被拒绝的错误?