Google Cloud Platform Japan Blog

最新情報や使い方、チュートリアル、国内外の事例やイベントについてお伝えします。

BigQuery、パブリック データセット、TensorFlow で需要を予測する

2016年6月7日火曜日



機械学習の場合は問題を解くのが逆になります。ねじが不良かもしれないあらゆる論理的なルールをこちらで用意するのではなく、コンピュータにあらゆるデータを見せるのです。

たとえば、良品のねじのイメージを 5,000 枚、人間の作業者が何らかの理由で廃棄したねじのイメージを 5,000 枚見せます。そして、不良品を見分ける方法をコンピュータに考えさせます。コンピュータは “機械” であり、データに基づいて判断方法を “学習” します。


ニューヨーク市のタクシー需要の予測



あなたはニューヨーク市にあるタクシー会社の配車責任者で、次の木曜日に何人の運転手に出社してもらうかを決めなければならないものとします。

あなたは、ニューヨークのタクシーに関する何らかの知識を持っています。たとえば、需要は曜日によって変わる(木曜日の需要は月曜日の需要とは異なる)とか、木曜の天気予報によって変わるといったことです。これらが予測子となります。予測子とは、予測のために使う情報のことです。

何を予測したいのかということも、はっきりさせておかなければなりません。たとえば、特定の日に出勤を依頼するタクシー運転手の数を予測するものとしましょう。いつもと同じような割合でタクシー需要を手に入れられると想定し、それだけの数の運転手に出勤を依頼するものとします。これがあなたの機械学習問題です。




予測子とターゲット

Google BigQuery パブリック データセットには、ニューヨーク市全体のタクシー利用実績のデータ(nyc-tlc:green テーブル)と NOAA 気象データ(fh-bigquery:weather_gsod テーブル)が揃っています。これを入力データセットとして使うことにします。

タクシー利用実績は実際の需要の代用品に過ぎません。タクシーの数が足りなかったり、タクシーが需要のある地域から市内の他の地域に出て行ったりしていれば、実際に走っているタクシーよりも需要は多いかもしれません。

しかし、ニューヨークのタクシー市場が効率よく機能していると仮定すれば、このデータセットは出発点として役に立つはずです。タクシーの配車とは無関係だとか、天気以外の要素で配車を決めているという場合には、独自の履歴データを BigQuery にロードしてください。


Google Cloud Datalab からは、天気データベースに対して BigQuery クエリを発行し、Python で使える形式で結果を受け取ることができます(詳しいコメント付きの Datalab の完全なノートブックは、GitHub から入手できます)。



同様に、BigQuery クエリを使用すれば、daynumber(1 年を通して何日目かを示すもので、たとえば daynumber=1 は元日になります)からその日のタクシー利用数が得られます。



天気と利用実績のデータセットをマージすると、機械学習に使用するデータセットが完成します。



これが私たちの履歴データです。この履歴データを使って、天気からタクシー需要を予測できるようにします。


ベンチマーク

機械学習を実行するときはベンチマークを用意しておくと役に立ちます。ベンチマークは、単純なモデルでも直感で得られた値でもかまいません。機械学習モデルと単純なモデルをテスト データセットに対して実行すれば、機械学習モデルがベンチマークよりも優れているかどうかを評価できます。

テスト データセットを作るには、すべての訓練データを集めたうえで、それを 80 対 20 に分割します。そして 80 % のデータでモデルを訓練し、残りの 20 % を使って機械学習モデルの需要予測がどれぐらい正確かを評価します。

ベンチマークとしては、たとえば全時間を通じてのタクシー需要が使用できます。ただの平均よりも正確な予測ができれば、機械学習モデルは “できるやつ” だと考えることができます。

モデルの性能は二乗平均平方根誤差(RMSE)で計測します。解決しようとしているビジネス問題に適切な尺度が他にあれば、それを使ってかまいません。たとえば、その日に出勤させた運転手の数が少なすぎたり多すぎたりしたために生じた売上げの減少を計算し、それを尺度として使用するのです。



