0
$\begingroup$

I'm using this dataset, https://archive.ics.uci.edu/ml/datasets/Drug+consumption+%28quantified%29, in a research whose main goal is to find correlations among attributes that influences people to be addicted to some "illegal" drugs. For example, people who are womem, aged between 25-34 and likes too much chocolate, has a probability of x% to also be addicted to cannabis.

After preprocessing de original database, I now have the following attributes:

Inputs:

18-24
25-34
35-44
45-54
55-64
65+
GENDER  
EDUCATION   
N   
E   
O   
A   
C   
I   
SS  
CAFF    
NICOTINE    
CHOC    
ALCOHOL

Classes:

AMPHET
AMYL    
BENZOS  
CANNABIS    
COKE    
CRACK   
ECSTASY 
HEROIN  
KETAMINE    
LEGALH  
LSD 
METH    
MUSH    
VSA

As you can see, this is a multiclass classification problem, where a sample can belong to more than one class at the same time. Below there is a example sample that belongs to several classes:

enter image description here

My question is: which algorithm(s) best suit for this classification and correlation problem? I've already taken a look in Multinomial Naïve Bayes and Decision Trees, but I'm not sure if these algorithms can solve this particular kind of problem well.

OBS. I'm using Python with Scikit-learn.

Thanks in advance.

$\endgroup$
-1
$\begingroup$

Naive Bayes doesn't give good results because of the assumption that all the features are independent. Apart from Random Forest, I would suggest to use SVM or MLP from scikit learn. SVM works well when even when the classes are non-linearly separable, but the problem with SVM is that it takes a lot of time to train a model when the dataset is quite large. Apart from this you can use onevsrestclassifier from sklearn.multiclass for better results. http://scikit-learn.org/stable/modules/generated/sklearn.multiclass.OneVsRestClassifier.html#examples-using-sklearn-multiclass-onevsrestclassifier

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.