Получить характеристику важности PySpark Наивный байесовский классификатор - PullRequest
0 голосов
/ 09 января 2019

У меня есть наивный байесовский классификатор, который я написал на Python, используя фрейм данных Pandas, и теперь он мне нужен в PySpark. Моя проблема здесь в том, что мне нужна важность функции каждого столбца. Просматривая документацию по PySpark ML, я не смог найти никакой информации о ней. Документация

Кто-нибудь знает, смогу ли я получить важность функции с помощью Naive Bayes Spark MLlib?

Код с использованием Python следующий. Важность функции определяется с помощью .coef_

df = df.fillna(0).toPandas()

X_df = df.drop(['NOT_OPEN', 'unique_id'], axis = 1)
X = X_df.values
Y = df['NOT_OPEN'].values.reshape(-1,1)

mnb = BernoulliNB(fit_prior=True) 
y_pred = mnb.fit(X, Y).predict(X)
estimator = mnb.fit(X, Y)


# coef_: For a binary classification problems this is the log of the estimated probability of a feature given the positive class. It means that higher values mean more important features for the positive class.

feature_names = X_df.columns
coefs_with_fns = sorted(zip(estimator.coef_[0], feature_names))

Ответы [ 2 ]

0 голосов
/ 25 июля 2019

Разницу, наверное, лучше оценить
log (P (feature_X | Positive)) - log (P (feature_X | негатив)) как особенность важности.

Потому что нас интересует дискриминационная сила каждого feature_X (верный NB - это порождающая модель). Крайний пример: некоторые feature_X1 имеют одинаковое значение во всех + и - выборках, поэтому нет никакой дискриминации. Таким образом, вероятность значения этого признака высока для + и - выборок, но разница логарифмических вероятностей = 0.

0 голосов
/ 09 января 2019

Если вы заинтересованы в эквиваленте coef_, свойство, которое вы ищете, составляет NaiveBayesModel.theta

журнал условных вероятностей класса.

Новое в версии 2.0.0.

т.е.

model = ...  # type: NaiveBayesModel

model.theta.toArray()  # type: numpy.ndarray

Полученный массив имеет размер (number-of-classes, number-of-features), а строки соответствуют последовательным меткам.

...