Spaces:
Sleeping
Sleeping
Delete car_predictions.py
Browse files- car_predictions.py +0 -77
car_predictions.py
DELETED
@@ -1,77 +0,0 @@
|
|
1 |
-
import numpy as np
|
2 |
-
import pandas as pd
|
3 |
-
import tensorflow as tf
|
4 |
-
from sklearn.preprocessing import LabelEncoder, MinMaxScaler
|
5 |
-
from keras.models import Sequential
|
6 |
-
from keras.layers import Dense, Dropout
|
7 |
-
from flask import Flask, request, jsonify
|
8 |
-
|
9 |
-
app = Flask(__name__)
|
10 |
-
|
11 |
-
# Загрузка и подготовка данных
|
12 |
-
data = pd.read_csv('cars_raw.csv')
|
13 |
-
|
14 |
-
# Предобработка данных
|
15 |
-
le = LabelEncoder()
|
16 |
-
data['Make'] = le.fit_transform(data['Make'])
|
17 |
-
data['Model'] = le.fit_transform(data['Model'])
|
18 |
-
data = data[data['Price'] != 'Not Priced']
|
19 |
-
data["Price"] = data["Price"].str.replace("$", "").str.replace(",", "").astype(float)
|
20 |
-
|
21 |
-
scaler = MinMaxScaler()
|
22 |
-
data['Price'] = scaler.fit_transform(data['Price'].values.reshape(-1, 1))
|
23 |
-
|
24 |
-
data = data.dropna()
|
25 |
-
for col in data.select_dtypes(include=['category', 'object']).columns:
|
26 |
-
data[col] = le.fit_transform(data[col])
|
27 |
-
|
28 |
-
for col in data.select_dtypes(include=['number']).columns:
|
29 |
-
data[col] = scaler.fit_transform(data[col].values.reshape(-1, 1))
|
30 |
-
|
31 |
-
data = data.drop(columns=["Mileage", "SellerType", "VIN", "Stock#", "Drivetrain",
|
32 |
-
"SellerName", "ConsumerReviews", "ExteriorStylingRating",
|
33 |
-
"State", "Zipcode", "DealType"])
|
34 |
-
data_df = pd.DataFrame(data)
|
35 |
-
|
36 |
-
X = data.drop('Price', axis=1)
|
37 |
-
y = data['Price']
|
38 |
-
|
39 |
-
# Создание и обучение модели
|
40 |
-
model = Sequential()
|
41 |
-
model.add(Dense(128, input_shape=(X.shape[1],)))
|
42 |
-
model.add(Dropout(0.3))
|
43 |
-
model.add(Dense(64))
|
44 |
-
model.add(Dropout(0.3))
|
45 |
-
model.add(Dense(1))
|
46 |
-
|
47 |
-
model.compile(optimizer='adam', loss='mean_squared_error')
|
48 |
-
model.fit(X, y, epochs=100, batch_size=32)
|
49 |
-
|
50 |
-
# Добавление маршрута для главной страницы
|
51 |
-
@app.route('/')
|
52 |
-
def home():
|
53 |
-
return "Добро пожаловать на сайт по предсказанию цен на поддержанные автомобили"
|
54 |
-
|
55 |
-
@app.route('/predict', methods=['POST'])
|
56 |
-
def predict():
|
57 |
-
car_data = request.json
|
58 |
-
car_data_df = pd.DataFrame([car_data])
|
59 |
-
|
60 |
-
# Предобработка входных данных
|
61 |
-
for col in car_data_df.select_dtypes(include=['category', 'object']).columns:
|
62 |
-
car_data_df[col] = le.transform(car_data_df[col])
|
63 |
-
|
64 |
-
for col in car_data_df.select_dtypes(include=['number']).columns:
|
65 |
-
car_data_df[col] = scaler.transform(car_data_df[col].values.reshape(-1, 1))
|
66 |
-
|
67 |
-
# Получаем предсказание
|
68 |
-
prediction = model.predict(car_data_df)
|
69 |
-
inverted_prediction = scaler.inverse_transform(prediction.reshape(-1, 1))
|
70 |
-
predicted_price = inverted_prediction[0][0]
|
71 |
-
|
72 |
-
return jsonify({'predicted_price': predicted_price})
|
73 |
-
|
74 |
-
if __name__ == '__main__':
|
75 |
-
app.run(host='0.0.0.0', port=5000)
|
76 |
-
|
77 |
-
model.save("test_model.keras")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|