0

I'm getting Ups, [Errno 2] No such file or directory error when I try to fit models using the python wrapper for the mljar api.

Does anyone know how to fix this?

The code:

from sklearn import datasets

iris = datasets.load_iris()
X, y = iris.data, iris.target

from sklearn.cross_validation import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.5)

from mljar import Mljar

models = Mljar(
    project='MLJAR api test', experiment='Iris',
    metric='logloss',
    validation_kfolds=5, # we will use 5-fold CV with stratify and shuffle
    validation_shuffle=True,
    validation_stratify=True,
    algorithms=['xgb', 'lgb', 'mlp'], # select Xgboost, LightGBM and Neural Network
    tuning_mode='Normal', # number of models to be checked for each algorithm
    single_algorithm_time_limit=5
)

models.fit(X_train, y_train)

For some reason, there is no traceback. I just get the error: Ups, [Errno 2] No such file or directory: /tmp/dataset-002317be.csv

pplonski
  • 5,023
  • 1
  • 30
  • 34
Victor Valente
  • 761
  • 9
  • 24

1 Answers1

1

I just figured it out.

This is part of the python api wrapper code at C:\Users\username\AppData\Local\Continuum\anaconda2\Lib\site-packages\mljar\client\dataset.py

def add_new_dataset(self, data, y, title_prefix = 'dataset-'):
    [...]
    file_path = '/tmp/dataset-'+ str(uuid.uuid4())[:8]+'.csv'
    [...]
    data.to_csv(file_path, index=False)

It tries to create the dataset file at /tmp but the directory doesn't exist. In my opinion, the best way to solve this is to create a tmp folder at the root of your current drive. In my case, this is shared network drive, in which there was no /tmp folder.

I also found the part of the code responsible for the missing traceback: C:\Users\username\AppData\Local\Continuum\anaconda2\Lib\site-packages\mljar\mljar.py

except Exception as e:
    print 'Ups, %s' % str(e)
Victor Valente
  • 761
  • 9
  • 24