Maplea 发表于 2022-5-25 19:25:19

鸢尾花对比实验

#步骤2读取数据并预处理
# 读取鸢尾花数据集,本数据集共有150个带标签的数据
with open('data/data66466/iris.data') as csv_file:
   data = list(csv.reader(csv_file, delimiter=','))

# 共150条数据,将数据集的4个属性作为自变量X。将数据集的3个类别映射为{0, 1,2},作为因变量Y
label_map = {'setosa': 0,'versicolor': 1,'virginica':2 }

# 分别获取数据中的特征值X和标签值Y
X = np.array([] for s in data[:cfg.data_size]], np.float32)
Y = np.array(] for s in data[:cfg.data_size]], np.int32)

# 将数据集分为训练集120m条,测试集30条。
train_idx = np.random.choice(cfg.data_size, cfg.train_size, replace=False)
test_idx = np.array(list(set(range(cfg.data_size)) - set(train_idx)))
X_train, Y_train = X, Y
X_test, Y_test = X, Y

# 使用MindSpore GeneratorDataset接口将numpy.ndarray类型的数据转换为Dataset
def gen_data(X_train, Y_train, epoch_size):
    # 生成训练集
    XY_train = list(zip(X_train, Y_train))
    ds_train = dataset.GeneratorDataset(XY_train, ['x', 'y'])
    # 设定数据集大小
    # 打乱操作并设定batchsize
    ds_train = ds_train.shuffle(buffer_size=cfg.train_size).batch(cfg.batch_size, drop_remainder=True)
    # 生成测试集
    XY_test = list(zip(X_test, Y_test))
    ds_test = dataset.GeneratorDataset(XY_test, ['x', 'y'])
    # 设定数据集大小
    # 打乱操作并设定batchsize
    ds_test = ds_test.shuffle(buffer_size=cfg.test_size).batch(cfg.test_size, drop_remainder=True)
    return ds_train, ds_test


报错:
kernel_119/4283392317.py in <module>
      9 # 分别获取数据中的特征值X和标签值Y
   10 X = np.array([] for s in data[:cfg.data_size]], np.float32)
---> 11 Y = np.array(] for s in data[:cfg.data_size]], np.int32)
   12
   13 # 将数据集分为训练集120m条,测试集30条。
/tmp/ipykernel_119/4283392317.py in <listcomp>(.0)
      9 # 分别获取数据中的特征值X和标签值Y
   10 X = np.array([] for s in data[:cfg.data_size]], np.float32)
---> 11 Y = np.array(] for s in data[:cfg.data_size]], np.int32)
   12
   13 # 将数据集分为训练集120m条,测试集30条。
KeyError: 'Iris-setosa'
页: [1]
查看完整版本: 鸢尾花对比实验