Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pandas as pd
- import numpy as np
- from sklearn.neighbors import KNeighborsClassifier as kNN
- from sklearn.svm import SVC as SVM
- from sklearn.metrics import confusion_matrix
- from sklearn.model_selection import train_test_split
- col_names = ['Gender', 'Married', 'Education', 'Self_Employed', 'Loan_Status']
- col_values = ['Male', 'Yes', 'Graduate', 'Yes', 'Y']
- pd.options.mode.chained_assignment = None
- data = pd.read_excel('loan_data.xlsx');
- for i in range(len(col_names)):
- mask = data[col_names[i]].values == col_values[i]
- data[col_names[i]][mask] = 0
- data[col_names[i]][~mask] = 1
- columns = list(data.columns);
- # mask = data ['Gender'].values == 'Female'
- # data['Gender'][mask] = 1
- # data['Gender'][~mask] = 0
- cat_feature = pd.Categorical(data.Property_Area)
- one_hot = pd.get_dummies(cat_feature)
- data = pd.concat([data, one_hot], axis = 1)
- data = data.drop(columns = ['Property_Area'])
- features = data.columns
- vals = data.values.astype(np.float64)
- X = vals[:, :-1]
- y = vals[:,-1]
- models = [kNN(), SVM()]
- X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
- for model in models:
- model.fit(X_train,y_train)
- y_pred = model.predict(X_test)
- print(confusion_matrix(y_test, y_pred))
- from sklearn.tree import DecisionTreeClassifier as DT
- from sklearn.tree import plot_tree
- model = DT(max_depth=3)
- model.fit(X_train, y_train)
- y_pred = model.predict(X_test)
- cm = confusion_matrix(y_test, y_pred)
- print(cm)
- from matplotlib import pyplot as plt
- plt.figure(figsize=(20,10))
- tree_vis = plot_tree(model,feature_names=
- data.columns[:-1],class_names=['N', 'Y'], fontsize = 20)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement