52
de:code 2019 AI08 機械学習のためのデータ加工 ~ 特徴量の見つけ方と作り方 日本マイクロソフト株式会社 デジタルトランスフォーメーション事業本部 クラウドソリューションアーキテクト 望月 美由紀

機械学習のためのデータ加工 ~特徴量の見つけ方と作り方機械学習のためのデータ準備のポイント - どの粒度で何が予測できればビジネス課題解決に繋がるかで検討

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

de:code 2019 AI08

機械学習のためのデータ加工

~特徴量の見つけ方と作り方

日本マイクロソフト株式会社

デジタルトランスフォーメーション事業本部 クラウドソリューションアーキテクト

望月美由紀

自己紹介

“Data Hack”

(2016~)

システムエンジニア

(2008~2016)SIer(~2008)

SI兼データ分析コンサルタント Cloud Solution Architect(Data&AI)

お話したいこと

1.機械学習のためのデータ準備のポイント

2.特徴量の作り方実例

実例1:ユーザ評価データのないレコメンド

実例2:故障データのない故障予測

実例3:音声やテキストデータからの特徴量作成

3.まとめ

1.機械学習のためのデータ準備のポイント

機械学習のプロセス

データ準備

特徴量作成 クリーニング

機械学習のためのデータ準備

顧客情報POSデータ

販促情報 気象データ

店舗情報

カレンダー(営業日・土日祝日)

機械学習のためのデータ準備

年月日 店舗CD 店タイプ 立地 ・・・ 前年売上 ・・・ 最高気温 降水量 ・・・ 販促A ・・・ 売上金額

2018/8/1 101 1型 駅前A ・・・ 8.1 ・・・ 34.1 0.0 ・・・ 1 ・・・ 8.4

2018/8/1 102 5型 郊外B ・・・ 8.8 ・・・ 32.2 0.0 ・・・ 0 ・・・ 9.4

2018/8/1 103 3型 郊外C ・・・ 10.4 ・・・ 33.3 0.0 ・・・ 0 ・・・ 16.2

2018/8/1 104 2型 駅前B ・・・ 9.3 ・・・ 33.8 0.0 ・・・ 1 ・・・ 6.3

2018/8/1 105 4型 郊外C ・・・ 12.3 ・・・ 33.4 0.0 ・・・ 0 ・・・ 9.0

… … … …… … ……

顧客情報

POSデータ

カレンダー(営業日・土日祝日)

販促情報

気象データ

店舗情報

粒度の異なるデータを結合・集計して

機械学習用の横持ちデータを準備する

特徴量の洗い出し

観点5W2H 説明変数 データ元

曜日 カレンダー

土日祝日 カレンダー

開店経過年数 店舗

・・・

店舗立地 店舗

店タイプ 店舗

・・・

顧客性別割合 顧客、POS

顧客年代割合 顧客、POS

・・・

定期販促 販促

特別販促 販促

・・・

Why?(なぜ) ・・・

When?(いつ)

Where?(どこ)

Who?(誰が)

What?(何を)

観点5W2H 説明変数 データ元

天気 気象

最高気温 気象

降水量 気象

平均湿度 気象

体感温度 気象

・・・

前年売上 POS

前3ヶ月売上平均 POS

1ヶ月来店客数 POS

・・・

How?

(どんな、どうやって)

How much?

(どれだけ)

・5W2Hの観点で洗い出す

機械学習モデルの活用シーンをイメージする

年月日 店舗CD 店タイプ 立地 ・・・ 前年売上 ・・・ 最高気温 降水量 ・・・ 販促A ・・・ 売上金額

2018/8/1 101 1型 駅前A ・・・ 8.1 ・・・ 34.1 0.0 ・・・ 1 ・・・ 8.4

2018/8/1 102 5型 郊外B ・・・ 8.8 ・・・ 32.2 0.0 ・・・ 0 ・・・ 9.4

2018/8/1 103 3型 郊外C ・・・ 10.4 ・・・ 33.3 0.0 ・・・ 0 ・・・ 16.2

2018/8/1 104 2型 駅前B ・・・ 9.3 ・・・ 33.8 0.0 ・・・ 1 ・・・ 6.3

2018/8/1 105 4型 郊外C ・・・ 12.3 ・・・ 33.4 0.0 ・・・ 0 ・・・ 9.0… … … …… … ……

年月日 店舗CD 店タイプ 立地 ・・・ 前年売上 ・・・ 最高気温 降水量 ・・・ 販促A ・・・ 売上金額

2019/5/30 201 2型 駅前A ・・・ 12.4 ・・・ 20.2 68.0 ・・・ 0 ・・・

