Commit
Β·
783a1d4
1
Parent(s):
303f2f6
Update app.py
Browse files
app.py
CHANGED
|
@@ -6,6 +6,7 @@ from sklearn.ensemble import IsolationForest
|
|
| 6 |
import numpy as np
|
| 7 |
from sklearn.model_selection import train_test_split
|
| 8 |
import gradio as gr
|
|
|
|
| 9 |
|
| 10 |
|
| 11 |
#Data preparation
|
|
@@ -23,48 +24,27 @@ y = np.concatenate(
|
|
| 23 |
|
| 24 |
#Visualize the data as a scatter plot
|
| 25 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 26 |
|
|
|
|
| 27 |
|
| 28 |
-
|
| 29 |
-
#
|
| 30 |
-
|
| 31 |
-
# df = pd.DataFrame.from_dict(
|
| 32 |
-
# {
|
| 33 |
-
# "Pclass": [passenger_class + 1],
|
| 34 |
-
# "Sex": [0 if is_male else 1],
|
| 35 |
-
# "Age": [age],
|
| 36 |
-
# "Fare": [fare],
|
| 37 |
-
# "Embarked": [embark_point + 1],
|
| 38 |
-
# "Company": [
|
| 39 |
-
# (1 if "Sibling" in company else 0) + (2 if "Child" in company else 0)
|
| 40 |
-
# ]
|
| 41 |
-
# }
|
| 42 |
-
# )
|
| 43 |
-
# df = encode_age(df)
|
| 44 |
-
# df = encode_fare(df)
|
| 45 |
-
# pred = clf.predict_proba(df)[0]
|
| 46 |
-
# return {"Perishes": float(pred[0]), "Survives": float(pred[1])}
|
| 47 |
|
|
|
|
| 48 |
|
| 49 |
-
# demo = gr.Interface(
|
| 50 |
-
# predict_survival,
|
| 51 |
-
# [
|
| 52 |
-
# gr.Dropdown(["first", "second", "third"], type="index"),
|
| 53 |
-
# "checkbox",
|
| 54 |
-
# gr.Slider(0, 80, value=25),
|
| 55 |
-
# gr.CheckboxGroup(["Sibling", "Child"], label="Travelling with (select all)"),
|
| 56 |
-
# gr.Number(value=20),
|
| 57 |
-
# gr.Radio(["S", "C", "Q"], type="index"),
|
| 58 |
-
# ],
|
| 59 |
-
# "label",
|
| 60 |
-
# examples=[
|
| 61 |
-
# ["first", True, 30, [], 50, "S"],
|
| 62 |
-
# ["second", False, 40, ["Sibling", "Child"], 10, "Q"],
|
| 63 |
-
# ["third", True, 30, ["Child"], 20, "S"],
|
| 64 |
-
# ],
|
| 65 |
-
# interpretation="default",
|
| 66 |
-
# live=True,
|
| 67 |
-
# )
|
| 68 |
|
| 69 |
-
|
| 70 |
-
|
|
|
|
|
|
|
|
|
|
|
|
| 6 |
import numpy as np
|
| 7 |
from sklearn.model_selection import train_test_split
|
| 8 |
import gradio as gr
|
| 9 |
+
import matplotlib.pyplot as plt
|
| 10 |
|
| 11 |
|
| 12 |
#Data preparation
|
|
|
|
| 24 |
|
| 25 |
#Visualize the data as a scatter plot
|
| 26 |
|
| 27 |
+
def visualize_input_data():
|
| 28 |
+
fig = plt.figure(1, facecolor="w", figsize=(5, 5))
|
| 29 |
+
scatter = plt.scatter(X[:, 0], X[:, 1], c=y, s=20, edgecolor="k")
|
| 30 |
+
handles, labels = scatter.legend_elements()
|
| 31 |
+
plt.axis("square")
|
| 32 |
+
plt.legend(handles=handles, labels=["outliers", "inliers"], title="true class")
|
| 33 |
+
plt.title("Gaussian inliers with \nuniformly distributed outliers")
|
| 34 |
+
# plt.show()
|
| 35 |
+
return fig
|
| 36 |
|
| 37 |
+
title = " An example using IsolationForest for anomaly detection."
|
| 38 |
|
| 39 |
+
with gr.Blocks(title=title) as demo:
|
| 40 |
+
gr.Markdown(f"# {title}")
|
| 41 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 42 |
|
| 43 |
+
gr.Markdown(" **https://scikit-learn.org/stable/auto_examples/ensemble/plot_isolation_forest.html#sphx-glr-auto-examples-ensemble-plot-isolation-forest-py**")
|
| 44 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 45 |
|
| 46 |
+
|
| 47 |
+
btn = gr.Button(value="Visualize input dataset")
|
| 48 |
+
btn.click(visualize_input_data, outputs= gr.Plot(label='Visualizing input dataset') )
|
| 49 |
+
gr.Markdown( f"## In progress")
|
| 50 |
+
demo.launch()
|