如何根据列车和测试数据进行建模?

时间:2017-11-14 09:49:08

标签: python pandas

我在订单文件中有数据

#split into train and test sets
X = DataFrame.values
train_size = int(len(X)*0.66)
train, test = X[1:train_size], X[train_size:]
train_X, train_y = train[:,0], train[:,1]
test_X, test_y = test[:,0], test[:,1]

我希望train_data通过调用来测试不同文件中的数据。

def test(learning_rate=0.1, k=1, training_epochs=15):
    print ('... loading data')
    datasets = ('book-sales.csv')
    train_X, train_y = datasets[0]
    test_X, test_y = datasets[0]
    print ('... modeling')
    rbm = RBM(input=train_X, n_visible=28 * 28, n_hidden=500)

我试过但是我发现了这条消息。

  

train_X,train_y = datasets [0]

     

ValueError:没有足够的值来解包(预期2,得到1)

我该怎么写呢?

2 个答案:

答案 0 :(得分:0)

当您必须直接在文件中读取数据集时,建议使用库pandas http://pandas.pydata.org/,因为它是专为数据分析而设计的:

import pandas as pd
data_path = "./book-sales.csv" #path to access data
datasets = pd.read_csv(data_path)

datasets对象现在有DataFrame pandas类型。

另外,根据数据集的实际形式,您可能需要使用get_values方法datasets.get_values(),并重新整形以获得更好的便利。

这样,您可以将数据拆分为训练集和测试集。

希望这可能有所帮助

答案 1 :(得分:0)

您可以使用以下方法将数据帧拆分为两个随机样本(80%和20%),以便在Python中进行培训和测试:

import pandas as pd
data_path = "./book-sales.csv"
df = pd.read_csv(data_path)
msk = np.random.rand(len(df)) < 0.8
train_X, train_y= df[msk]
test_X, test_y= df[~msk]