我的问题是,即使我为RandomForestClassifier
本身和Train-Test-Split实现了Random_state(即使我不认为这是不必要的,因为我正在使用shuffle = False
-由于时间序列数据)。请在下面找到我的代码,我已经尝试了以下问题的解决方案,但它没有工作:Python sklearn RandomForestClassifier non-reproducible results
Data Split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, shuffle=False, random_state=13)
X_train, X_test, y_train, y_test = np.array(X_train), np.array(X_test), np.array(y_train), np.array(y_test)
print(f"Train and Test Size {len(X_train)}, {len(X_test)}")
随机森林分类器
forest = RandomForestClassifier(n_jobs=-1,
class_weight=cwts(df),
max_depth = 5,
random_state = random.seed(1234))
forest.fit(X_train, y_train)
我的y变量是1或0的时间序列数据,因为我正在编程的交易策略,只能走平或长.此外,在下一步我使用Borutapy Package 器,当寻找最好的功能,它总是改变最好的功能,因为RandomForestClassifier
是不是常数.你们中的任何人知道这个问题的解决方案?
1条答案
按热度按时间pw9qyyiw1#
函数
numpy.random.seed
为numpy计算设置了一个种子,但是返回None
,所以实际上并没有为分类器的连续运行设置一个固定的种子,只需为random_state
使用一个整数。