【问题标题】:sklearn test train split - get index to filename of original listsklearn test train split - 获取原始列表文件名的索引
【发布时间】:2017-01-30 08:46:54
【问题描述】:

我正在使用sklearn 中的test_train_split 模块来生成用于训练和测试的数据集的随机组合。我有一个指向原始数据集的文件路径列表。我还想知道数据是如何被打乱的,或者以同样的方式打乱文件路径列表以便能够在打乱/分割数据集可用后跟踪文件路径?

【问题讨论】:

    标签: python machine-learning scikit-learn


    【解决方案1】:

    如果您在test_train_splitshuffle 中指定相同的random_state,您将得到相同的订单。

    请参阅下面的 sn-p 进行演示。

    from sklearn.utils import shuffle
    from sklearn.model_selection import train_test_split
    import random
    
    X = list()
    y = list()
    files = list()
    
    random_state = 42
    test_size = 0.9
    n = 100
    
    for i in range(n):
        X.append(i)
        y.append(i + random.random())
        files.append('file_{0:02d}.csv'.format(i))
    
    X_train, X_test, y_train, y_test = train_test_split(X,
                                                    y,
                                                    test_size=test_size,
                                                    random_state=random_state)
    X_shuffle = shuffle(X, random_state=random_state)
    y_shuffle = shuffle(y, random_state=random_state)
    file_shuffle = shuffle(files, random_state=random_state)
    
    print(X_train)
    print(X_shuffle[int(n * test_size):])
    print(y_shuffle[int(n * test_size):])
    print(file_shuffle[int(n * test_size):])
    print(X_train == X_shuffle[int(n * test_size):])
    
    [91, 74, 86, 82, 20, 60, 71, 14, 92, 51]
    [91, 74, 86, 82, 20, 60, 71, 14, 92, 51]
    [91.64119581793204, 74.77493553783724, 86.62410189510936, 82.40452263996107, 20.22784747831378, 60.913989700418675, 71.1940538438253, 14.644282494118647, 92.97808337955185, 51.289858815186356]
    ['file_91.csv', 'file_74.csv', 'file_86.csv', 'file_82.csv', 'file_20.csv', 'file_60.csv', 'file_71.csv', 'file_14.csv', 'file_92.csv', 'file_51.csv']
    
    True
    

    【讨论】:

    • 这很好 - 理想情况下应该先尝试一下!真棒你给一个精心制作的演示
    猜你喜欢
    • 2019-08-21
    • 1970-01-01
    • 1970-01-01
    • 2016-06-29
    • 2020-11-09
    • 2015-12-17
    • 1970-01-01
    • 2019-08-08
    • 2015-10-18
    相关资源
    最近更新 更多