平均を使ったときの RMSE が 12,700 なので、機械学習が目指す目標はこの値になります。つまり、RMSE を 12,700 よりも小さくしようということです。


TensorFlow

TensorFlow は、2015 年に Google がオープンソース化したソフトウェア ライブラリです。TensorFlow はニューラル ネットワーク、それも深いニューラル ネットワークを使って機械学習を行う点で優れています。ニューラル ネットワーク アーキテクチャは、TensorFlow プレイグラウンドで試すことができます。

下のコードを見ると怖じ気づいてしまうかもしれませんが、ほとんどはボイラープレートです(完全なコードについては Datalab ノートブックを参照してください。現在アルファ テスト中の Google Cloud Machine Learning は、Datalab で同じことをもっと単純に実行する方法を提供します)。

ここでは、隠れ層を 1 つ入れ(サンプル数が数百万もあるわけでなく、たかだか数百日分なので、階層の数を制限しています)、活性化関数としては正規化線形関数(ReLU)を使い、出力ノードは ID ノードに設定します(これは回帰問題であり、分類問題ではないためです)。



モデルを保存し、テスト データセットに対して実行してみると、ベンチマークよりも良い成績を出していることがわかります。



RMSE は 約 8,200 で、単純に平均を使ったときの 12,700 と比べてかなり良くなっています。


訓練したモデルの実行

ひとたびモデルを訓練してしまえば、新しい予測子データを対象にモデルを実行するのはごく簡単なことです。たとえば、今後 3 日間の天気予報データがあるとします。ニューラル ネットワークに予測子変数(曜日、最低・最高気温、降水量)を渡せば、今後 3 日間のタクシーの需要予測が返されます。



水曜日(day=4)には一部の運転手に休暇を取るよう指示し、木曜日(day=5)には全員に出勤するよう指示した方がよさそうです。通常、木曜は “鈍い” 日ですが(ニューヨークのタクシー需要は週末がピークです)、今度の木曜日は天候上の理由から需要が高くなると、機械学習モデルが言っているからです。

Google Cloud Platform(GCP)によって需要予測の問題は特に簡単に解決できるようになりました。Cloud Datalab は、BigQuery、Pandas、TensorFlow と密に統合されたインタラクティブな Python ノートブックを提供しています。GCP 上のパブリック データセットには、NOAA による気象観測の履歴データが含まれています。

GCP とビッグデータ、機械学習機能についてもっと学びたい方は、訓練コースへの登録をお勧めします。


Share on Twitter Share on Facebook
Google

0 件のコメント :

コメントを投稿

  

12 か月間のトライアル

12 か月間のトライアル
300 ドル相当が無料になるトライアルで、あらゆる GCP プロダクトをお試しいただけます。

