Объединение данных с помощью 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 ответов
Во-первых, то, что вы сделали, правильно.
Есть много способов скопировать ваши данные:
- на основе значений столбца (например, деление столбца на 10 равных групп между минимальным и максимальным значением столбца).
- на основе распределения значений столбца, например, это может быть 10 групп на основе децилей столбца (для этого лучше использовать pandas.qcut)
- на основе цели, как вы сделали. Я нашел этот блог релевантным для вас, и я думаю, что ваш метод поиска лучших сплитов отлично работает https://towardsdatascience.com/discretisation-using-decision-trees-21910483fa4b