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
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
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
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
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