Python 为什么每次我在GridSearchCV for decision tree中运行时,最大深度答案都会改变?

Python 为什么每次我在GridSearchCV for decision tree中运行时,最大深度答案都会改变?,python,Python,这是因为决策树算法中存在随机性。从: 在每次分割时,特征总是随机排列,即使分割器设置为“最佳”。但是,即使max\u features=n\u features,在不同的运行中找到的最佳分割可能会有所不同。在这种情况下,如果多个拆分的标准改进相同,并且必须随机选择一个拆分 所以,随机性是正常的。如果需要确定性方法,请设置random_state参数(即指定种子),每次都会得到相同的结果。下面是一个例子: Hyperparameters={'max_depth':np.arange(1,100,1

这是因为决策树算法中存在随机性。从:

在每次分割时,特征总是随机排列,即使分割器设置为“最佳”。但是,即使
max\u features=n\u features
,在不同的运行中找到的最佳分割可能会有所不同。在这种情况下,如果多个拆分的标准改进相同,并且必须随机选择一个拆分

所以,随机性是正常的。如果需要确定性方法,请设置
random_state
参数(即指定种子),每次都会得到相同的结果。下面是一个例子:

Hyperparameters={'max_depth':np.arange(1,100,1)}

dectree= tree.DecisionTreeClassifier()

cv_grid = GridSearchCV(estimator= dectree ,param_grid = Hyperparameters, scoring ='accuracy',cv = 10)

cv_grid= cv_grid.fit(X_train, y_train)

cv_grid.best_params_
当我使用
random_state
参数在不使用
random_state的情况下运行测试时,我得到了以下结果:

{'max_depth': 4}
{'max_depth': 4}
{'max_depth': 4}
{'max_depth': 4}
{'max_depth': 4}

请给你的答案加些解释,你有机会考虑我的答案吗?
{'max_depth': 4}
{'max_depth': 4}
{'max_depth': 4}
{'max_depth': 4}
{'max_depth': 4}
{'max_depth': 5}
{'max_depth': 65}
{'max_depth': 59}
{'max_depth': 5}
{'max_depth': 93}