我们已经在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
答案 0 :(得分: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