예제 #1
0
    def test_input_rf(self) -> None:
        """ test for diabetes"""
        my_dict = {
            "B": float(self.l1.text()),
            "C": float(self.l2.text()),
            "D": float(self.l3.text()),
            "E": float(self.l4.text()),
            "F": float(self.l5.text())
        }
        rf_output = Random_Forest.check_input(my_dict)
        self.setFixedSize(850, 342)
        self.report_subhead.setText("Reports")
        self.model_details.setText(
            "Random Forest classifier used.\nAccuracy of model: 77.92%\nWe have used PIMA Indians diabetes dataset."
        )
        self.details.setText(
            "Patient's name: {}\nPlasma glucose concentration: {} \
\nDiastolic blood pressure: {}\nTriceps skin fold thickness: {}\nSerum insulin: {}\nBody mass index: {}"
            .format(self.l0.text(), self.l1.text(), self.l2.text(),
                    self.l3.text(), self.l4.text(), self.l5.text()))

        if rf_output == 0:
            op = self.results.setText(
                "Diagnosis suggests that patient does not suffers from diabetes."
            )
        else:
            op = self.results.setText(
                "Our diagnosis suggests patient does suffer from diabetes.\nPlease get checked soon."
            )
        self.results.setFont(QFont("Arial", 14, weight=QFont.Bold))
def exec_(path, pathR, clf):

    tp = [0.25, 0.15, 0.15, 0.15, 0.15, 0.2]  #testing set percentage
    c = [8, 1.5, 1, 1, 8, 2]  #Penalty of svm
    N = 15  #Number of most important index

    Train_time_ = np.empty((6, 0), float)
    Train_acc_ = np.empty((6, 0), float)
    Test_acc_ = np.empty((6, 0), float)
    name = 'Random_Forest_Results.xlsx'

    for a in range(0, 6):
        print('Activity # ', a)
        tt = []
        tra = []
        tea = []
        for N in range(1, 44):
            auxX = []
            auxY = []
            auxZ = []
            for j in range(
                    1, 10
            ):  #Trials with the same conditions (what varies is the content of training and testing sets)
                X, Y, Z = Random_Forest.exec_(a, tp[a], c[a], N, path, clf)
                auxX.append(X)
                auxY.append(Y)
                auxZ.append(Z)
            tt.append(np.mean(auxX))
            tra.append(np.mean(auxY))
            tea.append(np.mean(auxZ))

        Train_time_ = np.append(Train_time_, tt)
        Train_acc_ = np.append(Train_acc_, tra)
        Test_acc_ = np.append(Test_acc_, tea)

    Train_time_ = np.reshape(Train_time_, (43, 6))
    Train_acc_ = np.reshape(Train_acc_, (43, 6))
    Test_acc_ = np.reshape(Test_acc_, (43, 6))

    Train_time = pd.DataFrame(Train_time_,
                              columns=['C1', 'C2', 'F1', 'F2', 'M', 'R'])
    Train_acc = pd.DataFrame(Train_acc_,
                             columns=['C1', 'C2', 'F1', 'F2', 'M', 'R'])
    Test_acc = pd.DataFrame(Test_acc_,
                            columns=['C1', 'C2', 'F1', 'F2', 'M', 'R'])

    writer = pd.ExcelWriter(pathR + name)
    Train_time.to_excel(writer, 'Train_time')
    Train_acc.to_excel(writer, 'Train_acc')
    Test_acc.to_excel(writer, 'Test_acc')
    writer.save()

    print('Random Forest Results Correctly Saved!!!! ')
예제 #3
0
def main():

    print("\nPHM_model_testing")
    
    while True:
        user = input("1. Random Forest\n2. Isolation Forest\n3. OCSVM\n4. Classifier SVM\n5. RFE\n6. Linear Regression\n7. Quit\n")
        
        if user == '1':
            Random_Forest.run()
        elif user == '2':
            Isolation_Forest.run()
        elif user == '3':
            OCSVM.run()
        elif user == '4':
            SVM.run()
        elif user == '5':
            RFE.run()
        elif user == '6':
            Lin_reg.run()
        elif user == '7':
            break

        print("\n----------Main-----------")
예제 #4
0
    def test_input_rf(self) -> None:
        """ test for diabetes"""
        my_dict = {
            "B": float(self.l1.text()),
            "C": float(self.l2.text()),
            "D": float(self.l3.text()),
            "E": float(self.l4.text()),
            "F": float(self.l5.text())
        }
        rf_output = Random_Forest.check_input(my_dict)

        global diabetes_yes, diabetes_no

        if rf_output == 0:
            diabetes_no = diabetes_no + 0.78
        else:
            diabetes_yes = diabetes_yes + 0.78
