Your contribution would be very welcome, I think the current work has
stalled.
On 01/04/2018 10:02 AM, Julio Antonio Soto de Vicente wrote:
Hi Yang Li,
I have to agree with you. Bitset and/or one hot encoding are just
hacks which should not be necessary for decision tree learners.
There is some WIP on an implementation for natural handling of
categorical features in trees: please take a look at
https://github.com/scikit-learn/scikit-learn/pull/4899
Cheers!
--
Julio
El 4 ene 2018, a las 9:06, 李扬 <sky188133...@163.com
<mailto:sky188133...@163.com>> escribió:
Dear J.B.,
Thanks for your advice!
Yeah, I have considered using bitstring or sequence number, but the
problem is the algorithm not the representation of categorical data.
Take the regression tree as an example, the algorithm in sklearn find
a split value of the feature, and find the best split by computing
the minimal impurity of child nodes.
However, find a split of the categorical feature is not that
meaningful even though u represent it as continuous value, and the
split result is partially depends on how u permute the value in
categorical feature, which is not very persuasive.
Instead, in the CART algorithm, *u should separate each category in
the feature from others and compute the impurity of the two sets.
Then find the best separation strategy with the minimal impurity.*
Obviously, this separation process can`t be finished by current
algorithm which simply use the split method on continuous value.
One more possible shortcoming is the categorical feature can`t be
properly visualized. when forming a tree graph, it`s hard to get
information from the categorical feature node while u just split it.
Thank you for your time!
Best wishes.
--
顺颂时祺!
*
*
李扬
上海交通大学 电子信息 与 电气工程 学院
电话:18818212371
地址:上海市闵行区东川路800号
邮编:200240
Yang Li +86 188 1821 2371
Shanghai Jiao Tong University
School of Electronic,Information and Electrical Engineering F1203026
800 Dongchuan Road, Minhang District, Shanghai 200240
At 2018-01-04 15:30:34, "Brown J.B. via scikit-learn"
<scikit-learn@python.org <mailto:scikit-learn@python.org>> wrote:
Dear Yang Li,
> Neither the classificationTree nor the regressionTree supports
categorical feature. That means the Decision trees model can only
accept continuous feature.
Consider either manually encoding your categories in bitstrings
(e.g., "Facebook" = 001, "Twitter" = 010, "Google" = 100), or
using OneHotEncoder to do the same thing for you automatically.
Cheers,
J.B.
_______________________________________________
scikit-learn mailing list
scikit-learn@python.org <mailto:scikit-learn@python.org>
https://mail.python.org/mailman/listinfo/scikit-learn
_______________________________________________
scikit-learn mailing list
scikit-learn@python.org
https://mail.python.org/mailman/listinfo/scikit-learn
_______________________________________________
scikit-learn mailing list
scikit-learn@python.org
https://mail.python.org/mailman/listinfo/scikit-learn