预测二手车的残值

  1. 残值(二手车)预估(24个)

估值因素 :

包括公里数、使用年数、出场时间、维修次数…

    1. 农业机械
      1. 履带式拖拉机
      2. 大轮拖
      3. 中拖
      4. 小麦机
      5. 玉米机
      6. 免耕播种机
      7. 打捆机
      8. 旋耕机
      9. 深松机
      10. 液压翻转犁          
    2. 特专车辆
      1. 洗扫车
      2. 压缩式垃圾车
      3. 绿化喷洒车
      4. 多功能吸尘扫路车
      5. 车厢可卸式垃圾车
      6. 自卸式垃圾车
      7. 压缩式垃圾车
      8. 车厢可卸式垃圾车
      9. 压缩式对接垃圾车
      10. 洒水车
      11. 清洗车
      12. 抑尘车
      13. 摆臂式垃圾车
      14. 吸尘车
import h2o
import numpy as np
from h2o.estimators import H2OGradientBoostingEstimator

h2o.init()
from flask import Flask, request, jsonify
app = Flask(__name__)
from h2o.estimators.glm import H2OGeneralizedLinearEstimator
from h2o.estimators.deeplearning import H2ODeepLearningEstimator



# dataset_url  =  'E:/PyCharm_workspace/demo/h2o/regression/cars.csv'
# trained_model = 'E:/tmp/mymodel/usedCar_GBM_model'
# http://127.0.0.1:5000/model/usedCar/?dataset_url=E:/PyCharm_workspace/demo/h2o/regression/cars.csv&trained_model=E:/tmp/mymodel/usedCar_GBM_model
@app.route('/model/usedCar/')
def classification_example():
    dataset_url = request.args.get('dataset_url')
    trained_model = request.args.get('trained_model')


    cars = h2o.import_file(dataset_url)
    r = cars[0].runif()
    train = cars[r > .2]
    valid = cars[r <= .2]

    response_col = "economy"
    distribution = "gaussian"
    # 根据车的“名称”、“生产年份”、“重量”、”加速度“、”马力“ ===》”车当前的价值(economy)“
    predictors = ["name","year","weight","acceleration","power"]

    ########################### 训练过程 ##############################################################
    # # 可以选择的算法有:梯度提升机(GBM)、深度学习
    # # gbm = H2OGradientBoostingEstimator(nfolds=3, distribution=distribution, fold_assignment="Random")
    # gbm = H2ODeepLearningEstimator(adaptive_rate=True, epochs=800)
    #
    # train_model =gbm.train(x=predictors, y=response_col, training_frame=train, validation_frame=valid)
    # gbm.plot(timestep="AUTO", metric="AUTO",save_plot_path='/temp')
    #
    #
    # # 保存模型
    # model_path = h2o.save_model(model=train_model, path="/tmp/mymodel", force=True)
    # # 打印出保存模型的路径:
    # print("模型保存在:", model_path)

    ########################### 应用过程 ##############################################################
    # load the model,加载模型,要注意模型的位置是/而不是\

    saved_model = h2o.load_model(trained_model)
    # saved_model = h2o.load_model("E:/tmp/mymodel/GBM_model_python_1645102695969_1")
    train_model= saved_model

    test_file = 'cars_test.csv'
    test_prostate = h2o.import_file(test_file)
    # predict using the model and the testing dataset
    predict = train_model.predict(test_prostate)


    ## Creating list array from h2o frame column
    residual_value = np.array(h2o.as_list(predict['predict'])).tolist()

    # View a summary of the prediction
    # head()返回对象的前n行
    print(predict.head(100))
    print(residual_value)

    t = {
        'code': 200,
        'residual_value': residual_value
    }
    return jsonify(t)


if __name__ == "__main__":
    app.run()

### 机器学习二手车价格预测简介 利用机器学习技术预测二手车的价格是一个典型的回归问题。通过收集车辆的历史销售记录和其他相关信息(如品牌、型号、里程数、年份等),我们可以训练一个模型来估计特定条件下某辆车在市场上合理的售价。这种方法不仅有助于买家做出更明智的选择,也能帮助卖家合理定价以促成交易。 #### 数据准备阶段 首先,我们需要获取足够丰富且高质量的数据集作为输入源。理想情况下的数据应涵盖以下几个关键因素: - 车辆基本信息:包括制造商名称、车型系列、生产日期或首次注册时间。 - 技术规格:发动机排量大小、燃油类型(汽油/柴油)、变速箱形式(手动挡还是自动挡)。 - 维护状况及历史:是否有过事故维修经历、定期保养记录良好与否。 - 行驶里程:累计公里数直接影响残值评估。 - 地理位置信息:不同地区市场行情差异较大。 - 销售平台上的图片质量和描述文字也可能间接反映车况好坏程度。 接下来对采集来的原始资料做必要的清理工作,比如填补空缺字段值、修正错误条目、删除无关列项等,使得整体结构更为规整统一便于后续加工处理。 #### 特征工程环节 这是整个项目中最富有创造力和技术含量的部分之一。通过对已有维度深入挖掘潜在模式规律,构造出更具表达力的新指标体系。例如: - 年龄计算:从当前时刻回溯至初次登记之日得出使用年限长短。 - 品牌影响力评分:参考权威第三方机构发布的排行榜单赋予相应权重系数。 - 区域经济指数映射:结合宏观经济统计数据衡量地理位置带来的溢价效应。 此外还可以尝试引入外部API接口查询天气变化趋势是否会对某些季节性强的商品造成波动影响等因素加入考量范畴之内进一步增强泛化能力。 #### 模型选择与训练过程 针对此类连续性数值输出的任务场景,常用的几种算法有线性回归(Linear Regression)、支持向量机(Support Vector Machine, SVM),决策树及其集成版本随机森林(Random Forest Regressor),梯度提升树(XGBoost/LightGBM)等。每种方法各有利弊需视具体情况权衡选用最优解方案: - 简单易懂易于解释适合初学者入门练习的LR; - 强大的非线性拟合能力和良好的鲁棒性的SVM; - 可视化友好并且抗噪能力强RF; - 收敛速度快迭代效率高的XGB/LGBMs…… 一般建议采用交叉验证(cross-validation)技巧反复比试多个候选者的表现最终锁定胜出者进行微调优化直至满意为止。 ```python import pandas as pd from sklearn.model_selection import train_test_split from xgboost import XGBRegressor from sklearn.metrics import mean_squared_error # 加载整理后的二手车数据表DataFrame对象df data = df.copy() # 定义自变量X和因变量y features = ['brand_influence', 'mileage', 'age_of_vehicle'] target = ['price'] X = data[features] y = data[target] # 将数据划分为训练集和测试集 X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2, random_state=42) # 创建并配置XGBoost回归器实例 model = XGBRegressor(objective="reg:squarederror", n_estimators=100) # 开始正式训练流程 model.fit(X_train.values, y_train.values.ravel()) # 应用学到的知识去推测尚未见过的事物 predictions = model.predict(X_test) # 展示均方根误差RMSE评价分数直观感受差距幅度 print("Root Mean Squared Error:", np.sqrt(mean_squared_error(y_test, predictions))) ``` --- --
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Pengsen Ma

太谢谢了

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值