标签: train-test-split

使用ImageDataGenerator时,Keras分割列车测试集

我有一个目录,其中包含图像的子文件夹(根据标签).我想在Keras中使用ImageDataGenerator时将这些数据拆分为train和test set.尽管keras中的model.fit()具有用于指定拆分的参数validation_split,但我找不到与model.fit_generator()相同的参数.怎么做 ?

train_datagen = ImageDataGenerator(rescale=1./255,
    shear_range=0.2,
    zoom_range=0.2,
    horizontal_flip=True)

train_generator = train_datagen.flow_from_directory(
    train_data_dir,
    target_size=(img_width, img_height),
    batch_size=32,
    class_mode='binary')

model.fit_generator(
    train_generator,
    samples_per_epoch=nb_train_samples,
    nb_epoch=nb_epoch,
    validation_data=??,
    nb_val_samples=nb_validation_samples)
Run Code Online (Sandbox Code Playgroud)

我没有单独的验证数据目录,需要将其从训练数据中分离出来

keras train-test-split

38
推荐指数
6
解决办法
2万
查看次数

在分割训练和测试数据之前或之后标准化数据?

我想将我的数据分成火车和测试集,我应该在拆分之前或之后对数据进行规范化吗?在构建预测模型时是否有任何区别?提前致谢.

split regression machine-learning normalization train-test-split

20
推荐指数
3
解决办法
1万
查看次数

如何使用tensorflow执行k-fold交叉验证?

我正在关注张量流的IRIS示例.

我现在的情况是我将所有数据都放在一个CSV文件中,而不是分开,我想对该数据应用k-fold交叉验证.

我有

data_set = tf.contrib.learn.datasets.base.load_csv(filename="mydata.csv",
                                                   target_dtype=np.int)
Run Code Online (Sandbox Code Playgroud)

如何使用多层神经网络对此数据集执行k-fold交叉验证,与IRIS示例相同?

python cross-validation tensorflow train-test-split

18
推荐指数
2
解决办法
2万
查看次数

如何根据组 ID 生成训练测试拆分?

我有以下数据:

pd.DataFrame({'Group_ID':[1,1,1,2,2,2,3,4,5,5],
          'Item_id':[1,2,3,4,5,6,7,8,9,10],
          'Target': [0,0,1,0,1,1,0,0,0,1]})

   Group_ID Item_id Target
0         1       1      0
1         1       2      0
2         1       3      1
3         2       4      0
4         2       5      1
5         2       6      1
6         3       7      0
7         4       8      0
8         5       9      0
9         5      10      1
Run Code Online (Sandbox Code Playgroud)

我需要根据“Group_ID”将数据集拆分为训练集和测试集,以便 80% 的数据进入训练集,20% 进入测试集。

也就是说,我需要我的训练集看起来像:

    Group_ID Item_id Target
0          1       1      0
1          1       2      0
2          1       3      1
3          2       4      0
4          2       5      1
5          2       6      1 …
Run Code Online (Sandbox Code Playgroud)

grouping machine-learning python-3.x pandas train-test-split

15
推荐指数
1
解决办法
8097
查看次数

应该在训练测试拆分之前还是之后进行特征选择?

实际上,有两个事实的矛盾是问题的可能答案:

  1. 传统的答案是在拆分后进行,因为如果之前进行过,则可能会从测试集泄漏信息。

  2. 矛盾的答案是,如果仅从整个数据集中选择的训练集用于特征选择,那么特征选择或特征重要性得分顺序可能会随着 Train_Test_Split 的 random_state 的变化而动态变化。如果任何特定工作的特征选择发生变化,则无法进行特征重要性的泛化,这是不可取的。其次,如果仅使用训练集进行特征选择,则测试集可能包含某些实例集,这些实例与仅在训练集上进行的特征选择相悖/矛盾,因为未分析整体历史数据。此外,只有在给定一组实例而不是单个测试/未知实例时,才能评估特征重要性分数。

machine-learning feature-selection train-test-split

14
推荐指数
2
解决办法
1万
查看次数

火花火车测试分裂

我很好奇,如果在最新的2.0.1版本中有类似于sklearn的 http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.StratifiedShuffleSplit.html for apache-spark.

到目前为止,我只能找到https://spark.apache.org/docs/latest/mllib-statistics.html#stratified-sampling,它似乎不适合将严重不平衡的数据集拆分为火车/测试样本.

apache-spark apache-spark-mllib train-test-split

13
推荐指数
3
解决办法
9415
查看次数

单例数组数组(<函数列在0x7f3a311320d0>,dtype = object)不能被视为有效集合