【予測】パターンを当てはめる

11予測結果当てはめ当てはめ

【学習】パターンを発見

パターン発見

各種予測アルゴリズム

ロジスティック回帰

デシジョンツリー

ニューラルネットワーク

ランダムフォレスト

機械学習モデルを活用シーンをイメージする

・どのタイミングで、どのくらい先の何を予測できれば

ビジネス課題解決につながるのか?

・解決したいビジネス課題

機械学習モデルを活用シーンをイメージする

予測タイミング:

今月中旬

予測期間:

来月1ヶ月分

機械学習モデルを活用シーンをイメージする

予測タイミング:

前週末

予測期間:

1週間先

分析データ母集団の検討

分析期間1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12

★ ★ ★ ★ ★ ★学習期間 検証期間

2017 2018 2019

顧客情報

POSデータ

カレンダー(営業日・土日祝日)

販促情報

気象データ

店舗情報 季節性も考慮し2シーズン

分くらいほしい

データなし

改装

ベース条件が合わないデータは

精度に悪影響のため除外

機械学習のためのデータ準備のポイント

- どの粒度で何が予測できればビジネス課題解決に繋がるかで検討

・説明変数:

- 5W2Hの観点で俯瞰して洗い出す

- モデルを活用するタイミングもイメージして洗い出す

・分析の母集団:

- データ存在有無と季節性等を考慮し最適な期間を対象とする

- 予測精度に悪影響を与える店舗等は除外する

2.特徴量の作り方実例

【実例1】ユーザ評価データのないレコメンドモデル

実例1:やりたいこと(分析の目的)

顧客の目的、希望、潜在的嗜好に沿った最適な飲食店

を自動提案したい ⇒AIレコメンド機能を作りたい

顧客情報

飲食店

情報

予約実績

データ

Azure ML Studio

AIレコメンドモデル

実例1:業務データ課題

ユーザ評価のアンケートデータがない

Matchbox Recommender の仕組み【評価データ】

User_ID Item_ID Rating

User1 ItemA 1

User1 ItemB 3

User1 ItemC 1

User2 ItemA 3

User2 ItemB 1

User2 ItemC 3

User2 ItemD 3

・・・

【ユーザ属性データ】

User_ID 年代 性別 好み ・・・

User1 30 M カジュアル

User2 50 F カジュアル

User3 20 F 高級志向

・・・

【アイテム属性データ】

Item_ID 種類 価格帯 ・・・

ItemA カフェ 1000

ItemB ファーストフード 1000

ItemC 和食 5000

ItemD 洋食 10000

・・・

評価 ユーザ アイテムユーザ同士、ユーザが評価するアイテム同士の類似性から推奨アイテムを予測

実例1:業務データ課題

ユーザ属性データ

・年代

・利用形態(1人/カップ

ル/家族利用等)

・利用目的

・予算感

・好みタイプ

アイテム属性データ

・店規模

・店タイプ

・店雰囲気

・平均利用単価/人

・店総合評価

評価データ

・???

利用回数を評価

データとして使う

ユーザ評価のアンケートデータがない

納得感のないレコメンドモデルができた。。。

- マイナーな飲食店がレコメンドされる

- レコメンド結果が著しく偏っている

実例1:特徴量の作り方①失敗例

評価データとして飲食店利用回数をそのまま採用

【評価データ】

項目 内容

ユーザID

店ID

評価 飲食店の利用回数

【評価データのマトリックス】

店A 店B 店C 店D 店E

ユーザ1 - - 1 - -

ユーザ2 - 5 - - -

ユーザ3 1 - 1 - -

ユーザ4 - - - - 1

ユーザ5 - - - 2 -

実例1:特徴量の作り方①失敗例

基礎集計で利用回数を確認

利用回数は1~54回

=評価点として1~54点まで存在するということ

実例1:特徴量の作り方②成功例

飲食店のリピート利用を評価データとして採用

⇒納得感のあるレコメンド結果に仕上がった【評価データのマトリックス】

店A 店B 店C 店D 店E

ユーザ1 - - 1 - -

ユーザ2 - 5 - - -

ユーザ3 1 - 1 - -

ユーザ4 - - - - 1

ユーザ5 - - - 2 -

店A 店B 店C 店D 店E

ユーザ1 0 0 1 0 0

ユーザ2 0 2 0 0 0

ユーザ3 1 0 1 0 0

ユーザ4 0 0 0 0 1

ユーザ5 0 0 0 2 0

評価データ

0: 1度も利用なし

1: 1回利用

