以下是我的代码: 这是主要功能
trainingSet=[]
testSet=[]
validationSet=[]
loadDataset('iris.data.txt', trainingSet, testSet,validationSet)
这是loadDataset函数
def loadDataset(filename, trainingSet=[] ,testSet=[],validationSet=[]):
with open(filename, 'rb') as csvfile:
lines = csv.reader(csvfile)
dataset = list(lines)
for x in range(len(dataset)-1):
for y in range(4):
dataset[x][y] = float(dataset[x][y])
random.shuffle(dataset)
trainingSet .append(dataset[:106])
testSet.append(dataset[106:128])
validationSet.append(dataset[128:150])
" loadDataset获取wine数据集csv并将其转换为浮点数列表。然后它分割数据。"
我正在尝试将数据拆分为70-15-15。但是当我打印每个列表的长度时,它给出了1.
答案 0 :(得分:0)
只需使用.extend
代替.append
即可解决您的问题。 .append
将切片dataset[xxx]
作为单个元素添加到列表中。另一方面,.extend
会将dataset[xxx]
中的所有元素添加到列表中。
但是,如果您只调用loadDataSet
一次,如您的示例所示,则无需初始化空数据集,您可以直接返回范围。
主要功能:
trainingSet, testSet, validationSet = loadDataset('iris.data.txt')
loadDataset函数:
def loadDataset(filename):
with open(filename, 'rb') as csvfile:
lines = csv.reader(csvfile)
dataset = list(lines)
for x in range(len(dataset)-1):
for y in range(4):
dataset[x][y] = float(dataset[x][y])
random.shuffle(dataset)
trainingSet = dataset[:106]
testSet = dataset[106:128]
validationSet = dataset[128:150]
return trainingSet, testSet, validationSet