Ejemplo n.º 1
0
    def clsf2_by_clst(Xpart_cf, Xpart_ct):
        """
		Clustering is performed and then, classification performed by clustered indices. 
		"""
        cl_model = cluster.KMeans(n_clusters=nb_classes)
        cl_model.fit(Xpart_ct)
        yint = cl_model.predict(Xpart_ct)

        X_train, X_test, y_train, y_test = \
         model_selection.train_test_split( Xpart_cf, yint, test_size = 0.2)

        model = tree.DecisionTreeClassifier()
        model.fit(X_train, y_train)
        dt_score = model.score(X_test, y_test)
        print("DT-C:", dt_score)

        model = svm.SVC(kernel='linear')
        model.fit(X_train, y_train)
        sv_score = model.score(X_test, y_test)
        print("SVC:", sv_score)

        model = kkeras.MLPC([Xpart_cf.shape[1], 30, 10, nb_classes])
        model.fit(X_train, y_train, X_test, y_test, nb_classes)
        mlp_score = model.score(X_test, y_test)
        print("MLP:", mlp_score)

        return dt_score, sv_score, mlp_score
Ejemplo n.º 2
0
def clst(X_train, y_train, X_test, y_test, nb_classes):
    model = tree.DecisionTreeClassifier()
    model.fit(X_train, y_train)
    dt_score = model.score(X_test, y_test)
    print("DT-C:", dt_score)

    model = svm.SVC(kernel='linear')
    model.fit(X_train, y_train)
    sv_score = model.score(X_test, y_test)
    print("SVC:", sv_score)

    model = kkeras.MLPC([X_train.shape[1], 30, 10, nb_classes])
    model.fit(X_train, y_train, X_test, y_test, nb_classes)
    mlp_score = model.score(X_test, y_test)
    print("DNN:", mlp_score)

    model = kkeras.CNNC(param_d["n_cv_flt"],
                        param_d["n_cv_ln"],
                        param_d["cv_activation"],
                        l=[X_train.shape[1], 30, 10, nb_classes])
    model.fit(X_train, y_train, X_test, y_test, nb_classes)
    cnn_score = model.score(X_test, y_test)
    print("DCNN:", cnn_score)

    model = ensemble.RandomForestClassifier(n_estimators=10)
    model.fit(X_train, y_train)
    rf_score = model.score(X_test, y_test)
    print("RF:", rf_score)

    return dt_score, sv_score, mlp_score, cnn_score, rf_score
Ejemplo n.º 3
0
def _clst_r0(X_train, y_train, X_test, y_test, nb_classes, disp=True):
    model = tree.DecisionTreeClassifier()
    model.fit(X_train, y_train)
    dt_score = model.score(X_test, y_test)

    model = svm.SVC(C=param_d['SVC:C'], gamma=param_d['SVC:gamma'])
    # print(model)
    model.fit(X_train, y_train)
    sv_score = model.score(X_test, y_test)

    model = kkeras.MLPC(
        [X_train.shape[1], param_d["DNN:H1"], param_d["DNN:H2"], nb_classes])
    model.fit(X_train, y_train, X_test, y_test, nb_classes)
    mlp_score = model.score(X_test, y_test)

    model = kkeras.CNNC(
        param_d["n_cv_flt"],
        param_d["n_cv_ln"],
        param_d["cv_activation"],
        l=[X_train.shape[1], param_d["DNN:H1"], param_d["DNN:H2"], nb_classes])
    model.fit(X_train, y_train, X_test, y_test, nb_classes)
    cnn_score = model.score(X_test, y_test)

    model = ensemble.RandomForestClassifier(
        n_estimators=param_d['RF:n_estimators'],
        oob_score=param_d['RF:oob_score'])
    # print(model)
    model.fit(X_train, y_train)
    rf_score = model.score(X_test, y_test)

    if disp:
        print("DT-C:", dt_score)
        print("SVC:", sv_score)
        print("DNN:", mlp_score)
        print("DCNN:", cnn_score)
        print("RF:", rf_score)

    return dt_score, sv_score, mlp_score, cnn_score, rf_score
