使用特征训练和测试拆分数据

Posted

技术标签:

【中文标题】使用特征训练和测试拆分数据【英文标题】:Train and test split data with features 【发布时间】:2021-03-30 08:18:30 【问题描述】:

从 sklearn 加载 Iris 数据集。将数据集拆分为训练和测试部分。从 4 个特征中选择 2 个。 我写了这段代码:

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split

iris = load_iris()
X, y = iris.data, iris.target
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.33,random_state=42)

但我不明白“从 4 个功能中选择 2 个”。这是否意味着 test_size 和 random_state?还是有什么不同?

【问题讨论】:

“从 4 个功能中选择 2 个”是什么意思?你被要求在哪里选择两个?另外,我不是专家,但可能指的是this Iris dataset的四个特征(长、宽、萼片、花瓣) 【参考方案1】:

鸢尾花数据集有花瓣长度、花瓣宽度、萼片长度、萼片宽度4个特征。 从 4 个特征中选择 2 个意味着在训练模型中选择这 4 个特征中的两个。 我不知道你为什么要这样做,因为使用所有四个特征会使模型更准确

【讨论】:

我想使用高斯混合模型估计和绘制现有类的密度。谢谢回答【参考方案2】:

测试大小是一个比率。比如test_size = 0.33,那么33%的数据是测试数据,剩下的67%是训练数据。

随机状态是为从整个数据集中随机抽取测试和训练数据而产生的种子(当您需要确保可重复性时,使用像42 这样的固定值)。您可以从导致随机数的计算机科学种子中详细研究随机数创建背后的理论。

【讨论】:

以上是关于使用特征训练和测试拆分数据的主要内容,如果未能解决你的问题,请参考以下文章

scikit learn 的训练测试拆分导致训练数据中只有一个唯一值的特征

使用 tensorflow 将数据集拆分为训练和测试

如何使用内置的张量流方法对特征和标签张量执行 sklearn 风格的训练测试拆分?

基于 python 中的多个特征的训练测试拆分的分层交叉验证或抽样

模型训练与优化

您是不是对训练和测试数据分别应用最小最大缩放?