BMW Model Predictor

This model predicts the BMW car model using XGBoost based on price, mileage, fuel type, engine power, and car type.

license: mit language: - en tags: - xgboost - tabular-classification - bmw - car-model-prediction - automotive datasets: - custom inference: false model-index: - name: BMW Model Predictor results: []

๐Ÿš— BMW Model Predictor

This machine learning model predicts the BMW car model using XGBoost based on the following features:

  • engine_power (horsepower)
  • price (EUR)
  • mileage (km)
  • fuel type
  • car_type (e.g., sedan, SUV)

๐Ÿ”ง Training Information

  • Model: XGBoost Classifier
  • Training set: Custom dataset from bmw_pricing_challenge.csv
  • Target variable: model_key (encoded)
  • Preprocessing: Label Encoding for categorical features (fuel, car_type, model_key)
  • Saved with: joblib

๐Ÿ“ Files

-Load encoders from .npy fuel_encoder = LabelEncoder(); fuel_encoder.classes_ = np.load("fuel_classes.npy", allow_pickle=True) car_type_encoder = LabelEncoder(); car_type_encoder.classes_ = np.load("car_type_classes.npy", allow_pickle=True) target_encoder = LabelEncoder(); target_encoder.classes_ = np.load("target_classes.npy", allow_pickle=True)

๐Ÿ“Š BMW Model Predictor Overview

BMW Model Predictor

๐Ÿš€ How to Use

import sys, subprocess, os, json def pip_install(pkg): try: import(pkg) except ImportError: subprocess.check_call([sys.executable, "-m", "pip", "install", pkg])

for p in ["huggingface_hub", "numpy", "scikit_learn", "xgboost"]: pip_install(p)

from huggingface_hub import snapshot_download import numpy as np from sklearn.preprocessing import LabelEncoder from xgboost import XGBClassifier

1) Download model files

repo_id = "MahmutCanBoran/bmw-model-predictor" local_dir = "bmw-model-predictor" snapshot_download(repo_id=repo_id, repo_type="model", local_dir=local_dir, allow_patterns=["*"])

2) Path and file controls

path = local_dir + os.sep required_files = ["bmw_model.json", "fuel_classes.npy", "car_type_classes.npy", "target_classes.npy"] missing = [f for f in required_files if not os.path.exists(path + f)] if missing: raise FileNotFoundError(f"ลžu dosyalar eksik: {missing}\nKlasรถr iรงeriฤŸi: {os.listdir(path)}")

3) Restore the encoders.

fuel_le = LabelEncoder(); fuel_le.classes_ = np.load(path + "fuel_classes.npy", allow_pickle=True) car_type_le = LabelEncoder(); car_type_le.classes_ = np.load(path + "car_type_classes.npy", allow_pickle=True) target_le = LabelEncoder(); target_le.classes_ = np.load(path + "target_classes.npy", allow_pickle=True)

4) Upload XGBoost model(JSON)

model = XGBClassifier() model.load_model(path + "bmw_model.json")

5)Helper: encode the input and make a prediction

def predict_bmw_model(engine_power:int, mileage:int, price:float, fuel:str, car_type:str): # kategori doฤŸrulama (hata mesajlarฤฑ daha anlaลŸฤฑlฤฑr olsun) if fuel not in set(fuel_le.classes_): raise ValueError(f"fuel='{fuel}' geรงersiz. Geรงerli fuel sฤฑnฤฑflarฤฑ: {list(fuel_le.classes_)}") if car_type not in set(car_type_le.classes_): raise ValueError(f"car_type='{car_type}' geรงersiz. Geรงerli car_type sฤฑnฤฑflarฤฑ: {list(car_type_le.classes_)}")

X = np.array([[
    engine_power,
    mileage,
    price,
    fuel_le.transform([fuel])[0],
    car_type_le.transform([car_type])[0]
]], dtype=float)

y_pred = model.predict(X)
return target_le.inverse_transform(y_pred)[0]

6) Info: display the available classes

print("Fuel classes:", list(fuel_le.classes_)) print("Car type classes:", list(car_type_le.classes_))

7) Example prediction

example = {"engine_power": 200, "mileage": 50000, "price": 25000, "fuel": "diesel", "car_type": "suv"} pred = predict_bmw_model(**example) print("Predicted BMW model:", pred)

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support