python - 训练、测试、验证拆分 Python。三件套

标签 python pandas numpy machine-learning

有人提出了一种将数据集分成三组的解决方案。我想知道这种情况下的标签在哪里。或者如何设置标签。

train, validate, test = np.split(df.sample(frac=1), [int(.6*len(df)), int(.8*len(df))])

最佳答案

我将根据评论回答问题:

使用此方法进行拆分:

train, validate, test = np.split(df.sample(frac=1), [int(.6*len(df)), int(.8*len(df))])

您将获得 3 个不同的对象,其中包含来自 traindf 的前 60% 数据,这些数据对应于 60% 到 80% 之间的区间对于 validate 而言,最后 20% 对应于 test 中的 80%-100%。标签位于这些数据帧内。

train_test_split 中,您传递两个对象 X 和 Y,这两个对象很可能是之前从原始数据集中分割出来的,并返回 4 个对象,其中 2 个对应于训练,两个对应于测试。请记住这一点:您首先将数据集拆分为独立变量解释/目标变量,然后将这两个对象拆分为训练和测试。

使用 np.split 则相反,您首先将数据集拆分为 3 个对象,进行训练、验证和测试,稍后需要将它们单独拆分为独立变量 通常称为 X,目标变量 称为 Y。您正在执行相同的拆分,只是顺序相反。

但是,请记住,通过传递 np.split 的索引意味着拆分不是随机执行的,而使用 train_test_split 你会得到随机的训练和测试子集。另一方面,np.split 允许更大的灵 active ,例如,正如您用示例证明的那样,创建超过 2 个子集。

也许这会有所帮助! enter image description here

关于python - 训练、测试、验证拆分 Python。三件套,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59077550/

相关文章:

python - 方法 .as_matrix 将在未来版本中删除。使用 .values 代替

Python 逆向函数

Python pandas 检查单元格中列表的最后一个元素是否包含特定字符串

python - 需要一次迭代 pandas.DataFrame 3 行的数据清理

python - 如何使用 to_clipboard() 提供 DataFrame 的可复制副本

python - 一个阵列轴的快速插补

python - 从数组中删除元素

python - 将解压参数传递给 Python 打印时出现语法错误

python - python Tornado RequestHandler 协程安全吗?

python - 从 python 中杀死一个子进程,包括它的子进程