| import pandas as pd |
| from sklearn.model_selection import train_test_split |
| from sklearn.linear_model import LinearRegression, Ridge, Lasso |
| from sklearn.metrics import r2_score |
| import gradio as gr |
|
|
|
|
| def regularization(upload, l2=None, l1=None): |
| |
| if upload is not None: |
| |
| |
| df = pd.read_csv(upload) |
| X = df.drop(['target'], axis=1) |
| Y = df[['target']] |
|
|
| |
| lr = LinearRegression() |
| X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.4, random_state=1234) |
| lr.fit(X_train, Y_train) |
|
|
| |
| Y_predict_train = lr.predict(X_train) |
| Y_predict_test = lr.predict(X_test) |
|
|
| |
| r2_train = r2_score(Y_train, Y_predict_train) |
| r2_test = r2_score(Y_test, Y_predict_test) |
| result_linear = f"LINEARE REGRESSION\nR2 Training: {r2_train:.2f}\nR2 Test: {r2_test:.2f}\n\n" |
|
|
| result_ridge = "" |
| result_lasso = "" |
|
|
| if l2: |
| |
| ridge = Ridge(alpha=float(l2)) |
| ridge.fit(X_train, Y_train) |
|
|
| |
| Y_predict_train_l2 = ridge.predict(X_train) |
| Y_predict_test_l2 = ridge.predict(X_test) |
| |
| |
| r2_train_l2 = r2_score(Y_train, Y_predict_train_l2) |
| r2_test_l2 = r2_score(Y_test, Y_predict_test_l2) |
| result_ridge = f"RIDGE REGRESSION\nR2 Training: {r2_train_l2:.2f}\nR2 Test: {r2_test_l2:.2f}\n\n" |
| |
| if l1: |
| |
| lasso = Lasso(alpha=float(l1)) |
| lasso.fit(X_train, Y_train) |
|
|
| |
| Y_predict_train_l1 = lasso.predict(X_train) |
| Y_predict_test_l1 = lasso.predict(X_test) |
| |
| |
| r2_train_l1 = r2_score(Y_train, Y_predict_train_l1) |
| r2_test_l1 = r2_score(Y_test, Y_predict_test_l1) |
| result_lasso = f"LASSO REGRESSION\nR2 Training: {r2_train_l1:.2f}\nR2 Test: {r2_test_l1:.2f}" |
| |
| result = result_linear + result_ridge + result_lasso |
| return result |
|
|
| else: |
| return "Bitte eine Datei hochladen!" |
|
|
|
|
|
|
| io1 = gr.Interface( |
| title = 'L1 & L2 Regularization', |
| description = '''Demo APP''', |
| fn=regularization, |
| inputs=[gr.File(label="Upload Data"), |
| gr.Text(label="L2 Regularization (Ridge)", placeholder=" L2 eingeben"), |
| gr.Text(label="L1 Regularization (Lasso)", placeholder="L1 eingeben")], |
| outputs=gr.Textbox(lines=50, label='R-Squared (Coefficient of Determination)'), |
| api_name="Regularization" |
| ) |
|
|
| io1.launch() |
|
|
|
|
|
|