ppryan commited on
Commit
fe4d81a
·
verified ·
1 Parent(s): 6d12f14

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +50 -0
app.py ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import numpy as np
3
+
4
+ from miniml.linear_model import LinearRegression
5
+ from miniml.preprocessing.standard_scaler import StandardScaler
6
+
7
+
8
+ def train_demo_model():
9
+ rng = np.random.default_rng(4)
10
+ size = rng.uniform(600, 3200, 160)
11
+ bedrooms = rng.integers(1, 6, 160)
12
+ age = rng.uniform(0, 60, 160)
13
+
14
+ X = np.column_stack([size, bedrooms, age])
15
+ y = 50000 + 180 * size + 12000 * bedrooms - 900 * age
16
+ y = y + rng.normal(scale=25000, size=160)
17
+
18
+ scaler = StandardScaler()
19
+ X_scaled = scaler.fit_transform(X)
20
+
21
+ model = LinearRegression(learning_rate=0.05, epochs=800)
22
+ model.fit(X_scaled, y)
23
+ return model, scaler
24
+
25
+
26
+ MODEL, SCALER = train_demo_model()
27
+
28
+
29
+ def predict_price(size, bedrooms, age):
30
+ X = np.array([[size, bedrooms, age]])
31
+ X_scaled = SCALER.transform(X)
32
+ prediction = MODEL.predict(X_scaled)[0]
33
+ return f"${prediction:,.0f}"
34
+
35
+
36
+ demo = gr.Interface(
37
+ fn=predict_price,
38
+ inputs=[
39
+ gr.Slider(600, 3200, value=1600, step=50, label="Home size"),
40
+ gr.Slider(1, 6, value=3, step=1, label="Bedrooms"),
41
+ gr.Slider(0, 60, value=15, step=1, label="Home age"),
42
+ ],
43
+ outputs=gr.Textbox(label="Predicted price"),
44
+ title="MiniML Linear Regression Demo",
45
+ description="A small Hugging Face Spaces demo using MiniML LinearRegression.",
46
+ )
47
+
48
+
49
+ if __name__ == "__main__":
50
+ demo.launch()