问题标签 [train-test-split]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
295 浏览

pandas - 使用 pd.get_dummies 后基于整数列值获取原始训练测试拆分

我结合了我的训练和测试数据集,并使用了来自 pandas 的 get_dummies 函数到一个热编码分类数据。连接背后的原因是训练集和测试集的分类数据中的级别数不同。

如果我在单独的火车和测试集上使用 get_dummies 函数,那么我会得到一个不同维度的数据框,所以我想将它们组合起来。

我现在想再次将其拆分为训练集和测试集。可能吗?

假设我们使用 pd.get_dummies 后得到的输出被命名为“数据集”。如果数据集中“C10”列的值为 30(整数),则数据属于测试集,否则属于训练集。

如果我尝试像在普通数据框中一样选择值,则会收到以下错误:

0 投票
9 回答
49424 浏览

python - scikit-learn 错误:y 中人口最少的类只有 1 个成员

train_test_split我正在尝试使用scikit-learn中的函数将我的数据集拆分为训练集和测试集,但出现此错误:

但是,所有类都至少有 15 个样本。为什么我会收到此错误?

X 是一个表示数据点的 pandas DataFrame,y 是一个 pandas DataFrame,其中一列包含目标变量。

我不能发布原始数据,因为它是专有的,但是通过创建一个具有 1k 行 x 500 列的随机 pandas DataFrame (X) 和一个具有相同行数 (1k) X 的随机 pandas DataFrame (y) 是相当可复制的,并且,对于每一行,目标变量(分类标签)。y pandas DataFrame 应该有不同的分类标签(例如 'class1'、'class2'...),并且每个标签应该至少出现 15 次。

0 投票
6 回答
64284 浏览

python - Singleton array array(, dtype=object) cannot be considered a valid collection

Not sure how to fix . Any help much appreciate. I saw thi Vectorization: Not a valid collection but not sure if i understood this

error below :

Not sure how to fix . Any help much appreciate. I saw thi Vectorization: Not a valid collection but not sure if i understood this

0 投票
1 回答
412 浏览

python - 训练数据帧列表的测试拆分 - Pandas

我有一个要拆分为训练集和测试集的 DataFrame 列表。对于单个 DataFrame,我可以执行以下操作,

获取测试拆分的长度

进而,

这给了我训练和测试的分裂。

现在,对于 DataFrames 列表,我可以使用每个 DataFrame 获取测试集长度,

我想像对单个数据框所做的那样,对整个数据框列表train进行test拆分。我尝试了以下,

两者都不起作用。我怎样才能做到这一点?

(某些 DataFrame 的长度可能会有所不同,但我并不担心,因为它会从长度中减去 125,我正在考虑将其用于测试集)

0 投票
1 回答
689 浏览

python - 将分区数据集拆分为训练和测试(训练数据每个类有 200 个示例)

我有一个 5 类数据。每个类中大约有 1000、1200、1500、1900、2000 个样本。我想在训练数据中有每个类的 200 个示例。其他样本将是测试数据。也就是说,训练数据将由每个类中的 [200, 200, 200, 200, 200] 个样本组成,测试数据将由每个类中的 [800, 1000, 1300, 1700, 1800] 个样本组成。

我们如何在 Python 中做到这一点?在 Python 中是否有任何预定义的方法/包可以做到这一点?

另一个例子

train_test_split(data, labels, train_size=0.0042) Label Number Total Samples Train Samples Test Samples 1 6631 33 6598 2 18649 89 18560 3 2099 6 2093 4 3064 11 3053 5 1345 5 1340 6 5029 26 5003 7 1330 3 1327 8 3682 21 3661 9 947 6 941 Total 42776 200 42576

train_test_split(data, labels, train_size=200) Label Number Total Samples Train Samples Test Samples 1 6631 33 6598 2 18649 89 18560 3 2099 6 2093 4 3064 11 3053 5 1345 5 1340 6 5029 26 5003 7 1330 3 1327 8 3682 21 3661 9 947 6 941 Total 42776 200 42576

所以,我希望它是这样的:

Label Number Total Samples Train Samples Test Samples 1 6631 200 6431 2 18649 200 18449 3 2099 200 1899 4 3064 200 2864 5 1345 200 1145 6 5029 200 4829 7 1330 200 1130 8 3682 200 3482 9 947 200 747 Total 42776 1800 40976

