📌 引言
在数据科学竞赛平台Kaggle上,“New York City Taxi Fare Prediction”竞赛是一个极具挑战性和实用性的机器学习任务。它涉及回归问题,要求参赛者基于纽约市的出租车行程数据预测最终的车费。
本指南将带你深入了解该竞赛的背景、数据探索、特征工程、模型训练以及优化策略,帮助你构建一个高效的预测模型。
1️⃣ 竞赛背景与数据概览
🏙️ 1.1 竞赛简介
纽约市的出租车市场庞大,每天有数百万次打车交易。影响车费的因素多种多样,包括出发点、目的地、行程距离、时间、天气等。本竞赛的目标是利用给定的数据,建立机器学习模型,预测给定行程的最终车费。
📊 1.2 数据集介绍
数据集由两个主要部分组成:
- 训练集(train.csv): 包含5500万条行程记录,每条记录包含乘车时间、出发地、目的地、乘客数量以及最终车费。
- 测试集(test.csv): 需要预测的行程数据,不包含最终车费。
- 数据字段:
key
: 行程的唯一标识符pickup_datetime
: 乘车时间pickup_longitude
&pickup_latitude
: 出发地经纬度dropoff_longitude
&dropoff_latitude
: 目的地经纬度passenger_count
: 乘客人数fare_amount
: 最终车费(仅训练集中可见)
📊 1.3 获取数据集
要获取竞赛试题中的数据集,你需要按照以下步骤操作:
-
访问Kaggle竞赛页面
进入Kaggle New York City Taxi Fare Prediction 竞赛页面。 -
注册并登录Kaggle
如果你还没有Kaggle账户,需要先注册一个,然后登录。 -
接受竞赛规则
在竞赛页面点击 “Join Competition”,并接受竞赛的条款和条件。 -
下载数据集
- 进入 “Data” 页面。
- 你可以下载
train.csv
(训练集)和test.csv
(测试集)等文件到本地,也可以直接在Kaggle Notebooks中使用!kaggle competitions download -c new-york-city-taxi-fare-prediction
命令下载数据。
-
使用 Kaggle API 下载(可选)
- 在本地安装Kaggle API(如果还没有安装),运行:
pip install kaggle
- 进入Kaggle账户 “Account” 页面,下载API密钥(
kaggle.json
),并将其放置在~/.kaggle/
目录下。 - 在终端或Jupyter Notebook中运行:
kaggle competitions download -c new-york-city-taxi-fare-prediction
- 这将在当前目录下下载整个数据集。
- 在本地安装Kaggle API(如果还没有安装),运行:
完成这些步骤后,你就可以加载数据并进行分析了!🚀
2️⃣ 数据探索与可视化
在建模之前,我们需要对数据进行探索性分析(EDA),以发现潜在的模式和异常值。
📥 2.1 加载数据
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
train_df = pd.read_csv('train.csv', nrows=10_000_000)
print(train_df.info())
🛠️ 2.2 处理缺失值
# 检查缺失值
print(train_df.isnull