File size: 1,750 Bytes
0e6fe59
 
 
9c327fd
0e6fe59
1574475
0e6fe59
5a09786
975e298
 
ec58565
9c327fd
ec58565
 
975e298
5a09786
d35a4f8
 
5a09786
ec58565
0e6fe59
 
 
 
 
 
 
 
 
9c327fd
0e6fe59
 
9c327fd
 
 
 
 
 
 
0e6fe59
9c327fd
 
a8bb602
9c327fd
 
0e6fe59
9c327fd
 
 
 
 
 
 
 
 
 
1574475
 
9c327fd
 
 
 
1574475
975e298
9c327fd
095fe88
 
9c327fd
a8bb602
 
 
 
 
 
 
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
import streamlit as st
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression, Ridge
from sklearn.preprocessing import PolynomialFeatures
from sklearn.metrics import mean_squared_error

st.subheader("Ridge Demo")
col1, col2 = st.columns(2)

degree = st.slider('Degree', 2, 40, 1)
alpha = st.slider('Lambda (Regularisation)', 0, 500, 1)


with col1:
    st.markdown("#### Un-regularized")
    
with col2:
    st.markdown("#### Regularized")
    
x = np.linspace(-1., 1., 100)
y = 4 + 3*x + 2*np.sin(x) + 2*np.random.randn(len(x))


poly = PolynomialFeatures(degree=degree, include_bias=False)
x_new = poly.fit_transform(x.reshape(-1, 1))

lr = LinearRegression()
lr.fit(x_new, y)
y_pred = lr.predict(x_new)


ri = Ridge(alpha = alpha)
ri.fit(x_new, y)
y_pred_ri = ri.predict(x_new)


fig1, ax1 = plt.subplots()
fig2, ax2 = plt.subplots()

ax1.scatter(x, y)
ax1.plot(x, y_pred)

ax2.scatter(x, y)
ax2.plot(x, y_pred_ri)

for ax in [ax1, ax2]:
    ax.spines['right'].set_visible(False)
    ax.spines['top'].set_visible(False)

    # Only show ticks on the left and bottom spines
    ax.yaxis.set_ticks_position('left')
    ax.xaxis.set_ticks_position('bottom')

    ax.set_xlabel("x")
    ax.set_ylabel("y")

rmse = np.round(np.sqrt(mean_squared_error(y_pred, y)), 2)
ax1.set_title(f"Train RMSE: {rmse}")

rmse_ri = np.round(np.sqrt(mean_squared_error(y_pred_ri, y)), 2)
ax2.set_title(f"Train RMSE: {rmse_ri}")

with col1:
    st.pyplot(fig1)
    
with col2:
    st.pyplot(fig2)
hide_streamlit_style = """
            <style>
            #MainMenu {visibility: hidden;}
            footer {visibility: hidden;}
            </style>
            """
st.markdown(hide_streamlit_style, unsafe_allow_html=True)