decision tree
import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_csv('loan.csv')
df_e=df.copy()
df_e.isnull().sum()
df_e['Dependents'].replace('3+',3,inplace=True)
print(df_e['Gender'].value_counts())
print(df_e['Married'].value_counts())
print(df_e['Dependents'].value_counts())
print(df_e['Self_Employed'].value_counts())
print(df_e['Credit_History'].value_counts())
df_e['Gender'].fillna('Male',inplace=True)
df_e['Married'].fillna('Yes',inplace=True)
df_e['Dependents'].fillna(0,inplace=True)
df_e['Self_Employed'].fillna('No',inplace=True)
df_e['Credit_History'].fillna(1.0,inplace=True)
df_e['LoanAmount'].fillna(df_e['LoanAmount'].mean(),inplace=True)
df_e['Loan_Amount_Term'].fillna(df_e['Loan_Amount_Term'].mean(),inplace=True)
l1=df.columns.values.tolist()
l1.pop(3)
from sklearn.preprocessing import LabelEncoder
le=LabelEncoder()
for i in l1:
df_e[i]=le.fit_transform(df_e[i].values)
df_e
l2=df.columns.values.tolist()
l2.pop(-1)
X=df_e[l2]
y=df_e['Loan_Status']
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.3,random_state=1)
from sklearn.tree import DecisionTreeClassifier
tm=DecisionTreeClassifier(random_state=0,max_depth=2,criterion='entropy').fit(X_train,y_train)
prd=tm.predict(X_test)
print(prd)
from sklearn import tree
tree.plot_tree(tm);
from sklearn.metrics import accuracy_score
acc=accuracy_score(y_test,prd)
print(acc)