1. 二手车价格预测实战:从数据到模型的完整解析
二手车市场一直是个信息不对称的领域,买家担心被坑,卖家担心卖亏。作为一名数据科学从业者,我经常被朋友问到:"这辆车值多少钱?"于是决定用数据说话,构建一个二手车价格预测模型。这个案例涵盖了回归问题的全流程,从数据准备、特征工程到模型训练和调参,特别适合想掌握完整机器学习流程的开发者。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 数据准备与理解
2.1 构建模拟数据集
真实二手车数据往往难以获取,我们先模拟一个包含3000条记录的数据集。这个数据集包含以下关键特征:
- 基础信息:品牌(Toyota/Honda/BMW等)、车型(Sedan/SUV等)、出厂年份(2010-2023)
- 使用状况:行驶里程(0-20万公里)、发动机排量(1.0-5.0L)
- 配置信息:燃油类型(汽油/柴油等)、变速箱类型(手动/自动)、颜色
- 目标变量:价格(5000-50000美元)
python复制import numpy as np
import pandas as pd
def prepare_car_data():
np.random.seed(42)
n = 3000
data = {
'brand': np.random.choice(['Toyota', 'Honda', 'BMW', 'Mercedes', 'Audi'], n),
'model': np.random.choice(['Sedan', 'SUV', 'Coupe', 'Hatchback'], n),
'year': np.random.randint(2010, 2024, n),
'mileage': np.random.uniform(0, 200000, n),
'engine_size': np.random.uniform(1.0, 5.0, n),
'fuel_type': np.random.choice(['Petrol', 'Diesel', 'Hybrid', 'Electric'], n),
'transmission': np.random.choice(['Manual', 'Automatic'], n),
'color': np.random.choice(['Black', 'White', 'Silver', 'Red', 'Blue'], n)
}
# 价格生成逻辑
price_base = 20000
price = (
price_base +
-1000 * (2024 - data['year']) + # 年份越新越贵
-0.05 * data['mileage'] + # 里程越高越便宜
2000 * (data['engine_size'] - 2.0) + # 排量越大越贵
np.random.randn(n) * 3000 # 随机噪声
)
data['price'] = np.maximum(price, 5000)
return pd.DataFrame(data)
df_car = prepare_car_data()
提示:实际项目中,价格生成公式是未知的,这里我们明确知道价格与各特征
