Объединение данных с помощью DecisionTreeClassifier sklearn?

Предположим, у меня есть набор данных:

    X     y
   20     0
   22     0
   24     1
   27     0
   30     1
   40     1
   20     0
   ...

Я пытаюсь разделить X на несколько бинов, сводя к минимуму энтропию. поэтому я сделал следующее:

clf = tree.DecisionTreeClassifier(criterion = 'entropy',max_depth = 4)
clf.fit(X.values.reshape(-1,1),y.values)

threshold = clf.tree_.threshold[clf.tree_.threshold>-2]
threshold = np.sort(threshold)

"Порог" должен давать точки разделения, это правильный способ объединения данных?

какие-либо предложения?

0 ответов

Во-первых, то, что вы сделали, правильно.

Есть много способов скопировать ваши данные:

  1. на основе значений столбца (например, деление столбца на 10 равных групп между минимальным и максимальным значением столбца).
  2. на основе распределения значений столбца, например, это может быть 10 групп на основе децилей столбца (для этого лучше использовать pandas.qcut)
  3. на основе цели, как вы сделали. Я нашел этот блог релевантным для вас, и я думаю, что ваш метод поиска лучших сплитов отлично работает https://towardsdatascience.com/discretisation-using-decision-trees-21910483fa4b
Другие вопросы по тегам