2: 2回以上利用

実例1:学び

・モデル作成前に基礎集計でデータ分布や特徴を理解する

・業務目的に合わせて、数値データからカテゴリ化、離散化

して特徴量として作る

・評価データは0~5くらいの範囲が望ましい

・データ分析は試行錯誤の繰り返し

【実例2】故障データのない故障予測

実例2:やりたいこと(分析の目的)

工場ラインの設備装置の故障・劣化予測し

メンテナンス計画を最適化したい

ラインを止めたくないから設備故障は未然に防止

したい....

無駄なメンテナンスは避けたい...

センサー

データ故障予測モデル

00

1

0

100

1

1

001

100

実例2:業務データ課題

まだ一度も故障していないため故障データがない

データをグルーピングして異常グループを見つけ

る方法過去の発生パターンから異常を検知する方法

振動数

回転数 稼働日数

⇒予測モデルは作れない

実例2:特徴量の作り方

時間 Ope1 ・・・ 温度 回転数 振動数 ・・・ 電流

2018/5/30 09:01:01 1 ・・・ 66.2 878 1200 ・・・ 195

2018/5/30 09:01:02 1 ・・・ 66.3 877 1195 ・・・ 188

・・・

2018/5/31 09:02:00 5 ・・・ 66.9 866 1197 ・・・ 189

2018/5/31 09:02:01 1 ・・・ 66.3 877 1200 ・・・ 188

2018/5/31 09:01:02 1 ・・・ 66.3 877 1195 ・・・ 188

・・・

2018/5/31 09:03:00 5 ・・・ 66.9 866 1197 ・・・ 190

2018/5/31 09:03:01 1 ・・・ 66.3 877 1200 ・・・ 188

2018/5/31 09:03:02 1 ・・・ 66.3 877 1195 ・・・ 188

・・・

2018/5/31 09:04:00 5 ・・・ 66.9 866 1197 ・・・ 190

・・・時間

実例2:特徴量の作り方

【仮説】

同作業工程のサイクル毎の各センサー値波形はほぼ同じ

実例2:特徴量の作り方

時間 Ope1 ・・・ 温度 回転数 振動数 ・・・ 電流

2018/5/30 09:01:01 1 ・・・ 66.2 878 1200 ・・・ 195

2018/5/30 09:01:02 1 ・・・ 66.3 877 1195 ・・・ 188

・・・

2018/5/31 09:02:00 5 ・・・ 66.9 866 1197 ・・・ 189

2018/5/31 09:02:01 1 ・・・ 66.3 877 1200 ・・・ 188

2018/5/31 09:01:02 1 ・・・ 66.3 877 1195 ・・・ 188

・・・

2018/5/31 09:03:00 5 ・・・ 66.9 866 1197 ・・・ 190

2018/5/31 09:03:01 1 ・・・ 66.3 877 1200 ・・・ 188

2018/5/31 09:03:02 1 ・・・ 66.3 877 1195 ・・・ 188

・・・

2018/5/31 09:04:00 5 ・・・ 66.9 866 1197 ・・・ 190

・・・時間

1サイクル

2サイクル

3サイクル

実例2:特徴量の作り方

サイクル

Cycle_ID t1_Ope1 t1_温度 t1_回転数 t1_振動数 ・・・ t1_電流 ・・・ t60_電流

1 1 66.2 878 1200 ・・・ 195 ・・・ 199

2 1 66.3 877 1200 ・・・ 188 ・・・ 200

3 1 66.3 877 1200 ・・・ 188 ・・・ 195

9999999 1 67.1 878 1210 ・・・ 192 ・・・ 210

サイクル単位の特徴量イメージ

… …センサー10項目× 60秒 = 600項目

Cycle_ID t1_Ope1 t1_温度 t1_回転数 t1_振動数 ・・・ t1_電流 ・・・ t60_電流

1 1 0.8808 0.6635 0.7908 ・・・ 0.67821 ・・・ 0.7893

2 1 0.8812 0.6622 0.7908 ・・・ 0.6018 ・・・ 0.8364

3 1 0.8812 0.6622 0.7908 ・・・ 0.6018 ・・・ 0.7743

9999999 1 0.9345 0.6635 0.7908 ・・・ 0.7121 ・・・ 0.9341

実例2:特徴量の作り方

サイクル

スケールの異なる数値データは標準化する

… …

Azure IoTデータ分析基盤活用加工 & 分析蓄積収集

App Service

データ加工処理

データ貯蔵庫

データ可視化

AIモデル

開発

高速デー

タベース

AIモデル利用ジョブスケジュール

