-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfraud_detect.py
126 lines (87 loc) · 3.63 KB
/
fraud_detect.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
import streamlit as st
import pandas as pd
import numpy as np
from PIL import Image
import streamlit.components.v1 as components
import codecs
from pandas_profiling import ProfileReport
from streamlit_pandas_profiling import st_profile_report
import sweetviz as sv
import os
import matplotlib.pyplot as plt
import pickle
import seaborn as sns
import tensorflow as tf
from keras import Model
from keras.models import load_model
# import xgboost as xgb
import streamlit as st
from tempfile import NamedTemporaryFile
st.set_option('deprecation.showfileUploaderEncoding', True)
def st_display_sweetviz(report_html,width=1000,height=500):
report_file = codecs.open(report_html,'r')
page = report_file.read()
components.html(page,width=width,height=height,scrolling=True)
# today=st.date_input("Today is", datetime.datetime.now())
def explore_data(dataset):
df = pd.read_csv(os.path.join(dataset))
return df
def main():
st.write("""# Fraud Detection""")
# st.write("")
# choice = st.sidebar.selectbox("Menu",menu)
# if choice == "Random Forest Model":
# st.subheader("Random Forest Classifier")
st.image('image_1.gif')
if st.checkbox("Single Forecast"):
filename = 'random_pickle_model'
model = pickle.load(open(filename, 'rb'))
# scaled_random= pickle.load(open("random_pipeline","rb"))
# st.sidebar.title("Final Model ")
# st.sidebar.header("Sidebar header")
V3=st.sidebar.number_input(label='V3',min_value=-15.0,max_value=15.0,step=0.001,)
v10=st.sidebar.number_input(label='V10',min_value=-15.0,max_value=15.0,step=0.001,)
v11=st.sidebar.number_input(label='V11',min_value=-15.0,max_value=15.0,step=0.001,)
v12=st.sidebar.number_input(label='V12',min_value=-15.0,max_value=15.0,step=0.001,)
v14=st.sidebar.number_input(label='V14',min_value=-15.0,max_value=15.0,step=0.001)
v16=st.sidebar.number_input(label='V16',min_value=-15.0,max_value=15.0,step=0.001,)
v17=st.sidebar.number_input(label='V17',min_value=-15.0,max_value=15.0,step=0.001,)
dict={
"V14":v14,
"V17":v17,
"V10":v10,
"V12":v12,
"V11":v11,
"V16":v16,
"V3":V3
}
df= pd.DataFrame.from_dict([dict])
st.table(df)
if st.button("Predict"):
predictions = model.predict(df)
df["pred"] = predictions
st.write(predictions[0])
if predictions:
st.image('iamge_2.gif')
if st.checkbox("Multiple Forecast"):
filename = 'random_pickle_model'
model = pickle.load(open(filename, 'rb'))
# buffer =
# temp_file = NamedTemporaryFile(delete=False)
uploaded_file = st.file_uploader("Choose a file")
if uploaded_file is not None:
df_df = pd.read_csv(uploaded_file)
st.write(df_df)
importance_ = ['V14','V17','V10','V12','V11','V16','V3']
X5 = df_df[importance_]
st.write(X5)
if st.button("Predict_multiple"):
predictions = []
predictions = model.predict(X5)
predictions = pd.DataFrame(predictions)
predictions.dropna(inplace=True)
predictions = predictions.drop(predictions[predictions[0]!=1].index)
t = predictions[predictions >0]
st.write(t)
if __name__ == '__main__':
main()