Labels


  • .NET
  • .NET Core
  • .NET Core ランタイム
  • .NET Foundation
  • #gc_inside
  • #gc-inside
  • #GoogleCloudSummit
  • #GoogleNext18
  • #GoogleNext19
  • #inevitableja
  • Access Management
  • Access Transparency
  • Advanced Solutions Lab
  • AI
  • AI Hub
  • AlphaGo
  • Ansible
  • Anthos
  • Anvato
  • Apache Beam
  • Apache Maven
  • Apache Spark
  • API
  • Apigee
  • APIs Explore
  • App Engine
  • App Engine Flex
  • App Engine flexible
  • AppArmor
  • AppEngine
  • AppScale
  • AprilFool
  • AR
  • Artifactory
  • ASL
  • ASP.NET
  • ASP.NET Core
  • Attunity
  • AutoML Vision
  • AWS
  • Big Data
  • Big Data NoSQL
  • BigQuery
  • BigQuery Data Transfer Service
  • BigQuery GIS
  • Billing Alerts
  • Bime by Zendesk
  • Bitbucket
  • Borg
  • BOSH Google CPI
  • Bower
  • bq_sushi
  • BreezoMeter
  • BYOSL
  • Capacitor
  • Chromium OS
  • Client Libraries
  • Cloud API
  • Cloud Armor
  • Cloud Audit Logging
  • Cloud AutoML
  • Cloud Bigtable
  • Cloud Billing Catalog API
  • Cloud Billing reports
  • Cloud CDN
  • Cloud Client Libraries
  • Cloud Console
  • Cloud Consoleアプリ
  • Cloud Container Builder
  • Cloud Dataflow
  • Cloud Dataflow SDK
  • Cloud Datalab
  • Cloud Dataprep
  • Cloud Dataproc
  • Cloud Datastore
  • Cloud Debugger
  • Cloud Deployment Manager
  • Cloud Endpoints
  • Cloud Firestore
  • Cloud Foundry
  • Cloud Foundry Foundation
  • Cloud Functions
  • Cloud Healthcare API
  • Cloud HSM
  • Cloud IAM
  • Cloud IAP
  • Cloud Identity
  • Cloud IoT Core
  • Cloud Jobs API
  • Cloud KMS
  • Cloud Launcher
  • Cloud Load Balancing
  • Cloud Machine Learning
  • Cloud Memorystore
  • Cloud Memorystore for Redis
  • Cloud monitoring
  • Cloud NAT
  • Cloud Natural Language API
  • Cloud Networking
  • Cloud OnAir
  • Cloud OnBoard
  • cloud Pub/Sub
  • Cloud Resource Manager
  • Cloud Resource Manager API
  • Cloud SCC
  • Cloud SDK
  • Cloud SDK for Windows
  • Cloud Security Command Center
  • Cloud Services Platform
  • Cloud Source Repositories
  • Cloud Spanner
  • Cloud Speech API
  • Cloud Speech-to-Text
  • Cloud SQL
  • Cloud Storage
  • Cloud Storage FUSE
  • Cloud Tools for PowerShell
  • Cloud Tools PowerShell
  • Cloud TPU
  • Cloud Translation
  • Cloud Translation API
  • Cloud Virtual Network
  • Cloud Vision
  • Cloud VPC
  • CloudBerry Backup
  • CloudBerry Lab
  • CloudConnect
  • CloudEndure
  • Cloudflare
  • Cloudian
  • CloudML
  • Cluster Federation
  • Codefresh
  • Codelabs
  • Cohesity
  • Coldline
  • Colossus
  • Compute Engine
  • Compute user Accounts
  • Container Engine
  • Container Registry
  • Container-Optimized OS
  • Container-VM Image
  • Couchbase
  • Coursera
  • CRE
  • CSEK
  • Customer Reliability Engineering
  • Data Studio
  • Databases
  • Dbvisit
  • DDoS
  • Debugger
  • Dedicated Interconnect
  • deep learning
  • Deployment Manager
  • Developer Console
  • Developers
  • DevOps
  • Dialogflow
  • Disney
  • DLP API
  • Docker
  • Dockerfile
  • Drain
  • Dreamel
  • Eclipse
  • Eclipse Orion
  • Education Grants
  • Elasticsearch
  • Elastifile
  • Energy Sciences Network
  • Error Reporting
  • ESNet
  • Evernote
  • FASTER
  • Fastly
  • Firebase
  • Firebase Analytics
  • Firebase Authentication
  • Flexible Environment
  • Forseti Security
  • G Suite
  • Gartner
  • gcloud
  • GCP
  • GCP Census
  • GCP 移行ガイド
  • GCP 認定資格チャレンジ
  • GCPUG
  • GCP導入事例
  • gcsfuse
  • GEO
  • GitHub
  • GitLab
  • GKE
  • Go
  • Go 言語
  • Google App Engine
  • Google Apps
  • Google Certified Professional - Data Engineer
  • Google Cloud
  • Google Cloud Certification Program
  • Google Cloud Client Libraries
  • Google Cloud Console
  • Google Cloud Dataflow
  • Google Cloud Datalab
  • Google Cloud Datastore
  • Google Cloud Endpoints
  • Google Cloud Explorer
  • Google Cloud Identity and Access Management
  • Google Cloud INSIDE
  • Google Cloud INSIDE Digital
  • Google Cloud INSIDE FinTech
  • Google Cloud Interconnect
  • Google Cloud Launcher
  • Google Cloud Logging
  • Google Cloud Next '18 in Tokyo
  • Google Cloud Next '19 in Tokyo
  • Google Cloud Platform
  • Google Cloud Resource Manager
  • Google Cloud Security Scanner
  • Google Cloud Shell
  • Google Cloud SQL
  • Google Cloud Storage
  • Google Cloud Storage Nearline
  • Google Cloud Summit '18
  • Google Cloud Summit ’18
  • Google Cloud Tools for IntelliJ
  • Google Code
  • Google Compute Engine
  • Google Container Engine
  • Google Data Analytics
  • Google Data Studio
  • Google Date Studio
  • Google Deployment Manager
  • Google Drive
  • Google Earth Engine
  • Google Genomics
  • Google Kubernetes Engine
  • Google maps
  • google maps api
  • Google Maps APIs
  • Google Maps Platform
  • Google SafeSearch
  • Google Service Control
  • Google Sheets
  • Google Slides
  • Google Translate
  • Google Trust Services
  • Google VPC
  • Google マップ
  • Google 公認プロフェッショナル
  • GoogleNext18
  • GPU
  • Gradle
  • Grafeas
  • GroupBy
  • gRPC
  • HA / DR
  • Haskell
  • HEPCloud
  • HIPAA
  • Horizon
  • HTCondor
  • IaaS
  • IAM
  • IBM
  • IBM POWER9
  • icon
  • IERS
  • Improbable
  • INEVITABLE ja night
  • inevitableja
  • InShorts
  • Intel
  • IntelliJ
  • Internal Load Balancing
  • Internet2
  • IoT
  • Issue Tracker
  • Java
  • Jenkins
  • JFrog
  • JFrog Artifactory SaaS
  • Jupiter
  • Jupyter
  • Kaggle
  • Kayenta
  • Khan Academy
  • Knative
  • Komprise
  • kubefed
  • Kubeflow Pipelines
  • Kubernetes
  • KVM
  • Landsat
  • load shedding
  • Local SSD
  • Logging
  • Looker
  • Machine Learning
  • Magenta
  • Managed Instance Group
  • Managed Instance Group Updater
  • Maps API
  • Maps-sensei
  • Mapsコーナー
  • Maven
  • Maxon Cinema 4D
  • MightyTV
  • Mission Control
  • MongoDB
  • MQTT
  • Multiplay
  • MySQL
  • Nearline
  • Network Time Protocol
  • Networking
  • neural networks
  • Next
  • Node
  • NoSQL
  • NTP
  • NuGet パッケージ
  • OCP
  • OLDISM
  • Open Compute Project
  • OpenCAPI
  • OpenCAPI Consortium
  • OpenShift Dedicated
  • Orbitera
  • Organization
  • Orion
  • Osaka
  • Paas
  • Panda
  • Particle
  • Partner Interconnect
  • Percona
  • Pete's Dragon
  • Pivotal
  • Pivotal Cloud Foundry
  • PLCN
  • Podcast
  • Pokemon GO
  • Pokémon GO
  • Poseidon
  • Postgre
  • PowerPoint
  • PowerShell
  • Professional Cloud Network Engineer
  • Protocol Buffers
  • Puppet
  • Pythian
  • Python
  • Qwiklabs
  • Rails
  • Raspberry Pi
  • Red Hat
  • Redis
  • Regional Managed Instance Groups
  • Ruby
  • Rust
  • SAP
  • SAP Cloud Platform
  • SC16
  • ScaleArc
  • Secure LDAP
  • Security & Identity
  • Sentinel-2
  • Service Broker
  • Serving Websites
  • Shared VPC
  • SideFX Houdini
  • SIGOPS Hall of Fame Award
  • Sinatra
  • Site Reliability Engineering
  • Skaffold
  • SLA
  • Slack
  • SLI
  • SLO
  • Slurm
  • Snap
  • Spaceknow
  • SpatialOS
  • Spinnaker
  • Spring
  • SQL Server
  • SRE
  • SSL policies
  • Stack Overflow
  • Stackdriver
  • Stackdriver Agent
  • Stackdriver APM
  • Stackdriver Debugger
  • Stackdriver Diagnostics
  • Stackdriver Error Reporting
  • Stackdriver Logging
  • Stackdriver Monitoring
  • Stackdriver Trace
  • Stanford
  • Startups
  • StatefulSets
  • Storage & Databases
  • StorReduce
  • Streak
  • Sureline
  • Sysbench
  • Tableau
  • Talend
  • Tensor Flow
  • Tensor Processing Unit
  • TensorFlow
  • Terraform
  • The Carousel
  • TPU
  • Trace
  • Transfer Appliance
  • Transfer Service
  • Translate API
  • Uber
  • Velostrata
  • Veritas
  • Video Intelligence API
  • Vision API
  • Visual Studio
  • Visualization
  • Vitess
  • VM
  • VM Image
  • VPC Flow Logs
  • VR
  • VSS
  • Waze
  • Weave Cloud
  • Web Risk AP
  • Webyog
  • Wide and Deep
  • Windows Server
  • Windows ワークロード
  • Wix
  • Worlds Adrift
  • Xplenty
  • Yellowfin
  • YouTube
  • Zaius
  • Zaius P9 Server
  • Zipkin
  • ZYNC Render
  • アーキテクチャ図
  • イベント
  • エラーバジェット
  • エンティティ
  • オンライン教育
  • クラウド アーキテクト
  • クラウド移行
  • グローバル ネットワーク
  • ゲーム
  • コードラボ
  • コミュニティ
  • コンテスト
  • コンピューティング
  • サーバーレス
  • サービス アカウント
  • サポート
  • ジッター
  • ショート動画シリーズ
  • スタートガイド
  • ストレージ
  • セキュリティ
  • セミナー
  • ソリューション ガイド
  • ソリューション: メディア
  • データ エンジニア
  • データセンター
  • デベロッパー
  • パートナーシップ
  • ビッグデータ
  • ファジング
  • プリエンプティブル GPU
  • プリエンプティブル VM
  • フルマネージド
  • ヘルスケア
  • ホワイトペーパー
  • マイクロサービス
  • まっぷす先生
  • マルチクラウド
  • リージョン
  • ロード シェディング
  • 運用管理
  • 可用性
  • 海底ケーブル
  • 機械学習
  • 金融
  • 継続的デリバリ
  • 月刊ニュース
  • 資格、認定
  • 新機能、アップデート
  • 深層学習
  • 深層強化学習
  • 人気記事ランキング
  • 内部負荷分散
  • 認定試験
  • 認定資格
  • 料金


