如何在sklearn中的RandomForest中的不同迭代中获得相同的结果

时间:2019-03-28 04:10:46

标签: python scikit-learn classification random-forest

我正在使用随机森林分类器进行分类,在每次迭代中我得到不同的结果。我的代码如下。

input_file = 'sample.csv'

df1 = pd.read_csv(input_file)
df2 = pd.read_csv(input_file)
X=df1.drop(['lable'], axis=1)  # Features
y=df2['lable']  # Labels
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)

clf=RandomForestClassifier(random_state = 42, class_weight="balanced")
clf.fit(X_train,y_train)
y_pred=clf.predict(X_test)
print("Accuracy:",metrics.accuracy_score(y_test, y_pred))

根据其他answers的建议,我添加了参数n_estimatorsrandom_state。但是,它对我不起作用。

我已将csv文件here附加:

很高兴在需要时提供更多详细信息。

1 个答案:

答案 0 :(得分:1)

您还需要为火车测试拆分设置随机状态。

以下代码将为您提供可重复的结果。推荐的方法是不要更改random_state值以提高性能。

> isTruthy('')
[1] FALSE

输出:

  

准确度:0.6777777777777778