예제 #5
0
def form_submit():
    print(request)
    the_dict = request.get_json(force=True, silent=True)
    months = dict(January=1,
                  February=2,
                  March=3,
                  April=4,
                  May=5,
                  June=6,
                  July=7,
                  August=8,
                  September=9,
                  October=10,
                  November=11,
                  December=12)

    model_data = Random_Forest.Random_Forest(
        plan_model, premium_model, 0 if the_dict['gender'] == 'M' else 1,
        the_dict['date'].split(",")[1],
        months[the_dict['date'].split(' ')[1][:-1]], the_dict['smoke'],
        the_dict['income'], the_dict['optional_insured'], the_dict['weight'],
        the_dict['height'], the_dict['married'])

    print(model_data['platinum'][0])
    #return plans(model_data['bronze'][0], model_data['silver'][0], model_data['gold'][0], model_data['platinum'][0])
    '''
		{"plan": plan_prediction, "bronze": premiums["bronze"],
	            "silver": premiums["silver"], "gold": premiums["gold"],
	            "platinum": premiums["platinum"]}
	'''
    '''
		u'city': u'h3', u'first_name': u'abc', u'last_name': u'def', u'weight': u'3', u'gender': u'3',
		u'married': u'0', u'height': u'3', u'state': u'3', u'optional_insured': u'3', u'income': u'3',
		 u'smoke': u'1', u'address': u'hig', u'date': u'11 December, 2017'}
	'''
    return json.dumps({
        'bronze': model_data['bronze'][0],
        'silver': model_data['silver'][0],
        'gold': model_data['gold'][0],
        'platinum': model_data['platinum'][0]
    }), 200, {
        'ContentType': 'application/json'
    }
def test_build_own_model():
    df_train = 'C:/Users/Henry Lee/Desktop/Direct/project/Missing-Density-PDB/model/newsummary_1000.csv'
    assert isinstance(RF.build_own_model(df_train), float) is True, \
        "Warning: Incorrect output"
    return
def get_reason_prediction():
    df_train = 'C:/Users/Henry Lee/Desktop/Direct/project/Missing-Density-PDB/model/newsummary_1000.csv'
    assert isinstance(RF.get_reason_prediction(df_train, 10), bool) is True, \
        "Warning: Incorrect output"
    return
예제 #8
0
	print("Patient file created")
else:
	print("Patient file already exist, using that")


df_co = pd.read_csv('Transformed Data/Transformed_Co', index_col = 0)
df_pt = pd.read_csv('Transformed Data/Transformed_Pt' , index_col = 0)




print("\n\n\nRandom Forest\n\n")

import Random_Forest

Random_Forest.randomForest(df_co,df_pt)
print("\n\n\nKNN\n\n")
import KNN

KNN.kNN(df_co,df_pt)


print("\n\n\nLinear SVM\n\n")
import SVM_Linear

SVM_Linear.svmLinear(df_co,df_pt)


print("\n\n\nPolynomial SVM\n\n")
import SVM_Poly
예제 #9
0
        months[the_dict['date'].split(' ')[1][:-1]], the_dict['smoke'],
        the_dict['income'], the_dict['optional_insured'], the_dict['weight'],
        the_dict['height'], the_dict['married'])

    print(model_data['platinum'][0])
    #return plans(model_data['bronze'][0], model_data['silver'][0], model_data['gold'][0], model_data['platinum'][0])
    '''
		{"plan": plan_prediction, "bronze": premiums["bronze"],
	            "silver": premiums["silver"], "gold": premiums["gold"],
	            "platinum": premiums["platinum"]}
	'''
    '''
		u'city': u'h3', u'first_name': u'abc', u'last_name': u'def', u'weight': u'3', u'gender': u'3',
		u'married': u'0', u'height': u'3', u'state': u'3', u'optional_insured': u'3', u'income': u'3',
		 u'smoke': u'1', u'address': u'hig', u'date': u'11 December, 2017'}
	'''
    return json.dumps({
        'bronze': model_data['bronze'][0],
        'silver': model_data['silver'][0],
        'gold': model_data['gold'][0],
        'platinum': model_data['platinum'][0]
    }), 200, {
        'ContentType': 'application/json'
    }


if __name__ == "__main__":
    plan_model = Random_Forest.get_plan_model()
    premium_model = Random_Forest.get_premium_model()
    app.run(debug=True, host="0.0.0.0", port=8080)