Archive


  •     2019
    • 8月
    • 7月
    • 6月
    • 5月
    • 4月
    • 3月
    • 2月
    • 1月
  •     2018
    • 12月
    • 11月
    • 10月
    • 9月
    • 8月
    • 7月
    • 6月
    • 5月
    • 4月
    • 3月
    • 2月
    • 1月
  •     2017
    • 12月
    • 11月
    • 10月
    • 9月
    • 8月
    • 7月
    • 6月
    • 5月
    • 4月
    • 3月
    • 2月
    • 1月
  •     2016
    • 12月
    • 11月
    • 10月
    • 9月
    • 8月
    • 7月
    • 6月
    • 5月
    • 4月
    • 3月
    • 2月
    • 1月
  •     2015
    • 12月
    • 11月
    • 10月
    • 9月
    • 8月
    • 7月
    • 6月
    • 5月
    • 4月
    • 3月
    • 2月
    • 1月
  •     2014
    • 12月
    • 11月
    • 10月
    • 9月
    • 8月
    • 6月
    • 5月
    • 4月
    • 3月
    • 2月

Feed

月刊ニュースレターに登録
新着ポストをメールで受け取る

Company-wide

  • Google 公式ブログ 日本版
  • Google 公式ブログ 英語版

製品・サービス

  • Google Cloud Japan 公式ブログ
  • Google AdWords 日本版 公式ブログ
  • Google Webmaster Central 日本版 公式ブログ

デベロッパー

  • Google Developer Relations 日本版 公式ブログ
  • Google
  • Privacy
  • Terms