import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns #for plotting from sklearn.ensemble import RandomForestClassifier #for the model from sklearn.tree import DecisionTreeClassifier from sklearn.tree import export_graphviz #plot tree from sklearn.metrics import roc_curve, auc #for model evaluation from sklearn.metrics import classification_report #for model evaluation from sklearn.metrics import confusion_matrix #for model evaluation from sklearn.model_selection import train_test_split #for data splitting #dt is the dataset.. X_train, X_test, y_train, y_test = train_test_split(dt.drop('target', 1), dt['target'], test_size = .2, random_state=10) model = RandomForestClassifier(max_depth=5) model.fit(X_train, y_train) estimator = model.estimators_[1] feature_names = [i for i in X_train.columns] y_train_str = y_train.astype('str') y_train_str[y_train_str == '0'] = 'no disease' y_train_str[y_train_str == '1'] = 'disease' y_train_str = y_train_str.values y_predict = model.predict(X_test) y_pred_quant = model.predict_proba(X_test)[:, 1] y_pred_bin = model.predict(X_test) confusion_matrix = confusion_matrix(y_test, y_pred_bin) confusion_matrix total=sum(sum(confusion_matrix)) sensitivity = confusion_matrix[0,0]/(confusion_matrix[0,0]+confusion_matrix[1,0]) print('Sensitivity : ', sensitivity ) specificity = confusion_matrix[1,1]/(confusion_matrix[1,1]+confusion_matrix[0,1]) print('Specificity : ', specificity) print('confusion_matrix :', confusion_matrix)