# Accuracy differs between MATLAB and scikit-learn for a decision tree

Is there any possibility to vary the accuracy of same data set in matlab and jupyter notebook by using python code ?

For same data set, at first I applied it in matlab and get 96% accuracy for decision tree method, then I apply that same data set in jupyter notebook by using python code where I get 53% accuracy for C4.5 (decision tree) by using k-fold cross validation.

I didn't understand where's the problem for getting different accuracy for same dataset and same method.

My procedure in python code is given below:

import pandas as pd
import numpy as np
from sklearn import tree
from sklearn.model_selection import KFold



# define X and y
feature_cols = ['Past','Family_History','Current','current or previous
workplace','diagnosed with a mental health condition by a
medical professional?','do you feel that it interferes with
your work when being treated effectively?','Gender']
X = train[feature_cols]

# y is a vector, hence we use dot to access 'label'
y = train['Diagonised condition']

kfold = KFold(n_splits=10,random_state=None)
model = tree.DecisionTreeClassifier(criterion='gini')

results = cross_val_score(model, X, y, cv=kfold,scoring = 'accuracy')
result = results.mean()*100

std = results.std()*100
print (result)


• Please post the MATLAB code so it can be compared to the Python code. Jan 23 '19 at 16:12
• In matlab I use classification app (decision tree) and load my data set then calculate accuracy. Jan 23 '19 at 18:05
• Are you sure that all other parameters for your decision tree are the same? Jan 24 '19 at 6:23
• @MajidMortazavi, Yes I am sure . I use the same dataset and same parameters. Jan 24 '19 at 6:49