【问题标题】:Randomization of patterns in a dataset数据集中模式的随机化
【发布时间】:2018-07-30 04:39:01
【问题描述】:

我对 ML 世界还很陌生,我正在尝试随机化数据集 X_TrainY_Train 以便稍后从它们构建小批量。 X_Train 的随机化工作正常,但 Y_Train 的随机化一直给我回溯:

只能将列表(不是“int”)连接到列表

import numpy as np
import math

def create_datasets():
   dataset = np.genfromtxt('winequality-white.csv', delimiter=';')
   dataset = dataset[1:,:]
   X_Test=dataset[:64,:-1]
   X_Train=dataset[64:,:-1]
   m = X_Train.shape[0]
   Y_Test=dataset[:64,-1:]
   Y_Train=dataset[64:,-1:].reshape(m,1)

   return X_Train, Y_Train, X_Test, Y_Test, m

def shuffling(X_Train,Y_Train,m,minibatch_size):
   permutation=list(np.random.permutation(m))
   shuffled_X=X_Train[permutation,:].T
   shuffled_Y=Y_Train[permutation,:]
   n_comp_minibatches=math.floor(m/minibatch_size)    #Total n. of minibatches with 64 elements
   minibatches=[]

有人能告诉我哪里错了吗?

【问题讨论】:

    标签: numpy tensorflow random machine-learning dataset


    【解决方案1】:

    您的代码对我来说似乎很好。这是一个完整的版本:

    def shuffling(X_Train, Y_Train, m, minibatch_size):
        permutation = list(np.random.permutation(m))
        shuffled_X = X_Train[permutation, :]
        shuffled_Y = Y_Train[permutation, :]
        n_comp_minibatches = math.floor(m / minibatch_size)
        minibatches = [(shuffled_X[i*minibatch_size:(i+1)*minibatch_size],
                        shuffled_Y[i*minibatch_size:(i+1)*minibatch_size])
                       for i in range(n_comp_minibatches)]
        return minibatches
    

    如果您还想包含最后一个不完整的小批量,只需在列表推导中使用n_comp_minibatches + 1。此外,使用[rows, features] 数据而不是[features, data] 通常更方便,这就是我跳过转置的原因,但这取决于你。

    【讨论】:

    • 其实我一直在采用约定[功能,数据]只是因为教授建议,但我可以灵活地在必要时切换到另一个。但是,似乎存在一个问题,因为它在尝试置换 Y_(Train, Test) 元素时总是抛出该错误!一旦我评论小批量创建中的排列,错误就会消失
    • @Sim1bet 你的 python 和 numpy 是什么?我已经测试了这段代码,它可以工作
    • 当前运行 Python 3.6.1 和 Numpy 1.12.1 的 Anaconda 发行版。我运行你的代码,它可以工作。我怀疑错误出现在 Tensorflow 会话的初始化中,因为改组函数在以非 Tensorflow 介导的算法中实现时有效。总之,谢谢支持! (我会在我达到 15 声望时立即为你投票)
    猜你喜欢
    • 1970-01-01
    • 2021-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多