Python Sklearn列车测试分割在2d向量上失败

Python Sklearn列车测试分割在2d向量上失败,python,scikit-learn,Python,Scikit Learn,嗯。。。这是理想的功能吗?我甚至不明白为什么numpy允许第一维度为0的数组存在 Numpy 1.14.2、sklearn 0.19.1、python 3.5.5定义数据集时,变量以列表示,观察值以行表示。所以,如果你有三个自变量,一个因变量和20个测量值,你的数据集将被表示为一个20x4矩阵,即20行4列。默认情况下,train_test_split将数据集拆分为0.75部分测量值作为训练集,0.25部分测量值作为测试集。对于具有20 x 4数据集的示例,对于培训和测试,分割将分别为15 x

嗯。。。这是理想的功能吗?我甚至不明白为什么numpy允许第一维度为0的数组存在


Numpy 1.14.2、sklearn 0.19.1、python 3.5.5

定义数据集时,变量以列表示,观察值以行表示。所以,如果你有三个自变量,一个因变量和20个测量值,你的数据集将被表示为一个20x4矩阵,即20行4列。默认情况下,train_test_split将数据集拆分为0.75部分测量值作为训练集,0.25部分测量值作为测试集。对于具有20 x 4数据集的示例,对于培训和测试,分割将分别为15 x 4和5 x 4。对于您的代码,如果维度颠倒,会发生以下情况:

import sklearn.model_selection as skl_ms
import numpy as np

A = np.random.normal(0, 1, [1, 100]);
(A_train, A_test) = skl_ms.train_test_split(A);
A_train.shape #--> Answer is (0, 100)
A_test.shape #---> Answer is (1, 100)

当您只有一个样本时,您打算如何将数据拆分为训练和测试?我将此作为一个,以获得关于工作的更有意义的响应。@VivekKumar嗯,当您传递一个一维numpy向量时,函数工作正常,这就是为什么我希望它也能对二维向量工作正常。是的,但是,当您只有一行时,您希望得到什么样的结果?您将如何将其分为培训和测试?
import sklearn.model_selection as skl_ms
import numpy as np

A = np.random.normal(0, 1, [100, 1]);
(A_train, A_test) = skl_ms.train_test_split(A);

A_train.shape
Out[105]: (75, 1)

A_test.shape
Out[106]: (25, 1)