Получение различной точности при каждом прогоне случайного леса, нелинейного SVC и многочлена NB в python для классификации текста - PullRequest
0 голосов
/ 14 ноября 2018

Я работаю над проблемой классификации двоичного текста в python и разработал модели в Random Forest, Nonlinear SVC и Multinomial NB.

Но при каждом запуске этих соответствующих моделей меняютсяпараметры матрицы точности и путаницы на тестовом наборе.Я использовал параметр random_state в train_test_split и при инициализации каждой из этих моделей.Random.Seed также добавлен в код.

Что-то еще мне не хватает?

Спасибо.

Пример кода:

X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size = 0.15, stratify= Y, random_state = 42) 

tfidf_vectorizer = TfidfVectorizer(analyzer='word', stop_words = 'english', max_df = 0.8, min_df = 0.05, ngram_range=(1,3)) 
tfidf_train = tfidf_vectorizer.fit_transform(X_train) 
tfidf_test = tfidf_vectorizer.transform(X_test) #Default Hyperparameters 

rfc = RandomForestClassifier(random_state = 42) 

rfc.fit(tfidf_train,Y_train) 
predictions = rfc.predict(tfidf_test) 

score = metrics.accuracy_score(Y_test, predictions) # get scores

print("accuracy: %0.3f" % score) #printing score

1 Ответ

0 голосов
/ 14 ноября 2018

Некоторые из используемых вами утилит могут содержать скрытые случайные действия , неопределенность.

Поскольку некоторые библиотеки используют numpy.random () вместо random.random () , вы должны использовать numpy.random.seed().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...