Spaces:
Sleeping
Sleeping
MasoudSamaei
commited on
Commit
•
0e8204c
1
Parent(s):
2fcef21
Update app.py
Browse files
app.py
CHANGED
@@ -8,7 +8,8 @@ def make_prediction(al, type, dr, sn, percent, tmax):
|
|
8 |
with open("Decision_Tree.pkl", "rb") as f:
|
9 |
clf = pickle.load(f)
|
10 |
preds = clf.predict([[type, dr, sn, percent]])
|
11 |
-
return f"
|
|
|
12 |
elif al == "Random Forest" :
|
13 |
with open("random_forest.pkl", "rb") as f:
|
14 |
clf = pickle.load(f)
|
@@ -55,179 +56,3 @@ Authors: Masoud Samaei1, Roohollah Shirani Faradonbeh1,*, Morteza Alinejad Omran
|
|
55 |
live=False)
|
56 |
app.launch()
|
57 |
|
58 |
-
|
59 |
-
|
60 |
-
import numpy as np
|
61 |
-
import matplotlib.pyplot as plt
|
62 |
-
|
63 |
-
|
64 |
-
def make_prediction2(parameter, Type, dr, sn, percent, tmax):
|
65 |
-
with open("Decision_Tree.pkl", "rb") as f1:
|
66 |
-
clf1 = pickle.load(f1)
|
67 |
-
with open("random_forest.pkl", "rb") as f2:
|
68 |
-
clf2 = pickle.load(f2)
|
69 |
-
with open("XGBoost.pkl", "rb") as f3:
|
70 |
-
clf3 = pickle.load(f3)
|
71 |
-
with open("AdaBoost.pkl", "rb") as f4:
|
72 |
-
clf4 = pickle.load(f4)
|
73 |
-
|
74 |
-
predses1=np.array([])
|
75 |
-
predses2=np.array([])
|
76 |
-
predses3=np.array([])
|
77 |
-
predses4=np.array([])
|
78 |
-
|
79 |
-
# fig = plt.figure()
|
80 |
-
|
81 |
-
if parameter=="PET Type":
|
82 |
-
Types = np.array([])
|
83 |
-
for Type in range(1,4):
|
84 |
-
Types = np.append(Types, Type)
|
85 |
-
|
86 |
-
preds1 = clf1.predict([[Type, dr, sn, percent]])
|
87 |
-
preds1 = (round((preds1.squeeze() * tmax),2))
|
88 |
-
predses1 = np.append(predses1, preds1)
|
89 |
-
|
90 |
-
preds2 = clf2.predict([[Type, dr, sn, percent]])
|
91 |
-
preds2 =(round((preds2.squeeze() * tmax),2))
|
92 |
-
predses2= np.append(predses2, preds2)
|
93 |
-
|
94 |
-
preds3 = clf3.predict([[Type, dr, sn, percent]])
|
95 |
-
preds3 =(round((preds3.squeeze() * tmax),2))
|
96 |
-
predses3= np.append(predses3, preds3)
|
97 |
-
|
98 |
-
preds4 = clf4.predict([[Type, dr, sn, percent]])
|
99 |
-
preds4 =(round((preds4.squeeze() * tmax),2))
|
100 |
-
predses4= np.append(predses4, preds4)
|
101 |
-
|
102 |
-
plt.xlim(0, 4) # set the xlim to left, right
|
103 |
-
plt.ylim(tmax*0.8, 1.5*tmax)
|
104 |
-
plt.scatter(Types, predses1, color='k', label='Decision Tree')
|
105 |
-
plt.scatter(Types, predses2, color='b', label='Random Forest')
|
106 |
-
plt.scatter(Types, predses3, color='r', label='XGBoost')
|
107 |
-
plt.scatter(Types, predses4, color='y', label='AdaBoost')
|
108 |
-
plt.ylabel("Shear Strength", fontweight='bold')
|
109 |
-
plt.axhline(y=tmax, color='r', linestyle='-')
|
110 |
-
plt.xlabel("PET Type", fontweight='bold')
|
111 |
-
plt.legend(loc='lower right')
|
112 |
-
plt.show()
|
113 |
-
|
114 |
-
|
115 |
-
elif parameter=="Dr":
|
116 |
-
drs = np.array([])
|
117 |
-
for dr in np.arange(0.55,1,0.2):
|
118 |
-
drs = np.append(drs, dr)
|
119 |
-
|
120 |
-
preds1 = clf1.predict([[Type, dr, sn, percent]])
|
121 |
-
preds1 = (round((preds1.squeeze() * tmax),2))
|
122 |
-
predses1 = np.append(predses1, preds1)
|
123 |
-
|
124 |
-
preds2 = clf2.predict([[Type, dr, sn, percent]])
|
125 |
-
preds2 =(round((preds2.squeeze() * tmax),2))
|
126 |
-
predses2= np.append(predses2, preds2)
|
127 |
-
|
128 |
-
preds3 = clf3.predict([[Type, dr, sn, percent]])
|
129 |
-
preds3 =(round((preds3.squeeze() * tmax),2))
|
130 |
-
predses3= np.append(predses3, preds3)
|
131 |
-
|
132 |
-
preds4 = clf4.predict([[Type, dr, sn, percent]])
|
133 |
-
preds4 =(round((preds4.squeeze() * tmax),2))
|
134 |
-
predses4= np.append(predses4, preds4)
|
135 |
-
|
136 |
-
plt.xlim(0, 1.5) # set the xlim to left, right
|
137 |
-
plt.ylim(tmax*0.9, 1.1*tmax)
|
138 |
-
plt.scatter(drs, predses1, color='k', label='Decision Tree')
|
139 |
-
plt.scatter(drs, predses2, color='b', label='Random Forest')
|
140 |
-
plt.scatter(drs, predses3, color='r', label='XGBoost')
|
141 |
-
plt.scatter(drs, predses4, color='y', label='AdaBoost')
|
142 |
-
plt.ylabel("Shear Strength", fontweight='bold')
|
143 |
-
plt.xlabel("Dr", fontweight='bold')
|
144 |
-
plt.axhline(y=tmax, color='r', linestyle='-')
|
145 |
-
plt.legend(loc='lower right')
|
146 |
-
plt.show()
|
147 |
-
|
148 |
-
|
149 |
-
elif parameter=="Sn":
|
150 |
-
snss = np.array([])
|
151 |
-
for sn in np.arange(50,155,50):
|
152 |
-
snss = np.append(snss, sn)
|
153 |
-
preds1 = clf1.predict([[Type, dr, sn, percent]])
|
154 |
-
preds1 = (round((preds1.squeeze() * tmax),2))
|
155 |
-
predses1 = np.append(predses1, preds1)
|
156 |
-
|
157 |
-
preds2 = clf2.predict([[Type, dr, sn, percent]])
|
158 |
-
preds2 =(round((preds2.squeeze() * tmax),2))
|
159 |
-
predses2= np.append(predses2, preds2)
|
160 |
-
|
161 |
-
preds3 = clf3.predict([[Type, dr, sn, percent]])
|
162 |
-
preds3 =(round((preds3.squeeze() * tmax),2))
|
163 |
-
predses3= np.append(predses3, preds3)
|
164 |
-
|
165 |
-
preds4 = clf4.predict([[Type, dr, sn, percent]])
|
166 |
-
preds4 =(round((preds4.squeeze() * tmax),2))
|
167 |
-
predses4= np.append(predses4, preds4)
|
168 |
-
|
169 |
-
plt.xlim(40, 160) # set the xlim to left, right
|
170 |
-
plt.ylim(tmax*0.8, 1.5*tmax)
|
171 |
-
plt.scatter(snss, predses1, color='k', label='Decision Tree')
|
172 |
-
plt.scatter(snss, predses2, color='b', label='Random Forest')
|
173 |
-
plt.scatter(snss, predses3, color='r', label='XGBoost')
|
174 |
-
plt.scatter(snss, predses4, color='y', label='AdaBoost')
|
175 |
-
plt.ylabel("Shear Strength", fontweight='bold')
|
176 |
-
plt.xlabel("Normal Stress (Sn)", fontweight='bold')
|
177 |
-
plt.axhline(y=tmax, color='r', linestyle='-')
|
178 |
-
plt.legend(loc='lower right')
|
179 |
-
plt.show()
|
180 |
-
|
181 |
-
elif parameter=="PET percantage":
|
182 |
-
percents= np.array([])
|
183 |
-
for percent in np.arange(0.1,2.05,0.1):
|
184 |
-
percents = np.append(percents, percent)
|
185 |
-
preds1 = clf1.predict([[Type, dr, sn, percent]])
|
186 |
-
preds1 = (round((preds1.squeeze() * tmax),2))
|
187 |
-
predses1 = np.append(predses1, preds1)
|
188 |
-
|
189 |
-
preds2 = clf2.predict([[Type, dr, sn, percent]])
|
190 |
-
preds2 =(round((preds2.squeeze() * tmax),2))
|
191 |
-
predses2= np.append(predses2, preds2)
|
192 |
-
|
193 |
-
preds3 = clf3.predict([[Type, dr, sn, percent]])
|
194 |
-
preds3 =(round((preds3.squeeze() * tmax),2))
|
195 |
-
predses3= np.append(predses3, preds3)
|
196 |
-
|
197 |
-
preds4 = clf4.predict([[Type, dr, sn, percent]])
|
198 |
-
preds4 =(round((preds4.squeeze() * tmax),2))
|
199 |
-
predses4= np.append(predses4, preds4)
|
200 |
-
|
201 |
-
plt.xlim(0, 2.5) # set the xlim to left, right
|
202 |
-
plt.ylim(tmax*0.6, 1.5*tmax)
|
203 |
-
plt.scatter(percents, predses1, color='k', label='Decision Tree')
|
204 |
-
plt.scatter(percents, predses2, color='b', label='Random Forest')
|
205 |
-
plt.scatter(percents, predses3, color='r', label='XGBoost')
|
206 |
-
plt.scatter(percents, predses4, color='y', label='AdaBoost')
|
207 |
-
plt.ylabel("Shear Strength", fontweight='bold')
|
208 |
-
plt.xlabel("PET percentage", fontweight='bold')
|
209 |
-
plt.axhline(y=tmax, color='r', linestyle='-')
|
210 |
-
plt.legend(loc='lower right')
|
211 |
-
plt.show()
|
212 |
-
|
213 |
-
return plt
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
#
|
218 |
-
|
219 |
-
parameter = gr.Radio(["PET Type", "Dr", "Sn", "PET percantage"], value="PET Type", label="Select the parameter")
|
220 |
-
Type = gr.Slider(1, 3, value=1, step=1, label="PET type", info="Choose 1 for 1*1 PET, 2 for 1*5 PET, and 3 for fiber PET")
|
221 |
-
dr = gr.Slider(0.55, 0.95, step=0.2, label="Relative Density (Dr)", info="Range between 0.55 to 0.95")
|
222 |
-
sn = gr.Slider(50, 150, step=50, label="Normal Stresses (Sn)", info="Range between 50 to 150")
|
223 |
-
percent= gr.Slider(0, 2, step=0.1, label="PET Percent", info="Range between 0 to 2")
|
224 |
-
tmax= gr.Slider(36.5, 144, step=0.1, label="Shear Strength (plain soil without PET)", info="Range between 36 to 144")
|
225 |
-
|
226 |
-
# We create the output
|
227 |
-
|
228 |
-
app = gr.Interface(fn = make_prediction2, inputs=[parameter, Type, dr, sn, percent, tmax], outputs=['plot'],
|
229 |
-
title= "Parametric Analysis",
|
230 |
-
description = """ abc
|
231 |
-
""",
|
232 |
-
live=False)
|
233 |
-
app.launch()
|
|
|
8 |
with open("Decision_Tree.pkl", "rb") as f:
|
9 |
clf = pickle.load(f)
|
10 |
preds = clf.predict([[type, dr, sn, percent]])
|
11 |
+
return f"""Shear strength after improvement: {round((preds.squeeze() * tmax),2)}
|
12 |
+
Improvement percentage is {round((preds.squeeze()-1)*100,2)}%"""
|
13 |
elif al == "Random Forest" :
|
14 |
with open("random_forest.pkl", "rb") as f:
|
15 |
clf = pickle.load(f)
|
|
|
56 |
live=False)
|
57 |
app.launch()
|
58 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|