Python 3.x 在执行10x10分层SHUFLESPLIT时,是否应在任何分类器中指定随机_状态?
我正在做10x10的分层吹扫。我平均了每一次折叠的准确度。 正如您在代码中看到的,我为SSS使用了10种不同的随机状态。但对于我来说,我什么都不用。 我是否也应该在RandomForest中指定Randomy_状态? 如果我不这样做会发生什么 多谢各位Python 3.x 在执行10x10分层SHUFLESPLIT时,是否应在任何分类器中指定随机_状态?,python-3.x,random,machine-learning,Python 3.x,Random,Machine Learning,我正在做10x10的分层吹扫。我平均了每一次折叠的准确度。 正如您在代码中看到的,我为SSS使用了10种不同的随机状态。但对于我来说,我什么都不用。 我是否也应该在RandomForest中指定Randomy_状态? 如果我不这样做会发生什么 多谢各位 result_list = [] for name in ["AWA"]: for el in ['Fp1']: x=sio.loadmat('/home/TrainVal/{}_{
result_list = []
for name in ["AWA"]:
for el in ['Fp1']:
x=sio.loadmat('/home/TrainVal/{}_{}.mat'.format(name, el))['x']
s_y=sio.loadmat('/home/TrainVal/{}_{}.mat'.format(name, el))['y']
y=np.ravel(s_y)
print(name, el, x.shape, y.shape)
print("")
clf = make_pipeline(preprocessing.RobustScaler(), RandomForestClassifier())
##################10x10 SSS#############
print("10x10")
xSSSmean10 = []
for i in range(10):
sss = StratifiedShuffleSplit(y, 10, test_size=0.1, random_state=i)
scoresSSS = cross_validation.cross_val_score(clf, x, y , cv=sss)
xSSSmean10.append(scoresSSS.mean())
result_list.append(xSSSmean10)
这样做:每次调用代码时,都会产生相同的随机数->相同的行为。不这样做:将发生基于时间的种子设定,对脚本的两次调用可能会产生不同的结果。这就是PRNG的基本用法。关键字是再现性。@sascha那么,我应该在RandomForest中设置什么随机状态?只是一个数字(例如0)。或者它应该像SSS那样随着每次迭代而改变吗?这样做:每次调用代码时,都会产生相同的随机数->相同的行为。不这样做:将发生基于时间的种子设定,对脚本的两次调用可能会产生不同的结果。这就是PRNG的基本用法。关键字是再现性。@sascha那么,我应该在RandomForest中设置什么随机状态?只是一个数字(例如0)。或者它应该像SSS那样随着每次迭代而改变吗?