Ejemplo n.º 4
0
    def clsf2_by_yint(X1part, yint):
        """
		classification is performed by yint
		"""
        X_train, X_test, y_train, y_test = \
         model_selection.train_test_split( X1part, yint, test_size = 0.2)

        model = tree.DecisionTreeClassifier()
        model.fit(X_train, y_train)
        dt_score = model.score(X_test, y_test)
        print("DT:", dt_score)

        model = svm.SVC(kernel='linear')
        model.fit(X_train, y_train)
        sv_score = model.score(X_test, y_test)
        print("SVC:", sv_score)

        model = kkeras.MLPC([X1part.shape[1], 30, 10, nb_classes])
        model.fit(X_train, y_train, X_test, y_test, nb_classes)
        mlp_score = model.score(X_test, y_test)
        print("MLP:", mlp_score)

        return dt_score, sv_score, mlp_score
Ejemplo n.º 5
0
def clst(X_train,
         y_train,
         X_test,
         y_test,
         nb_classes,
         disp=True,
         confusion_matric_return=False,
         matthews_corrcoef_return=False):
    """
    dt_score, sv_score, mlp_score, cnn_score, rf_score =
        clst(X_train, y_train, X_test, y_test, nb_classes, disp=True,
             confusion_matric_return=False):

    dt_score, sv_score, mlp_score, cnn_score, rf_score,
    dt_cf, sv_cf, mlp_cf, cnn_cf, rf_cf =
        clst(X_train, y_train, X_test, y_test, nb_classes, disp=True,
             confusion_matric_return=True):

    Claustering by multiple classification methods

    Inputs
    ======
    confusion_matric_return, True or False
    Whether it will return a confusion matric or not.
    """
    model = tree.DecisionTreeClassifier()
    model.fit(X_train, y_train)
    dt_score = model.score(X_test, y_test)
    y_pred = model.predict(X_test)
    dt_cf = metrics.confusion_matrix(y_test, y_pred)
    if matthews_corrcoef_return:
        dt_mc = metrics.matthews_corrcoef(y_test, y_pred)

    model = svm.SVC(C=param_d['SVC:C'], gamma=param_d['SVC:gamma'])
    # print(model)
    model.fit(X_train, y_train)
    sv_score = model.score(X_test, y_test)
    y_pred = model.predict(X_test)
    sv_cf = metrics.confusion_matrix(y_test, y_pred)
    if matthews_corrcoef_return:
        sv_mc = metrics.matthews_corrcoef(y_test, y_pred)

    model = kkeras.MLPC(
        [X_train.shape[1], param_d["DNN:H1"], param_d["DNN:H2"], nb_classes])
    model.fit(X_train, y_train, X_test, y_test, nb_classes)
    mlp_score = model.score(X_test, y_test)
    y_pred = model.predict(X_test)
    mlp_cf = metrics.confusion_matrix(y_test, y_pred)
    if matthews_corrcoef_return:
        mlp_mc = metrics.matthews_corrcoef(y_test, y_pred)

    model = kkeras.CNNC(
        param_d["n_cv_flt"],
        param_d["n_cv_ln"],
        param_d["cv_activation"],
        l=[X_train.shape[1], param_d["DNN:H1"], param_d["DNN:H2"], nb_classes])
    model.fit(X_train, y_train, X_test, y_test, nb_classes)
    cnn_score = model.score(X_test, y_test)
    y_pred = model.predict(X_test)
    cnn_cf = metrics.confusion_matrix(y_test, y_pred)
    if matthews_corrcoef_return:
        cnn_mc = metrics.matthews_corrcoef(y_test, y_pred)

    model = ensemble.RandomForestClassifier(
        n_estimators=param_d['RF:n_estimators'],
        oob_score=param_d['RF:oob_score'])
    # print(model)
    model.fit(X_train, y_train)
    rf_score = model.score(X_test, y_test)
    y_pred = model.predict(X_test)
    rf_cf = metrics.confusion_matrix(y_test, y_pred)
    if matthews_corrcoef_return:
        rf_mc = metrics.matthews_corrcoef(y_test, y_pred)

    if disp:
        print('Acrracuy, matthews corrcoef, confusion metrics')
        print("DT-C:", dt_score, dt_mc)
        print(dt_cf)
        print("SVC:", sv_score, sv_mc)
        print(sv_cf)
        print("DNN:", mlp_score, mlp_mc)
        print(mlp_cf)
        print("DCNN:", cnn_score, cnn_mc)
        print(cnn_cf)
        print("RF:", rf_score, rf_mc)
        print(rf_cf)

    return_l = [dt_score, sv_score, mlp_score, cnn_score, rf_score]
    if confusion_matric_return:
        return_l.extend([dt_cf, sv_cf, mlp_cf, cnn_cf, rf_cf])
    if matthews_corrcoef_return:
        return_l.extend([dt_mc, sv_mc, mlp_mc, cnn_mc, rf_mc])
    return return_l