from mempamal.datasets import iris X, y = iris.get_data() from sklearn.linear_model.logistic import LogisticRegression from sklearn.preprocessing.data import StandardScaler from sklearn.cross_validation import StratifiedKFold from sklearn.pipeline import Pipeline from sklearn.metrics import f1_score s1 = StandardScaler(with_mean=True, with_std=True) s2 = LogisticRegression() p = [("scaler", s1), ("logit", s2)] est = Pipeline(p) fold_iter = StratifiedKFold(y, n_folds=5) train, test = fold_iter.__iter__().next() X_train, X_test = X[train], X[test] y_train, y_test = y[train], y[test] y_pred = est.fit(X_train, y_train).predict(X_test) f1_score(y_test, y_pred) from mempamal.configuration import JSONify_estimator, JSONify_cv, build_dataset from mempamal.workflow import create_wf, save_wf s1 = StandardScaler(with_mean=True, with_std=True) s2 = LogisticRegression(C=1e4) p = [("scaler", s1), ("logit", s2)] est = Pipeline(p) method_conf = JSONify_estimator(est, out="./est.json") cv_conf = JSONify_cv(StratifiedKFold, cv_kwargs={"n_folds": 5}, score_func=f1_score, stratified=True, out="./cv.json") dataset = build_dataset(X, y, method_conf, cv_conf, ".") wfi = create_wf(dataset['folds'], cv_conf, method_conf, ".", verbose=True) wf = save_wf(wfi, "./workflow.json", mode="soma-workflow") for dep in wfi[1]: print(dep) from soma_workflow.client import WorkflowController import time import json import sklearn.externals.joblib as joblib controller = WorkflowController() wf_id = controller.submit_workflow(workflow=wf, name="first example") while controller.workflow_status(wf_id) != 'workflow_done': time.sleep(2) print(joblib.load('./final_res.pkl'))