Download app.py from Mehriddin1997/Linear_Regression_model: direct link, hf CLI and curl.
- Browser
- Download file 2.73 kB
-
https://huggingface.co/Mehriddin1997/Linear_Regression_model/resolve/main/app.py
- Command line
-
hf download hf://Mehriddin1997/Linear_Regression_model/app.py
-
curl -L -o app.py https://huggingface.co/Mehriddin1997/Linear_Regression_model/resolve/main/app.py
2.73 kB
| import numpy as np | |
| import pandas as pd | |
| from sklearn.linear_model import LinearRegression | |
| from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score | |
| from sklearn.model_selection import train_test_split | |
| np.random.seed(42) | |
| n_samples = 500 | |
| year = np.random.randint(2005, 2024, n_samples) | |
| mileage = np.random.randint(0, 250000, n_samples) | |
| color = np.random.choice(['white', 'black', 'red', 'blue'], n_samples) | |
| transmission = np.random.choice(['manual', 'auto'], n_samples) | |
| fuel = np.random.choice(['petrol', 'gas', 'hybrid'], n_samples) | |
| price = ( | |
| 200 + (year - 2005) * 15 | |
| - mileage * 0.0005 | |
| + (transmission == 'auto') * 50 | |
| + (fuel == 'hybrid') * 80 | |
| + np.random.normal(0, 20, n_samples) | |
| ) | |
| data = pd.DataFrame({ | |
| "year": year, | |
| "mileage": mileage, | |
| "color": color, | |
| "transmission": transmission, | |
| "fuel": fuel, | |
| "price": price | |
| }) | |
| data = pd.get_dummies(data, drop_first=True) | |
| X = data.drop("price", axis=1) | |
| y = data["price"] | |
| X_train, X_test, y_train, y_test = train_test_split( | |
| X, y, train_size=400, random_state=42 | |
| ) | |
| model = LinearRegression() | |
| model.fit(X_train, y_train) | |
| y_pred = model.predict(X_test) | |
| def predict_car_price(model, columns): | |
| print("Mashina ma'lumotlarini kiriting:") | |
| year = int(input("Yili: ")) | |
| mileage = int(input("Yurgan km: ")) | |
| color = input("Rangi (white/black/red/blue): ") | |
| transmission = input("Uzatma (manual/auto): ") | |
| fuel = input("Yoqilg'i (petrol/gas/hybrid): ") | |
| data = { | |
| "year": year, | |
| "mileage": mileage, | |
| "color": color, | |
| "transmission": transmission, | |
| "fuel": fuel | |
| } | |
| df = pd.DataFrame([data]) | |
| df = pd.get_dummies(df) | |
| df = df.reindex(columns=columns, fill_value=0) | |
| price = model.predict(df)[0] | |
| print(f"\nTaxminiy narx: {price:.1f}") | |
| predict_car_price(model, X.columns) | |
| mae = mean_absolute_error(y_test, y_pred) | |
| mse = mean_squared_error(y_test, y_pred) | |
| rmse = np.sqrt(mse) | |
| r2 = r2_score(y_test, y_pred) | |
| print("=" * 50) | |
| print("MODEL EVALUATION") | |
| print("=" * 50) | |
| print(f"MAE: {mae:.2f}") | |
| print(f"RMSE: {rmse:.2f}") | |
| print(f"R²: {r2:.3f}") | |
| import matplotlib.pyplot as plt | |
| plt.figure(figsize=(6,6)) | |
| plt.scatter(y_test, y_pred) | |
| plt.xlabel("Haqiqiy narx") | |
| plt.ylabel("Model aytgan narx") | |
| plt.title("Haqiqiy vs Bashorat") | |
| plt.plot([y_test.min(), y_test.max()], | |
| [y_test.min(), y_test.max()]) | |
| plt.show() | |
| # saqlash | |
| # import pickle | |
| # with open("car_price_model.pkl", "wb") as f: | |
| # pickle.dump(model, f) | |
| # with open("model_columns.pkl", "wb") as f: | |
| # pickle.dump(X.columns, f) | |