管理&自動化

実例2:学び

・教師データがない場合はクラスタリングで

・時系列データをサイクル単位に束ねて特徴量作成

・クラスタリングを行う際にスケールの異なる数値データは

標準化する

【実例3】音声やテキストデータからの特徴量作成

実例3:業務データ課題

音声やテキストデータも活用したい

コールセンター

会議

通話テキスト

議事録

SNS

チャット

アンケートコメント

??

なんだか大変そう。。どうすればいいかわからない

実例3:特徴量の作り方(音声→テキスト)

コールセンター

会議

通話テキスト

議事録

音声データは Speech API でテキストデータ化

音声ファイルSpeech

Batch API テキストデータURLで

処理要求

実例3:特徴量の作り方(テキストアナリティクス)

御社の技術は日本の誇りです。御社 / の / 技術 / は / 日本 / の / 誇り / です。

名詞 助詞 名詞 助詞 名詞 助詞 形容動詞 助動詞

御社 技術 日本 誇り

キーワード出現有無や出現率

を特徴量として使用

【キーワード】

実例3:特徴量の作り方(テキストアナリティクス)

御社の技術は日本の誇りです。御社 / の / 技術 / は / 日本 / の / 誇り / です。

名詞 助詞 名詞 助詞 名詞 助詞 形容動詞 助動詞

御社 技術 日本 誇り

キーワード出現有無や出現率

を特徴量として使用

【キーワード】

実例3:特徴量の作り方(テキストアナリティクス)

御社の技術は日本の誇りです。御社 / の / 技術 / は / 日本 / の / 誇り / です。

名詞 助詞 名詞 助詞 名詞 助詞 形容動詞 助動詞

辞書と照合して独自の分類項目とし

て使用

MeCab

+Python etc

テキストアナリティ

クス専門ツール

【ブランド評価辞書】

信頼、安定感、一流、革新的、かっこ

いい、個性的の6つに分類

誇り⇒一流

御社 技術 日本 誇り

Cognitive Services: Text Analytics

実例3:人事採用分析 People Analytics by

・ビジネス課題

- 内定辞退者が多く、採用目標を達成できない

- 辞退者の特徴、応募者毎の辞退リスク率を把握し、

適切なフォローをすることで辞退者を減らしたい

・分析プロジェクトの実施内容

- 内定辞退者の特徴把握基礎集計

- 内定辞退リスク予測モデル作成・評価

実例3:特徴量の整理

応募者の特徴(属性、活動、マインド)

客観的な評価

他者からの視点

登録情報(属性情報、エントリー情報など)

行動情報(Webログ、セミナーなど)

Webテスト結果

採用プロセス実績(面接評価等)

大学名、学部/大学院、性別、登

録日、Webログイン履歴、各セミナー

参加実績、志望動機コメント

SPI, SHL結果等

採用要件点数、総合評価の理由

フリーコメント欄のキーワード抽出による分析項目も活用

実例3:内定辞退率予測モデル活用イメージ

非言語得点

活動意欲

セミナー

参加回数

キーワード

_地域

キーワード

_国

敏感性

キーワード

_チーム

Webセミナー 高揚性

身体活動性

82%

(9/11)

100%

(16/16)

72%

(5/7)

0%

(0/27)

14%

(1/7)

40%

(4/10)

29%

(2/7)

24%

(4/17)

0%

(0/13)

辞退割合(辞退者数/ルール該当者数) 21

・理系科目が得意

・安定志向

・腰が重い

・ローカル志向

1

・文系科目が得意

・周囲への気配り高

・チームプレイが得意

2

実例3:学び

・ Cognitive Services は非構造化データから特徴量を

作成する過程で使える武器

・キーワード抽出、辞書分類を利用してテキストデータから

有用な特徴量を作成する

・重要特徴量の基礎集計や深堀分析で業務改善への

説得力をあげる

3.まとめ

まとめ

・機械学習ツールが超高機能化しているからこそ

特徴量で差がつく時代

・特徴量の作成に鉄板ルールはない

・ビジネス課題を解決するためにどう機械学習を活用するか

という視点がよい特徴量を作り出す

© 2018 Microsoft Corporation. All rights reserved.

本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。

© 2019 Microsoft Corporation. All rights reserved.

本情報の内容 (添付文書、リンク先などを含む) は、de:code 2019 開催日 (2019年5月29~30日) 時点のものであり、予告なく変更される場合があります。

本コンテンツの著作権、および本コンテンツ中に出てくる商標権、団体名、ロゴ、製品、サービスなどはそれぞれ、各権利保有者に帰属します。