不知道如何解决.任何帮助非常感谢.我看到了矢量化:不是一个有效的集合,但不确定我是否理解这一点

    train = df1.iloc[:,[4,6]]
            target =df1.iloc[:,[0]]

            def train(classifier, X, y):
                X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=33)

                classifier.fit(X_train, y_train)
                print ("Accuracy: %s" % classifier.score(X_test, y_test))
                return classifier

        trial1 = Pipeline([
            ('vectorizer', TfidfVectorizer()),
            ('classifier', MultinomialNB()),
        ])

        train(trial1, train, target)
Run Code Online (Sandbox Code Playgroud)

错误如下:

    ----> 6 train(trial1, train, target)

    <ipython-input-140-ac0e8d32795e> in train(classifier, X, y)
          1 def train(classifier, X, y):
    ----> 2     X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=33)
          3 
          4     classifier.fit(X_train, y_train)
          5     print ("Accuracy: %s" % classifier.score(X_test, y_test)) …
Run Code Online (Sandbox Code Playgroud)

python pipeline pandas scikit-learn train-test-split

9
推荐指数
3
解决办法
2万
查看次数

scikit-learn 错误:y 中人口最少的类只有 1 个成员

我正在尝试使用train_test_splitscikit-learn 中的函数将我的数据集拆分为训练集和测试集,但出现此错误:

In [1]: y.iloc[:,0].value_counts()
Out[1]: 
M2    38
M1    35
M4    29
M5    15
M0    15
M3    15

In [2]: xtrain, xtest, ytrain, ytest = train_test_split(X, y, test_size=1/3, random_state=85, stratify=y)
Out[2]: 
Traceback (most recent call last):
  File "run_ok.py", line 48, in <module>
    xtrain,xtest,ytrain,ytest = train_test_split(X,y,test_size=1/3,random_state=85,stratify=y)
  File "/home/aurora/.pyenv/versions/3.6.0/lib/python3.6/site-packages/sklearn/model_selection/_split.py", line 1700, in train_test_split
    train, test = next(cv.split(X=arrays[0], y=stratify))
  File "/home/aurora/.pyenv/versions/3.6.0/lib/python3.6/site-packages/sklearn/model_selection/_split.py", line 953, in split
    for train, test in self._iter_indices(X, y, groups):
  File "/home/aurora/.pyenv/versions/3.6.0/lib/python3.6/site-packages/sklearn/model_selection/_split.py", line 1259, in _iter_indices
    raise ValueError("The least …
Run Code Online (Sandbox Code Playgroud)

python scikit-learn train-test-split

8
推荐指数
3
解决办法
4万
查看次数

将图像数据集拆分为训练测试数据集

所以我有一个包含子文件夹的主文件夹,子文件夹又包含数据集的图像,如下所示。

-main_db

---CLASS_1

-----img_1

-----img_2

-----img_3

-----img_4

---CLASS_2

-----img_1

-----img_2

-----img_3

-----img_4

---CLASS_3

-----img_1

-----img_2

-----img_3

-----img_4

我需要将这个数据集分成两部分,即训练数据(70%)和测试数据(30%)。下面是我想要实现的层次结构

-main_db

---training_data

-----CLASS_1

-------img_1

-------img_2

-------img_3

-------img_4

---CLASS_2

-------img_1

-------img_2

-------img_3

-------img_4

---testing_data

-----CLASS_1

-------img_5

-------img_6

-------img_7

-------img_8

---CLASS_2

-------img_5

-------img_6

-------img_7

-------img_8

任何帮助表示赞赏。谢谢

我试过这个模块。但这对我不起作用。该模块根本没有被导入。

https://github.com/jfilter/split-folders

这正是我想要的。

training-data python-3.x train-test-split

8
推荐指数
4
解决办法
2万
查看次数

使用 spaCy 命令行训练器管理训练/开发分割

我正在使用命令行工具训练 NER 模型python -m spacy train。我用来gold.docs_to_json将带注释的文档转换为JSON 可序列化格式

命令行训练工具同时使用训练集和开发集。我不确定命令行工具为我管理训练/开发拆分提供了多少帮助。

  1. 是否有命令行工具可以从一组数据创建训练/开发拆分?
  2. spaCy 训练命令会为我进行交叉验证,而不是让我创建开发集吗?
  3. 当需要根据所有数据训练生产模型时,我应该使用什么作为开发集?

我认为问题(1)和(2)的答案都是“否”,但我想仔细检查一下。

从实践来看,即使您正在训练生产模型进行固定次数的迭代,您也始终必须传递非空开发集。现在我只是传递了我的训练数据的副本,但看起来很奇怪,所以我想知道是否还缺少其他一些程序。

有关训练的 spaCy 文档主要讨论编写您自己的迭代循环。我已经做了足够多的工作,我确信如果我编写自己的代码,我可以完成上述任何工作,但对于这些基本的训练操作,我宁愿不编写代码,而只使用命令行工具来完成所有操作。

command-line-interface spacy train-test-split

8
推荐指数
0
解决办法
752
查看次数