繁体   English   中英

拆分训练/测试数据

[英]Split train / test data

我需要将数据集划分为训练和验证数据集。 我试着做80-20,但它不符合我的期望。

train_dataset, test_dataset = train_test_split(df, test_size = 0.2, random_state = 0)

我有一个包含 25 个城市的城市变量,每个城市都有几个观察值(在不同的日期)。 我想要的是对每个城市及其观察结果进行 80-20 划分。 我不知道这个方法是否有名字,但我不知道如何 go 关于它。

谢谢你。

这样的事情怎么样?

import numpy as np
from pandas import DataFrame

def split_data(df: DataFrame, ratio: int): 
    length  = len(df)
    indices = list(range(length))
    np.random.shuffle(indices)

    train_indices = indices[:int(length * ratio)]
    test_indices  = indices[round(length * ratio):]

    train_set = df.iloc[train_indices]
    test_set  = df.iloc[test_indices]
    
    return (train_set, test_set)


train, test = split_data(df, 0.80)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM