使用幕府将军 6.1.3 和 python 3.6。
我试图在 shogun 中获得可复制的结果以进行测试,但我看不到控制随机种子的方法。
我试过了:
import random
import numpy
from shogun import KMeans
random.seed(0)
numpy.random.seed(0)
km = KMeans(seed=0)
我想为许多幕府算法执行此操作,但这里是使用 KMeans 的简单示例:
from shogun import KMeans, RealFeatures, MulticlassLabels, EuclideanDistance
import numpy
trainX = numpy.array([[0, 0, 1], [0, 1, 0], [1, 0, 0]] * 3).astype(float)
trainY = numpy.array([[0], [1], [2]] * 3).astype(float).flatten()
testX = numpy.array([[0, 1, 0], [0, 0, 1], [1, 0, 0]]).astype(float)
Xtrain = RealFeatures(trainX.T)
Ytrain = MulticlassLabels(trainY)
Xtest = RealFeatures(testX.T)
km = KMeans()
km.set_distance(EuclideanDistance(Xtrain, Xtrain))
km.train(Xtrain)
labs = km.apply_multiclass(Xtest)
labs.get_labels()
labs.get_labels()
每次都不同,但我相信设置随机种子应该会产生一致的结果。是否有我可以设置的属性,或其他方式来控制随机性并获得一致的结果?