2017-10-10 11 views
0

次のコードを使用します。私は同じランダムシードについて同じ結果を得たいと思います。私は同じランダムシード(この場合は1)を使用し、異なる結果を得ます。ランダムシードが結果をPythonで一定にしない理由

import numpy as np 
from random import seed 
seed(1) ### <----- 

はPythonのrandom-classのランダムシードを設定します。

import pandas as pd 
import numpy as np 
from random import seed 
# Load scikit's random forest classifier library 
from sklearn.ensemble import RandomForestClassifier 

from sklearn.model_selection import train_test_split 
seed(1) ### <----- 

file_path = 'https://archive.ics.uci.edu/ml/machine-learning-databases/undocumented/connectionist-bench/sonar/sonar.all-data' 
dataset2 = pd.read_csv(file_path, header=None, sep=',') 

from sklearn import preprocessing 
le = preprocessing.LabelEncoder() 

#Encoding 
y = le.fit_transform(dataset2[60]) 
dataset2[60] = y 
train, test = train_test_split(dataset2, test_size=0.1) 
y = train[60] 
y_test = test[60] 
clf = RandomForestClassifier(n_jobs=100, random_state=0) 
features = train.columns[0:59] 
clf.fit(train[features], y) 

# Apply the Classifier we trained to the test data 
y_pred = clf.predict(test[features]) 

# Decode 
y_test_label = le.inverse_transform(y_test) 
y_pred_label = le.inverse_transform(y_pred) 


from sklearn.metrics import accuracy_score 
print (accuracy_score(y_test_label, y_pred_label)) 

# Two following results: 
# 0.761904761905 
# 0.90476190476 
+2

に適用され、ライン '列車、テスト= train_test_split(DATASET2、test_size = 0.1)'ランダムシードが設定されていません。 – ShreyasG

答えて

1

あなたのコード: は、ここでは、コードです。

しかしsklearnが完全explained hereとして、numpyののrandom classに基づいています。テストと反復可能の場合

、で使用される擬似乱数生成器のための単一のシードによって制御全体の実行を持つことがしばしば重要ですランダム化されたコンポーネントを持つアルゴリズム。 Scikit-learnは独自のグローバルランダムステートを使用しません。 RandomStateインスタンスまたは整数ランダムシードが引数として指定されていない場合は、numpy.random.seedを使用して設定できるnumpyグローバルランダムステートに依存します。例えば、42に実行のnumpyのグローバルなランダムな状態を設定するために、人は彼または彼女のスクリプトで次のコマンドを実行できます。

import numpy as np

np.random.seed(42)

をだから、一般的に、あなたが行う必要があります。

np.random.seed(1) 

しかしこれは真実の一部に過ぎません。これは、使用中のSklearnコンポーネントすべてに注意して、いくつかの種子と一緒に!

挙げShreyasG 同様に、これはまた、私の知る限り見ることができるようにtrain_test_split

関連する問題