私はsklearnのランダムフォレストを使用しています。私はいくつかのモデルを比較しようとしました。それから、ランダムフォレストがと同じシードの異なる結果を与えていることに気付きました。私はそれを両方の方法で試しました:random.seed(1234)とランダムフォレストの組み込みrandom_state = 1234 どちらの場合でも、私は反復不可能な結果を得ます。私は何を逃したのですか...?Python sklearn RandomForestClassifier再現性のない結果
# 1
random.seed(1234)
RandomForestClassifier(max_depth=5, max_features=5, criterion='gini', min_samples_leaf = 10)
# or 2
RandomForestClassifier(max_depth=5, max_features=5, criterion='gini', min_samples_leaf = 10, random_state=1234)
ありがとう!!
EDIT: あなたが必要なモジュールの最新バージョン(例えばscipyのダウンロード、numpyのなど)を持っていることを確認してください私のコード
clf = RandomForestClassifier(max_depth=60, max_features=60, \
criterion='entropy', \
min_samples_leaf = 3, random_state=seed)
# As describe, I tried random_state in several ways, still diff results
clf = clf.fit(X_train, y_train)
predicted = clf.predict(X_test)
predicted_prob = clf.predict_proba(X_test)[:, 1]
fpr, tpr, thresholds = metrics.roc_curve(np.array(y_test), predicted_prob)
auc = metrics.auc(fpr,tpr)
print (auc)
2回目のランダムフォレストクラシファイアを呼び出す前に同じランダムシードを呼び出しましたか?別の結果も表示できますか? –
私の答えがあなたの質問に答えるかどうか教えてください – sera
初めて(1)を数回走らせて、予測とROC/AUCを計算しました。毎回異なる結果を出しました。それから、方法(2)を使って同じことをしましたが、結果は再現できませんでした。 @seraが示唆したように、私は第3の方法を使用しましたが、まだ、喜びはありません。他のすべての方法(ロジスティック回帰、LDA、ナイーブベイ)については、私はドットと全く同じ結果を得ています。 – Ruslan