对于具有训练模型的相同测试数据的不同结果

问题描述 投票:-3回答:1

我们在python中使用joblib加载了训练模型,并给出了不同大小的测试集作为预测输入。例如。我们将测试集命名为S1,S2,其中S1有100个实例,S2有1000个实例。实例'X'是S1和S2的一部分,当用训练模型测试时,它们被预测得不同。我们在数据集上应用了TF-IDF算法来获得特征向量。训练模型的TF-IDF矢量化词汇表保存为pickle文件,进一步用于转换测试数据。如果有人可以建议或解决问题,那将是非常有帮助的。

实际:X属于C1类

预测结果:X属于C1 w.r.t S1; X属于C2 w.r.t S2

python machine-learning tf-idf ensemble-learning tfidfvectorizer
1个回答
0
投票

您需要使用以下功能。

   random.seed() #or below if you are splitting
   X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.1, stratify = Y, random_state=1) 
   # here random_state=1 makes sure you get same results every time

random_state顾名思义,用于初始化内部随机数生成器,它将决定在您的情况下将数据拆分为训练和测试索引。在文档中,声明:

由于您没有提供太多信息,因此这里有一个链接

reproducible-results-neural-networks-keras

为random.seed()添加了一个示例

import random
random.seed( 3 )
print "Random number with seed 3 : ", random.random() #will generate 
a random number 
#if you want to use the same random number once again in your program
random.seed( 3 )
random.random()   # same random number as before
© www.soinside.com 2019 - 2024. All rights reserved.