NYC Yellow Taxi Dataset Analysis with PySpark Notebook
このチュートリアルでは、OVHcloud Data Platform上でPySpark Notebookを効率的に使用してYellow Taxi Trip Recordsを分析する方法を示します
Objective
このチュートリアルでは、OVHcloud Data Platform上でPySpark Notebookを効率的に使用して、Yellow Taxi Trip Records(Parquetファイルとして保存)とTaxi Zone Lookup Table(CSVファイルとして保存)を分析する方法を示します。タクシーの利用パターンを明らかにするための探索的データ分析(EDA)を行い、これらのパターンを解釈するための可視化を作成し、旅行距離や乗車地点などの特徴に基づいて旅行時間を予測する機械学習モデルを構築します。
このチュートリアルは初心者向けに設計されており、各ステップについて詳細な説明が付いているため、OVHcloudのData Platform上のJupyterノートブックでPySparkを使用する方法を理解するのに役立ちます。環境の設定、Connectorsへのアクセス、PySparkが有効なJupyterノートブックの設定を含むGetting Startedガイドを完了していることを前提としています。
このチュートリアルを終えるまでに、以下のことができるようになります:
- PySparkを使用して大規模なデータセットを読み込み、クリーンアップする。
- データセットを結合して地理的な文脈を追加する。
- タクシー旅行データのトレンドを特定するためのEDAを実行する。
- MatplotlibとSeabornを使用して結果を可視化する。
- 旅行時間を予測するためのシンプルな機械学習モデルを構築する。
Setting Up Data Sources and Tables for the PySpark Tutorial
OVHcloud Data Platform上でPySparkを使用してYellow Taxi Trip RecordsとTaxi Zone Lookup Tableを分析する前に、データ環境を準備する必要があります。これは以下を含みます:
- ConnectorsでParquetファイルとCSVファイルを登録するためのデータソースを作成する。
- データを構造化された形式で保存するためのLakehouse Managerでテーブルを作成する。
- Yellow Taxiテーブルにデータを入力するためのLoad ActionをData Processing Engine (DPE)で設定する。
これらのステップにより、Lakehouse ManagerでデータがJupyterノートブック上のPySparkで分析できるようになります。
Prerequisites:
- OVHcloud Data Platformへのアクセス権限(Connectors、Lakehouse Manager、DPEを管理する権限を含む)。
- OVHcloud Data Platform Getting Started guideを完了している。
- NYC TLC Trip Record dataからファイル
yellow_tripdata_YEAR-MONTH.parquetとtaxi_zone_lookup.csvが利用可能である。
Step 1: Create a new source in Connectors
- 新しいFile Uploadソースを作成し、「NYC-taxi」と名前を付けます。
yellow_tripdata_YEAR_MONTH.parquetとtaxi_zone_lookup.csvファイルをアップロードし、作成をクリックします。
- Analyzerタブに移動し、メタ抽出を実行してアップロードしたファイルのスキーマを推測します。
Step 2: Create Tables in Lakehouse Manager
- Tablesタブ → Create from a Connectors sourceをクリックします。
yellow_tripdata_YEAR_MONTH.parquetファイルを選択 → 「テーブルを自動的に構築する」オプションのみを選択します。
taxi_zone_lookup.csvファイルについても同様に行い、このテーブルは小さく、Icebergによって迅速に完全に読み込まれるため、すべてのオプションを選択します。
Step 3: Use Load PySpark action in the DPE
- Actionsタブ → 新しいアクションを作成 → Load PySparkを使用します。
- 以下を設定します:
- Source:
yellow_tripdata_YEAR_MONTH - Destination: Lakehouse Managerの
yellow_tripdata_YEAR_MONTHテーブル。
- Source:
- スキーママッピングが正しいことを確認します(ソース列はテーブルのスキーマと一致している必要があります)。
- アクションを保存し、実行します。
Step 4: Create a Jupyter Notebook in the DPE
- "Notebooks"タブ → 新しいノートブック → PySpark Notebookを選択します。
NYC yellow taxi notebookと名前を付けます。
起動後、プラットフォームはJupyterHubインスタンスを初期化するのに数分かかります。準備ができたら、Open in Jupyterボタンをクリックしてノートブックインターフェースにアクセスします。
これで、データ環境が完全に構成され、すべてのソースがLakehouseに読み込まれたので、PySparkノートブックに取り組み、分析を開始する準備が整いました。
PySpark Notebook Walkthrough
以下のノートブックには、インラインコメントと説明付きの完全なPySparkコードが含まれており、ステップごとに構成されています。これをダウンロードして、直接OVHcloud Data Platform上のJupyter環境にアップロードできます。各ステップは詳細に説明されており、分析プロセスを追うのに役立ちます。また、最後に簡単に参照できるためのまとめが提供されています。
What’s Inside the Notebook?
このノートブックでは、以下の内容を扱います:
- Lakehouse Managerに接続し、データセットを読み込む。
- 旅行データをクリーンアップし、ゾーンのルックアップと結合する。
- MatplotlibとSeabornを使用してEDAを実行する。
- 3つのMLモデル(線形回帰、ランダムフォレスト、GBT)を構築し、比較する。
- パフォーマンスメトリクスと洞察を出力する。
以下は、ノートブックからのサンプル出力です:
NYC Taxi Trip Duration Prediction – Summary
Objective
この分析の目的は、NYC Yellow Taxiデータを用いて機械学習モデルをトレーニングし、trip_durationを予測することでした。これらの予測は、タクシーの配車戦略を最適化し、運賃見積もりを改善し、運用上の意思決定を支援するのに役立ちます。
Models Compared
このタスクにおける3つの回帰モデルの効果を理解するために、以下のモデルを評価しました:
- Linear Regression – 簡単で解釈可能なベースライン
- Random Forest – 非線形関係を捉えるアンサンブル方法
- Gradient Boosted Trees (GBT) – 予測精度を最大化することを目的としたブースティングベースのアプローチ
Data Preparation
高品質な入力データを確保し、モデルの性能を向上させるために、以下の手順が実行されました:
- 極端な外れ値(60秒未満または3600秒を超える旅程)を除去
- カテゴリ変数(例:
pickup_borough)をエンコード - 数値特徴をスケーリングし、統一された特徴ベクトルに組み立て
Features Used
trip_distancepickup_hourday_of_weekpickup_borough(インデックス付き)
Data Split
- Training set: 80%(約220万レコード)
- Test set: 20%(約556,000レコード)
Model Performance
Interpretation: GBTは全体的に最も優れた性能を発揮し、最も低い二乗平均平方根誤差(約4.8分)と最高のR²スコア(80.6%の分散説明)を実現しました。
Feature Importance (Random Forest)
Insight: 旅程距離は最も影響力のある予測因子でした。ピックアップ区は一定の影響を与えましたが、時間ベースの特徴(時間帯と平日)は旅程時間にほとんど影響を与えませんでした。
Impact of Data Cleaning
- 負の値や非現実的な値のレコードを除去
- ノイズを減らし、モデルの信頼性を向上
- 最終データセット(約278万レコード)はより代表的
- 全モデル、特にGBTにおいてRMSEが低く、R²が高くなりました
Conclusion
このチュートリアルでは、PySparkとOVHcloud Data Platformを効果的に使用して、大規模なタクシー旅程データを処理、探索、モデリングする方法を示しました。構造化されたデータ準備、視覚分析、モデル評価を通じて、旅程時間の主要な要因を特定し、強力な性能を持つ予測モデルを構築しました。
テストされたモデルの中で、Gradient Boosted Trees(GBT)は正確性と堅牢性の両面で最も優れた結果を提供し、実際の予測タスクにおけるその価値を示しました。
ここで説明したワークフローは、データの取り込み、変換、探索、機械学習をカバーしており、異なるドメインにおける類似の大規模分析プロジェクトに対して再利用可能なフレームワークとして機能します。
Go further
当社のソリューションを実装するためのトレーニングや技術支援が必要な場合は、営業担当者にお問い合わせください、またはこのリンクをクリックして、プロフェッショナルサービスの専門家にプロジェクトのカスタム分析を依頼するための見積もりを取得してください。
Data Platformを構築するチームと直接質問し、フィードバックを共有し、交流するには、専用のDiscordチャンネルにアクセスしてください。
OVHcloudサービスについてサポートが必要な場合は、ヘルプセンターでリクエストを作成してください。
ユーザーコミュニティに参加してください。