0 投票
0 回答
2285 浏览

python - 将 pandas.get_dummies 列从训练复制到测试数据

我有两个数据框,train并且test. 它们都具有相同的确切列名,其中包含分类字符串特征。

我正在尝试将这些特征映射到训练集中的虚拟变量,训练回归模型,然后对测试集进行相同的精确映射并将训练后的模型应用于它。

我遇到的问题是,由于test小于train,它恰好不包含某些分类特征的所有可能值。由于pandas.get_dummies()似乎只是着眼于data.Series.unique()创建新列,在以相同的方式为trainand添加虚拟列之后testtest现在列更少了。

那么我如何改为添加虚拟列train,然后使用相同的确切列名test,即使对于特定功能testtest.feature.unique()是 的子集train.feature.unique()?我查看了pd.get_dummies 文档,但我认为我没有看到任何可以满足我要求的东西。任何帮助是极大的赞赏!

0 投票
1 回答
6504 浏览

python - CountVectorizer MultinomialNB 中的尺寸不匹配错误

在我提出这个问题之前,我必须说我已经彻底阅读了这个板上超过 15 个类似的主题,每个主题都有不同的建议,但所有这些都无法让我正确。

好的,所以我将我的“垃圾邮件”文本数据(最初为 csv 格式)拆分为训练和测试集,使用 CountVectorizer 及其“fit_transform”函数来拟合语料库的词汇表并从文本中提取字数统计特征。然后我应用 MultinomialNB() 从训练集学习并在测试集上进行预测。这是我的代码(简化):

我从之前的问题线程中收集到的建议是 (1) 在 X_test 上仅使用 .transform(),或 (2) 确定原始垃圾邮件数据中的每一行是否为字符串格式(是的,它们是),或 (3)在 X_test 上什么也不做。但他们都没有敲响警钟,Python 一直给我“尺寸不匹配”错误。挣扎了 4 个小时后,我不得不屈服于 Stackoverflow。如果有人能就此启发我,将不胜感激。只是想知道我的代码出了什么问题以及如何使尺寸正确。

谢谢你。

顺便说一句,原始数据条目看起来像这样

0 投票
1 回答
547 浏览

random-forest - 错误的训练/测试拆分策略

问题是关于RandomForest 模型中训练/测试拆分的错误选择策略。我知道以这种方式选择测试集会产生错误的输出,但我想知道为什么

(模型查看前几天的数据,并试图预测第二天的数据会高于还是低于今天,即分类问题)

我从另一个示例中复制了训练/测试拆分代码,它只是将随机行设置为 train_set 或 test_set。(试图在下面说明) 在此处输入图像描述 原始数据是例如 EURUSD 的每日收盘价。

然后我基于此创建功能。每个特征都会查看一些先前的数据点,并提出一组特征,这些特征是 X_test 中的一行。然后我训练一个随机森林模型来尝试预测第二天的收盘价。

test_set 中的准确性非常高,并且随着它查看的历史先前点数的增加而增加,这似乎表明过度拟合。

例如,当我将训练/测试拆分模型更改为具有例如 train_set:1 月至 6 月的数据和 test_set:8 月的数据时,即完全分离的数据集并且不可能混合,准确度是更现实的 50%。

同样,我知道火车/测试拆分是不正确的,但是有人可以帮我理解为什么..吗?

每次我想验证一行(即 test_set 中的一个预测)时,我都会使用查看先前数据的功能来预测明天的数据?怎么会出现过拟合?

0 投票
1 回答
1624 浏览

python - 如何拆分数据集以训练/测试某些行依赖的位置?

我有一个主题数据集,每个主题在我的 pandas 数据框中都有很多行(每个测量都是一行,一个主题可以测量几次)。我想将我的数据拆分为训练集和测试集,但我不能随机拆分,因为所有主题的测量都是依赖的(不能将同一主题放入训练和测试中)。你会如何重新喜欢这个?我有一个熊猫数据框,每个主题都有不同数量的测量值。

编辑:我的数据包括每一行的主题编号,我想尽可能接近 0.8/0.2。

0 投票
1 回答
571 浏览

python - 从加载的 arff 文件创建训练和测试变量

我想执行多标签分类。A 有一个我加载的 arff 格式的数据集。但是我现在不知道如何将导入数据转换为 X 和 y 向量以应用 sklearn/train_test_split。

我怎样才能得到 X 和 y?