Генерация распределения вероятностей с помощью методов обучения Scikit - PullRequest
0 голосов
/ 26 марта 2020

Я хочу получить распределение prbability для моей проблемы регрессии, используя scikit-learn. Я использую разные классификаторы (например, logisti c Regresion):

from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression

X_train, X_test, y_train, y_test = train_test_split(X, y11, test_size=0.2, random_state=0)
lr=LogisticRegression(random_state=0, solver='lbfgs', max_iter=10).fit(X_train, y_train)
classes = lr.classes_
class_list = []

for x in range(len(classes)):

    class_list.append(np.c_[y_test,lr.predict_proba(X_test)[:,x]])

print(class_list)

дает вывод:

array([[  0.00e+00,   9.99e-01],
   [  9.00e+01,   1.26e-02],
   [  4.00e+01,   2.73e-06],
   [  0.50e+01,   1.97e-05],
   [  1.00e+01,   5.96e-03],
   [  6.00e+01,   1.19e-03],
   [  1.00e+02,   3.25e-03],
   [  6.50e+01,   2.63e-04],
   [  5.00e+00,   2.76e-04],
   [  7.50e+01,   8.21e-04],
   [  9.00e+01,   2.38e-02],
   [  0.00e+00,   9.81e-01],
   [  0.00e+00,   6.00e-01],
   [  1.50e+01,   1.36e-09],
   [  2.00e+01,   3.14e-04],
   [  2.50e+01,   4.03e-04],
   [  5.50e+01,   5.51e-05],
   [  0.00e+00,   9.96e-01],
   [  8.00e+01,   5.11e-06],
   [  6.50e+01,   8.81e-06],
   [  3.00e+01,   1.96e-03],
   [  5.50e+01,   1.67e-04],
   [  7.00e+00,   4.83e-07],
   [  2.00e+01,   1.25e-04],
   [  9.50e+01,   5.34e-03],
   [  1.50e+01,   6.07e-06],
   [  8.50e+01,   1.13e-04],
   [  2.00e+01,   7.13e-06],
   [  3.50e+01,   3.72e-03],
   [  5.00e+00,   6.21e-03],
   [  4.50e+01,   8.22e-04]])

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

Таким образом, вероятность быть в классе 0:

 9.99e-01, 9.81e-01, 6.00e-01, 9.96e-01

Вероятность быть в 5 классе:

1.97e-05

Вероятность быть в 10 классе:

5.96e-03

Вероятность в 15 классе:

1.36e-09, 6.07e-06

et c.

И я хочу метод, который дает мне вместо вероятностей класса, например predict_proba распределение вероятностей для регрессии, например:

Для класса 0:

0.3

Для класса 0.1:

0.2

Для класса 0.2:

0.1

Для класса 0.3:

0.08

et c.

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