13) SVM
14) XGB
15) ANN
'''
usr_input = int(input(sel))
if usr_input == 1:
    # RAW
    train_path = './preprocessed_training_set/train_df.csv'
    test_path = './preprocessed_training_set/test_df.csv'
    KNN_obj = knn.KNN(train_path, test_path)
    run_KNN_trainer()
elif usr_input == 2:
    # RAW
    train_path = './preprocessed_training_set/train_df.csv'
    test_path = './preprocessed_training_set/test_df.csv'
    RF_obj = rf.RF(train_path, test_path)
    run_RF_trainer()
elif usr_input == 3:
    # RAW
    train_path = './preprocessed_training_set/train_df.csv'
    test_path = './preprocessed_training_set/test_df.csv'
    SVM_obj = svm.SVM(train_path, test_path)
    run_SVM_trainer()
elif usr_input == 4:
    # RAW
    train_path = './preprocessed_training_set/train_df.csv'
    test_path = './preprocessed_training_set/test_df.csv'
    XGB_obj = xgb.XGB(train_path, test_path)
    run_XGB_trainer()
elif usr_input == 5:
    # RAW
    if args.grid_search:
        doLoadConfig = 1
    else:
        doLoadConfig = 0

    if not (args.infer_rf and args.infer_svm):
        if args.train_rf:
            configPath_RF = None

            if doLoadConfig == 1:
                configPath_RF = "curRunConfig_RF.json"

            output_dir = getNextRunDir('rf_search')

            cfg_RF = Random_Forest.loadConfig_RF(configPath_RF)

            Random_Forest.run_rf_once(trainx, trainy, validx, validy)

            printConfig_RF(output_dir, cfg_RF)
            print('Configs stored in {}'.format(output_dir))

        elif args.train_svm:
            configPath_SVM = None

            if doLoadConfig == 1:
                configPath_SVM = "curRunConfig_SVM.json"

            output_dir = getNextRunDir('svm_search')

            cfg_SVM = Svm.loadConfig_SVM_poly(configPath_SVM)
예제 #12
0
    print(
        '----------------------------------------------------------------------------------------------'
    )
    print('choose your classification method:')
    print('1 -----> Bayes')
    print('2 -----> Random Forest')
    print('3 -----> Logical Regression')
    print('4 -----> Boost')
    print('5 -----> KNN')
    print('6 -----> SVM')
    print('7 -----> SGD')
    print('0 -----> exit this program')
    M = input('Method number = ')
    if M == '1':
        Bayes.GBC(method, norm, selection)
    if M == '2':
        Random_Forest.RandomF(method, norm, selection)
    if M == '3':
        LogicalRegression.LogicR(method, norm, selection)
    if M == '4':
        Boost.Ada(method, norm, selection)
    if M == '5':
        KNN.KClassifier(method, norm, selection)
    if M == '6':
        SVMC.support(method, norm, selection)
    if M == '7':
        SGD.SGD(method, norm, selection)
    if M == '0':
        print('The classification progress finished.')
        break
def cal_accuracy(y_test, y_pred):
    print("Confusion Matrix: ", sk.metrics.confusion_matrix(y_test, y_pred))

    print("Accuracy : ", sk.metrics.accuracy_score(y_test, y_pred) * 100)

    print("Report : ", sk.metrics.classification_report(y_test, y_pred))


import Decision_tree
import Random_Forest
clf_gini = Decision_tree.train_using_gini(X_train, y_train)
Decision_tree.DecisionTreeclf(clf_gini, cancer_features)
y_pred_DecisionTree = prediction(X_test, clf_gini)
cal_accuracy(y_test, y_pred_DecisionTree)
regressor = Random_Forest.RandomForestRegressorCervical(
    X_train, y_train, X_test)
print(regressor)
Y_pred_RandoForest = prediction(X_test, regressor)
cal_accuracy(y_test, Y_pred_RandoForest)
'''
cm = confusion_matrix(val_y, val_predictions)

fig, ax = plt.subplots(figsize=(8, 8))
ax.imshow(cm)
ax.grid(False)
ax.xaxis.set(ticks=(0, 1), ticklabels=('Predicted 0s', 'Predicted 1s'))
ax.yaxis.set(ticks=(0, 1), ticklabels=('Actual 0s', 'Actual 1s'))
ax.set_ylim(1.5, -0.5)
for i in range(2):
    for j in range(2):
        ax.text(j, i, cm[i, j], ha='center', va='center', color='red')