Spaces:
Sleeping
Sleeping
| import pandas as pd | |
| import numpy as np | |
| import warnings | |
| warnings.filterwarnings('ignore') | |
| dataset = pd.read_csv('clean_car.csv') | |
| df = dataset.copy() | |
| from sklearn.model_selection import train_test_split | |
| X = df.drop('Price', axis=1) | |
| y = df['Price'] | |
| X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.15, random_state=43) | |
| from sklearn.compose import ColumnTransformer | |
| from sklearn.pipeline import Pipeline | |
| from sklearn.metrics import mean_squared_error | |
| from sklearn.preprocessing import StandardScaler, OneHotEncoder | |
| from sklearn.ensemble import HistGradientBoostingRegressor | |
| hgbr = HistGradientBoostingRegressor() | |
| num_features = X.select_dtypes(include=['int64']).columns | |
| cat_features = X.select_dtypes(include='object').columns | |
| transformer = ColumnTransformer(transformers=[('num', StandardScaler(), num_features),('cat', OneHotEncoder(sparse_output=False), cat_features)]) | |
| pipe = Pipeline(steps=[('preprocessor', transformer), ('model', hgbr)]) | |
| pipe.fit(X_train, y_train) | |
| score = pipe.score(X_test,y_test) | |
| y_pred = pipe.predict(X_test) | |
| mse = mean_squared_error(y_test,y_pred) | |
| import streamlit as st | |
| def price(companyName,modelName,modelYear,locaiton,mileage,engineType,engineCapacity,color,assembly,bodyType,transmissionType,registrationStatus): | |
| input_data = pd.DataFrame({ | |
| 'Company Name':[companyName], | |
| 'Model Name':[modelName], | |
| 'Model Year':[modelYear], | |
| 'Location':[locaiton], | |
| 'Mileage':[mileage], | |
| 'Engine Type':[engineType], | |
| 'Engine Capacity':[engineCapacity], | |
| 'Color':[color], | |
| 'Assembly':[assembly], | |
| 'Body Type':[bodyType], | |
| 'Transmission Type':[transmissionType], | |
| 'Registration Status':[registrationStatus] | |
| }) | |
| prediction=pipe.predict(input_data)[0] | |
| return prediction | |
| st.title('Car Price Prediction :car: :arrow_forward: :dollar: @yusufenes') | |
| st.success(f'Accuracy : {score.round(5)}') | |
| st.write('Please Chose Car Specifications') | |
| companyName = st.selectbox('Company Name',df['Company Name'].unique()) | |
| modelName = st.selectbox('Model Name',df[df['Company Name']==companyName]['Model Name'].unique()) | |
| modelYear = st.selectbox('Model Year',df[(df['Company Name']==companyName)&(df['Model Name'] == modelName)]['Model Year'].unique()) | |
| locaiton = st.selectbox('Location',df['Location'].unique()) | |
| mileage = st.number_input('Mileage',df['Mileage'].min(),df['Mileage'].max()) | |
| engineType = st.selectbox('Engine Type',df['Engine Type'].unique()) | |
| engineCapacity = st.number_input('Engine Capacity',df['Engine Capacity'].min(),df['Engine Capacity'].max()) | |
| color = st.selectbox('Color',df['Color'].unique()) | |
| assembly = st.selectbox('Assembly',df['Assembly'].unique()) | |
| bodyType = st.selectbox('Body Type',df['Body Type'].unique()) | |
| transmissionType = st.selectbox('Transmission Type',df['Transmission Type'].unique()) | |
| registrationStatus = st.selectbox('Registration Status',df['Registration Status'].unique()) | |
| if st.button('Predict'): | |
| pred=price(companyName,modelName,modelYear,locaiton,mileage,engineType,engineCapacity,color,assembly,bodyType,transmissionType,registrationStatus) | |
| st.success(f'The predicted price is :red_car: {pred.round(2)} :heavy_dollar_sign:') | |
| st.balloons() | |