我在订单文件中有数据
#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)
我该怎么写呢?
答案 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]