У меня есть набор отзывов с меткой класса положительный/отрицательный. Я применяю логистическую регрессию к этому набору данных отзывов. Во-первых, я конвертирую в Bag of words. Здесь sorted_data['Text'] — это отзывы, а final_counts — это разреженная матрица.
count_vect = CountVectorizer()
final_counts = count_vect.fit_transform(sorted_data['Text'].values)
standardized_data = StandardScaler(with_mean=False).fit_transform(final_counts)
разделить набор данных на поезд и тест
X_1, X_test, y_1, y_test = cross_validation.train_test_split(final_counts, labels, test_size=0.3, random_state=0)
X_tr, X_cv, y_tr, y_cv = cross_validation.train_test_split(X_1, y_1, test_size=0.3)
Я применяю алгоритм логистической регрессии следующим образом
optimal_lambda = 0.001000
log_reg_optimal = LogisticRegression(C=optimal_lambda)
# fitting the model
log_reg_optimal.fit(X_tr, y_tr)
# predict the response
pred = log_reg_optimal.predict(X_test)
# evaluate accuracy
acc = accuracy_score(y_test, pred) * 100
print('\nThe accuracy of the Logistic Regression for C = %f is %f%%' % (optimal_lambda, acc))
Мои веса
weights = log_reg_optimal.coef_ . #<class 'numpy.ndarray'>
array([[-0.23729528, -0.16050616, -0.1382504 , ..., 0.27291847,
0.35857267, 0.41756443]])
(1, 38178) #shape of weights
Я хочу получить важность функции, т.е. 100 лучших функций, которые имеют большой вес. Может ли кто-нибудь сказать мне, как их получить?
weights
, а затем сохранить топ-100 ?? - person seralouk   schedule 22.07.2018