Hi all,

+1 for a hybrid solution. But still a -1 for using skewness even in the
hybrid solution :D

One good example why we shouldn't use skenwness is the income distribution
graph in [1]. There, regardless of whether Im using the raw data (then its
a continuous feature) or whether Im breaking them in to intervals and
categorized the income in to several levels, I would get the same shape for
the distribution. i.e skewness would be significant.

So the point  Im trying to make is, categorical features as well as a
continuous features can be skewed/symmetric, and we cant really distinguish.

[1]
https://cdn2.vox-cdn.com/uploads/chorus_asset/file/2930990/Distribution_of_Annual_Household_Income_in_the_United_States_2012.0.png


On Fri, Aug 14, 2015 at 1:03 AM, Nirmal Fernando <nir...@wso2.com> wrote:

> Thanks Thushan. Good suggestion on the frequency.
>
> *solutions*
>
> 1. Categorical threshold: if # of distinct values are less than X, it is a
> categorical feature.
> 2. Make all features with only integers (no decimals) categorical.
> 3. Skewness: if skewness of a distribution of a feature is less than X, it
> is a categorical feature.
> 4. Gaps between consecutive distinct values
> 5. Frequency of distinct values - if they repeat enough, then it is a
> categorical feature.
> 6. Combined solution
>
> So, I guess as suggested by many of you, we need to build a combined
> solution.
>
> On Fri, Aug 14, 2015 at 10:29 AM, Thushan Ganegedara <thu...@gmail.com>
> wrote:
>
>> Moreover, I think a hybrid approach as follows might work well.
>>
>> 1. Select a sample
>>
>> 2. Filter columns by the data type and find potential categorical
>> variables (integer / string)
>>
>> 3. Filter further by checking if same values are repeated multiple times
>> in the dataset.
>>
>> On Fri, Aug 14, 2015 at 2:53 PM, Nirmal Fernando <nir...@wso2.com> wrote:
>>
>>> Thanks for all the input.
>>>
>>> So let me summarise;
>>>
>>> *the problem*
>>>
>>> * We need to determine whether a feature is a categorical one or not, to
>>> draw certain graphs to explore a dataset, before a user starts to build
>>> analyses (before user input).
>>> * We can't get a 100% accuracy, hence it is of course a suggestion that
>>> we do.
>>> * Question is, what would be the most accurate method.
>>>
>>> *solutions*
>>>
>>> 1. Categorical threshold: if # of distinct values are less than X, it is
>>> a categorical feature.
>>> 2. Make all features with only integers (no decimals) categorical.
>>> 3. Skewness: if skewness of a distribution of a feature is less than X,
>>> it is a categorical feature.
>>> 4. Gaps between consecutive distinct values
>>> 5. Combined solution
>>>
>>> On Fri, Aug 14, 2015 at 9:33 AM, Maheshakya Wijewardena <
>>> mahesha...@wso2.com> wrote:
>>>
>>>> Another approach to distinguish between categorical and numerical
>>>> features can be elaborated as follows:
>>>>
>>>> First, we take out the unique values from the column and sort them. If
>>>> it's a categorical feature, then the gaps between the elements of this
>>>> sorted list should be equal. In a numerical feature, this is extremely
>>>> unlikely to happen. This behavior of valid in most scenarios, but there are
>>>> a few exceptions as well. eg: when a numerical ID is used as the
>>>> categorical label - 19933, 19913, 18832, ...
>>>>
>>>> This is a very simple hack that can be easily implemented, but not a
>>>> standard technique.
>>>>
>>>> WDYT?
>>>>
>>>> On Fri, Aug 14, 2015 at 8:55 AM, Srinath Perera <srin...@wso2.com>
>>>> wrote:
>>>>
>>>>> I mean current approach and skewness?
>>>>>
>>>>> On Fri, Aug 14, 2015 at 8:54 AM, Srinath Perera <srin...@wso2.com>
>>>>> wrote:
>>>>>
>>>>>> Can we use a combination of both?
>>>>>>
>>>>>> On Thu, Aug 13, 2015 at 8:46 PM, Supun Sethunga <sup...@wso2.com>
>>>>>> wrote:
>>>>>>
>>>>>>> When a dataset is large, in general its said to be approximates to a
>>>>>>> Normal Distribution. :)  True it Hypothetical, but the point they make 
>>>>>>> is,
>>>>>>> when the datasets are large, then properties of a distribution like
>>>>>>> skewness, variance and etc. become closer to the properties Normal
>>>>>>> Distribution in most cases..
>>>>>>>
>>>>>>> On Thu, Aug 13, 2015 at 11:07 AM, Nirmal Fernando <nir...@wso2.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Hi Supun,
>>>>>>>>
>>>>>>>> Thanks for the reply.
>>>>>>>>
>>>>>>>> On Thu, Aug 13, 2015 at 8:09 PM, Supun Sethunga <sup...@wso2.com>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> Hi Nirmal,
>>>>>>>>>
>>>>>>>>> IMO don't think we would be able to use skewness in this case.
>>>>>>>>> Skewness says how symmetric the distribution is. For example, if we
>>>>>>>>> consider a numerical/continuous feature (not categorical) which is 
>>>>>>>>> Normally
>>>>>>>>> Distributed, then the skewness would be 0. Also for a categorical 
>>>>>>>>> (encoded)
>>>>>>>>> feature having a systematic distribution, then again the skewness 
>>>>>>>>> would be
>>>>>>>>> 0.
>>>>>>>>>
>>>>>>>>
>>>>>>>> What's the probability of you see a normal distribution of a real
>>>>>>>> dataset? IMO it's very less and also since what we're doing here is a
>>>>>>>> suggestion, do you see it as an issue?
>>>>>>>>
>>>>>>>>
>>>>>>>>>
>>>>>>>>> We did have this concern at the beginning as well, regarding how
>>>>>>>>> we could determine whether a feature is categorical or Continuous. 
>>>>>>>>> Usually
>>>>>>>>> this is strictly dependent on the domain of the dataset (i.e. user 
>>>>>>>>> have to
>>>>>>>>> decide this with the knowledge about the data). That was the idea 
>>>>>>>>> behind
>>>>>>>>> letting user change the data type.. But since we needed a default 
>>>>>>>>> option,
>>>>>>>>> we had to go for the threshold thing, which was the olny option we 
>>>>>>>>> could
>>>>>>>>> come-up with. I did a bit of research on this too, but only to find no
>>>>>>>>> other solution :(
>>>>>>>>>
>>>>>>>>> Thanks,
>>>>>>>>> Supun
>>>>>>>>>
>>>>>>>>> On Thu, Aug 13, 2015 at 1:49 AM, Nirmal Fernando <nir...@wso2.com>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> Hi All,
>>>>>>>>>>
>>>>>>>>>> We have a feature in ML where we suggest a given data column of a
>>>>>>>>>> dataset is categorical or numerical. Currently, how we determine 
>>>>>>>>>> this is by
>>>>>>>>>> using a threshold value (The maximum number of categories that
>>>>>>>>>> can have in a non-string categorical feature. If exceeds, the
>>>>>>>>>> feature will be treated as a numerical feature.). But this is
>>>>>>>>>> not a successful measurement for most of the datasets.
>>>>>>>>>>
>>>>>>>>>> Can we use 'skewness' of a distribution as a measurement to
>>>>>>>>>> determine this? Can we say, a column is numerical, if the modulus of 
>>>>>>>>>> the
>>>>>>>>>> skewness of the distribution is less than a certain threshold (say 
>>>>>>>>>> 0.01) ?
>>>>>>>>>>
>>>>>>>>>> *References*:
>>>>>>>>>>
>>>>>>>>>> http://www.itrcweb.org/gsmc-1/Content/GW%20Stats/5%20Methods%20in%20indiv%20Topics/5%206%20Distributional%20Tests.htm
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>>
>>>>>>>>>> Thanks & regards,
>>>>>>>>>> Nirmal
>>>>>>>>>>
>>>>>>>>>> Team Lead - WSO2 Machine Learner
>>>>>>>>>> Associate Technical Lead - Data Technologies Team, WSO2 Inc.
>>>>>>>>>> Mobile: +94715779733
>>>>>>>>>> Blog: http://nirmalfdo.blogspot.com/
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> *Supun Sethunga*
>>>>>>>>> Software Engineer
>>>>>>>>> WSO2, Inc.
>>>>>>>>> http://wso2.com/
>>>>>>>>> lean | enterprise | middleware
>>>>>>>>> Mobile : +94 716546324
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>>
>>>>>>>> Thanks & regards,
>>>>>>>> Nirmal
>>>>>>>>
>>>>>>>> Team Lead - WSO2 Machine Learner
>>>>>>>> Associate Technical Lead - Data Technologies Team, WSO2 Inc.
>>>>>>>> Mobile: +94715779733
>>>>>>>> Blog: http://nirmalfdo.blogspot.com/
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> *Supun Sethunga*
>>>>>>> Software Engineer
>>>>>>> WSO2, Inc.
>>>>>>> http://wso2.com/
>>>>>>> lean | enterprise | middleware
>>>>>>> Mobile : +94 716546324
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> ============================
>>>>>> Blog: http://srinathsview.blogspot.com twitter:@srinath_perera
>>>>>> Site: http://people.apache.org/~hemapani/
>>>>>> Photos: http://www.flickr.com/photos/hemapani/
>>>>>> Phone: 0772360902
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> ============================
>>>>> Blog: http://srinathsview.blogspot.com twitter:@srinath_perera
>>>>> Site: http://people.apache.org/~hemapani/
>>>>> Photos: http://www.flickr.com/photos/hemapani/
>>>>> Phone: 0772360902
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Pruthuvi Maheshakya Wijewardena
>>>> Software Engineer
>>>> WSO2 : http://wso2.com/
>>>> Email: mahesha...@wso2.com
>>>> Mobile: +94711228855
>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>>
>>> Thanks & regards,
>>> Nirmal
>>>
>>> Team Lead - WSO2 Machine Learner
>>> Associate Technical Lead - Data Technologies Team, WSO2 Inc.
>>> Mobile: +94715779733
>>> Blog: http://nirmalfdo.blogspot.com/
>>>
>>>
>>>
>>> _______________________________________________
>>> Dev mailing list
>>> Dev@wso2.org
>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>
>>>
>>
>>
>> --
>> Regards,
>>
>> Thushan Ganegedara
>> School of IT
>> University of Sydney, Australia
>>
>
>
>
> --
>
> Thanks & regards,
> Nirmal
>
> Team Lead - WSO2 Machine Learner
> Associate Technical Lead - Data Technologies Team, WSO2 Inc.
> Mobile: +94715779733
> Blog: http://nirmalfdo.blogspot.com/
>
>
>
> _______________________________________________
> Dev mailing list
> Dev@wso2.org
> http://wso2.org/cgi-bin/mailman/listinfo/dev
>
>


-- 
*Supun Sethunga*
Software Engineer
WSO2, Inc.
http://wso2.com/
lean | enterprise | middleware
Mobile : +94 716546324
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to