y_predict = predict_with_last_action(clf, X_test, onehot)

    clf = LinearCRF(feature_names=feature_names,
                    label_names=labels,
                    addone=True,
                    regularization=None,
                    lmbd=0.01,
                    sigma=100,
                    transition_weighting=False)

    #    a single chain:
    clf.fit(X_train, y_train, X_test, y_test)
    y_predict = clf.predict(X_test)
    #   one chain per person

    clf.batch_fit(X_train_pers, y_train_pers, X_test_pers, y_test_pers)
    y_predict = np.concatenate(clf.batch_predict(X_test_pers))

    clf = LinearCRF(sigma=10)
    X_train_svm, X_test_svm = SVM_feature_extraction(X_train, y_train, X_test)
    clf = LinearCRF(addone=True, sigma=100)
    clf.fit(X_train, y_train, X_test, y_test)

    clf.fit(X_train_svm, y_train, X_test_svm, y_test)
    y_predict = clf.predict(X_test_svm)

    clf.fit(X_train, y_train)

    print "predicting test data"

    y_predict = clf.predict(X_test)