za3karia commited on
Commit
f0fb8f4
·
verified ·
1 Parent(s): c390764

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +25 -14
app.py CHANGED
@@ -5,18 +5,29 @@ from sklearn.model_selection import train_test_split
5
  from sklearn.linear_model import LinearRegression
6
  from sklearn.metrics import mean_squared_error, r2_score
7
 
8
- # Load the dataset
9
  @st.cache_data
10
- def load_data():
11
- url = "https://raw.githubusercontent.com/selva86/datasets/master/BostonHousing.csv"
12
  data = pd.read_csv(url)
13
  return data
14
 
15
  # App title
16
  st.title("House Price Prediction")
17
 
 
 
 
 
 
18
  # Load data
19
- data = load_data()
 
 
 
 
 
 
 
20
  st.write("Dataset", data)
21
 
22
  # Feature selection
@@ -25,7 +36,7 @@ selected_features = st.sidebar.multiselect("Select features", data.columns[:-1])
25
 
26
  if selected_features:
27
  X = data[selected_features]
28
- y = data["medv"] # Median value of homes
29
 
30
  # Split data
31
  X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
@@ -37,6 +48,15 @@ if selected_features:
37
  # Prediction
38
  y_pred = model.predict(X_test)
39
 
 
 
 
 
 
 
 
 
 
40
 
41
  # Plot
42
  fig, ax = plt.subplots()
@@ -46,12 +66,3 @@ if selected_features:
46
  ax.set_ylabel('Predicted')
47
  ax.set_title('Actual vs Predicted')
48
  st.pyplot(fig)
49
-
50
- # Model performance
51
- st.write("Mean Squared Error", mean_squared_error(y_test, y_pred))
52
- st.write("R-squared Score", r2_score(y_test, y_pred))
53
- # Display results
54
- st.write("Selected Features", selected_features)
55
- st.write("Model Coefficients", model.coef_)
56
- st.write("Predictions", y_pred)
57
- st.write("Actual Values", y_test.values)
 
5
  from sklearn.linear_model import LinearRegression
6
  from sklearn.metrics import mean_squared_error, r2_score
7
 
8
+ # Function to load data
9
  @st.cache_data
10
+ def load_data_from_url(url):
 
11
  data = pd.read_csv(url)
12
  return data
13
 
14
  # App title
15
  st.title("House Price Prediction")
16
 
17
+ # Sidebar for user inputs
18
+ st.sidebar.header("Upload Your Data")
19
+ uploaded_file = st.sidebar.file_uploader("Upload a CSV file", type=["csv"])
20
+ data_url = st.sidebar.text_input("Or enter a URL to a CSV file")
21
+
22
  # Load data
23
+ if uploaded_file:
24
+ data = pd.read_csv(uploaded_file)
25
+ elif data_url:
26
+ data = load_data_from_url(data_url)
27
+ else:
28
+ st.write("Please upload a CSV file or enter a URL to a CSV file.")
29
+ st.stop()
30
+
31
  st.write("Dataset", data)
32
 
33
  # Feature selection
 
36
 
37
  if selected_features:
38
  X = data[selected_features]
39
+ y = data.iloc[:, -1] # Assuming the last column is the target
40
 
41
  # Split data
42
  X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
 
48
  # Prediction
49
  y_pred = model.predict(X_test)
50
 
51
+ # Display results
52
+ st.write("Selected Features", selected_features)
53
+ st.write("Model Coefficients", model.coef_)
54
+ st.write("Predictions", y_pred)
55
+ st.write("Actual Values", y_test.values)
56
+
57
+ # Model performance
58
+ st.write("Mean Squared Error", mean_squared_error(y_test, y_pred))
59
+ st.write("R-squared Score", r2_score(y_test, y_pred))
60
 
61
  # Plot
62
  fig, ax = plt.subplots()
 
66
  ax.set_ylabel('Predicted')
67
  ax.set_title('Actual vs Predicted')
68
  st.pyplot(fig)