企業がテクノロジーを利用してこれまで以上にユーザーを魅了するビジネスに変革するためには、3つの要素が重要であると言われています。ビジネス継続性の維持をするために多くの企業がこの3つの分野に投資をしています。
テクノロジーの導入は企業の生産性を飛躍的に向上させるパワーを持ちます。それは従来のプロセスの見直しを伴う時に最大の力を発揮します。せっかく新しいテクノロジーや機械を導入しても従来と同じやり方をしていては十分な成果をあげるのは難しいでしょう。たとえば書類に判子を捺印する業務を機械に置き換えるようなケースです。ここでプロセスを全面的に変えて書類を電子に切り替えて判子自体を廃止し、電子署名へプロセスを切り替えてこれを実現するためのSaaSサービス(テクノジー)を採用するというものです。プロセスの変更があって初めて電子署名に切り替えることが可能なのです。これを従来どおり紙の書類と捺印のプロセスにこだわってしまうとテクロジーの採用も捺印を前提としたロボットの採用という形になり、生産性の向上は飛躍的には上がりません。
さて人材はどうでしょうか?上記の電子署名の例をとってもこのプロセスを受け入れる人への教育はさらに重要となります。プロセスの変更は反発、混乱を生じさせる原因にもなりかねません。そこには十分な支援のための教育が欠かせません。会社の経営層が声高にDXを掲げるだけでは物事は前に進みません。
テクノロジーの採用、プロセスの変更、人材の教育をセットで検討が欠かせません。さてその順番はどうでしょうか?
わたしたちは人材の教育が最優先であると考えます。
プロセスの変更には十分な予備訓練が必要です。飛び込んであとから変更の失敗に気づいても現場とお客様、サプライヤーが混乱してしまいます。まずはプロセスの変更を伴う社員に十分な訓練、教育の計画を立て、その上でプロセスの変更を体験していただき、その上でテクノジーを採用するという順番がもっとも安全なデジタルトランスフォーメーションの進め方といえるでしょう。
幸いなことに多くのSaaS製品には、十分な無償利用期間が用意されています。同時にそのテクノロジーを学ぶためのコンテンツもオンラインに公開されており、中には動画で丁寧に説明しているものも多く存在します。このような状況からセルフラーニング(自己学習)を通して多くの人がテクノロジーやプロセスの変更に備えて準備をすることができるようになっています。これは自由な時間が与えられており、自由にSaaS環境を採用してテストができる企業であればこのような進め方が適しているでしょう。ベンチャー企業の多くはこのように新しいSaaSが世の中に出てくると個人で試し、企業でも少人数でトライして採用、2−3ヶ月の試験運用の結果利用できそうなものを本採用することで新しいテクノロジーとプロセス改善が行われていきます。
さて、あなたの会社ではどうでしょうか?
自由にSaaSをテスト導入することができない。ある程度自由に新しいテクノロジーをセルフラーニングする時間を確保されていない。これではデジタルトランスフォーメーションを本部に依存した形でしか進めることはできないのではないでしょうか。もちろん会社全体で新しいテクノロジーを採用することは重要なことです。しかしプロセスはどうでしょうか?小規模な単位のプロセスを知り尽くし改善できる人材は各事業部の担当者の貴方かもしれません。
DXの中心はプロセスの変更を伴うテクノロジーの採用であり、プロセスの変更によりすべてのサービススピードをさらに短縮し、これまで以上に多くのことを短時間でこなすことができるようにすることでユーザーを魅了することができるようになるのではないでしょうか。ユーザーは外部の顧客に限ったことだけではありません。人事や経理部門では勤怠や経費精算の簡略化やスピード改善で喜ばれるのは社員である社内ユーザーになるでしょう。ユーザーが高い満足度を得ると継続して利用します。社員の定着にも繋がり、削減された時間を他のユーザーのために費やすことができるようになります。最終的には社外のお客様のためにより良いサービスを提供する時間を確保できるようになるでしょう。
すこし話は長くなりましたが、これがDXの基本の3つの要素と優先順位についてです。
さて次にデータ分析についてです。先ほどプロセスの変更について話をしました。私たちは一体何に一番時間を費やしているのでしょうか?誰のための仕事をしているのでしょうか?最も利益をもたらしているお客様は?最も費用をかけている業務やプロセスは一体どこでしょうか?
答えは私たちの身近にあります。活用されていないデータがみなさんの周りに溢れています。ただし目に見えない場合も多いので気づいていないこともあります。
みなさんは、毎月何回体重を計りますか?
みなさんは、毎月何回体温を計りますか?
みなさんは、毎日何回ユーザーの声を目にしていますか?
みなさんは、毎月何回売上を見ていますか?
私たちは計測できるものしかコントロールできないとも言われています。体重を知らなければ体重をコントロールすることはできません。毎日体温を測らなければあなたの平均体温や微妙な変化に気づくことはできません。ユーザーの声を聞かなければ満足度を理解し、改善することは難しいでしょう。売上を毎月1回しか見ていなければ、月末時点の売上を予測し日々改善することができません。
そこにはデータが必要なのです。ある特定時点としてのデータは、状態を知らせているにすぎません。日々蓄積したデータをつなげて、集計し、時系列にならべて可視化すれば、データの変化や傾向を簡単に発見できます。週、月、年といった単位で集計し比較すれば過去との比較から改善対策が組めます。そこにはビジネス数字力、データ可視化と統計、分析力、仮説検証力など必要な知識があります。テクノロジーの進化に伴い、プロセス改善による改善効果が高まった今、データを見る力がこれまで以上に必要とされる時代になったといえます。
わたしたちは、プロセスを習熟した現場に近い人がデータを見る力を養うことでプロセス改善に最も近づけるというのはこれまでの経験からよく知っています。
モダンBI市場で選ばれているTableauプラットフォームは、現場に近い人たちの身の回りにあるデータを迅速かつ用意に実用的に可視化してインサイトをえることができる優れたツールの一つです。私たちが運営するTableauデータサイエンス勉強会のFBグループには、すでに2300以上の人が参加しています。Tabeluコミュニティには全世界で500以上のユーザーグループがあり、 100万人のメンバーがいます。変わりゆくテクノロジーとプロセスの中で変革を推進する皆様がデータを見る力を身につけさらに組織の中でデータドリブンな文化の中心的役割を担っていくことを支援しています。
私たちは、データを見る力、データを分析する力を習得するのはDXの基本的素養と考えています。同時にイノベーションを最大限に引き出す人材教育に焦点をあてデータを見る力を養うオンライン研修活動を積極的に支援しています。皆様のDXへの取り組みにデータ分析を取り込みより多くのビジネス問題の解決、ユーザーサービスの向上が図れることを願っています。もし組織内でお悩みのことがありましたらスプライングローバルまでお気軽にご相談いただければ幸いです。
データ分析の初学者から資格取得までをサポートするブートキャンプ を11月28日〜開催予定しています。
]]>
全く初めてTableau に触れる方から、基本的な使い方をもうちょっと勉強したい方までにお勧めの講座となっております。
一連のコースを受講いただくと、Tableauの基本的な操作は一通りマスター頂くことができ、Tableau資格取得までのノウハウも身に付けることができます。
]]>全く初めてTableau に触れる方から、基本的な使い方をもうちょっと勉強したい方までにお勧めの講座となっております。
この機会にオンラインTablaeu講座で「データ活用の達人」を目指しましょう!
本講座では、Zoom、Slack を利用して、参加者とのQ&A等コミュニケーションを行います。
Tableau Public(無料版)でも受講いただけます。(※ Tableau Prep Builderについては、評価版またはCreatorライセンスが必要となります。)
一連のコースを受講いただくと、Tableauの基本的な操作は一通りマスター頂くことができ、Tableau資格取得までのノウハウも身に付けることができます。
連続で受講いただいても、お好きなコースのみ選択して受講いただいてもOKです。
2020-07
Mon | Tue | Wed | Thu | Fri | Sat | Sun |
1
|
2
|
3
|
4
|
5
|
||
6
|
7
|
8
|
9
|
10
|
11 |
12
|
13
|
14 |
15
|
16
|
17
|
18 |
19 |
20
|
21
|
22
|
23
|
24 Prep基礎 |
25 |
26 |
27
|
28
|
29
|
30
|
31
|
2020-08
Mon | Tue | Wed | Thu | Fri | Sat | Sun |
1
|
2
|
|||||
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
20
|
21
|
22
|
23
|
24
|
25
|
26
|
27
|
28
|
29 |
30
|
31
|
|
|
|
|
|
|
2020-09
Mon | Tue | Wed | Thu | Fri | Sat | Sun |
1
|
2
|
3
|
4
|
5 Prep講座(TBD)
|
6
|
|
7
|
8
|
9
|
10
|
11
|
12
|
13 Certified Associate資格対策 |
14
|
15
|
16
|
17
|
18
|
19 データサイエンスオープンクラス(TBD) |
20
|
21
|
22
|
23
|
24
|
25
|
26 データサイエンスオープンクラス(TBD) |
27
|
28
|
29
|
30
|
31
|
|
2020-10 Tableauデータサイエンス学習塾第4期(TBD) |
#0 - 7つの基本可視化手法 (無料)
コース内容
・ Tableau Publicからデータへの接続
・ メジャーとディメンジョンとは
・ 棒グラフ
・ 円グラフ
・ ヒストグラム
・ 箱ひげ図
・ 散布図
・ 地図連携
・ 時系列データ
※ FIFA(サッカー)国別選手データ、東京の気象データなど身近なデータを扱います。
#1 ダッシュボード作成の基礎 (無料)
コース内容
・ グループ、セット、パラメータとは
・ 初めてのダッシュボード
・ ダッシュボード・アクション
※ FIFA(サッカー)国別選手データを使ってインタラクティブなダッシュボードを作成します。
#2 計算式の基礎 (無料)
コース内容
・ 計算式の基礎
・ いろいろな計算式
・ 表計算式の基礎
・ 表計算式を使いこなそう
※ 苦手な計算式もステップバイステップで勉強します。
#3 接続:ユニオンとジョイン (無料)
コース内容
・ ユニオンとジョインの違いとは?
・ ピボットとは?
・ データブレンドとは?
・ Tableau Prep Builder へのイントロ
※(おそらく)世界中で一番分かりやすい、売上表とマスター表のサンプルを使います。
#4 地図連携 (¥5000)
コース内容
・ 地理的役割の設定
・ 緯度経度情報の利用
・ 空間ファイルの利用
・ 最新の地図機能紹介
※ 東京のスターバックス店舗位置情報をスクレイピング、ジオコーディングしたデータからスターバックスの立地戦略を地図上にマップします。
#5 LODと統計機能 (¥5000)
コース内容
・ LOD(詳細レベル)とは?
・ LOD計算式を使いこなそう!
・ Tableau の統計機能を使いこなそう
・ FIXED/INCLUDE/INCLUDEの使い分け
※ 世界陸上選手記録やロックバンドのレコード売上など身近な例を取り上げて分かりにくいLODを分かりやすいく使いこなし、Tableau上級者を目指します。
#6 統計的アプローチ (¥5000)
コース内容
・ 平均、中央値
・ 分散、標準偏差
・ 傾向線の選び方、R二乗値の見方
・ クラスタリング機能の利用
※Tableauでも利用される統計的なアプローチについてその意味を理解していきます。
Desktop Specialist資格対策講座 (¥3000)
コース内容
Tableau Desktop資格 初級編、Desktop Specialist の問題を実際に解きながら、確実に解くためのコツを紹介します。
Desktop Certified Associate資格対策講座 (¥5000)
コース内容
Tableau Desktop資格 中級編、Desktop Certified Associate の問題を実際に解きながら、確実に解くためのコツを紹介します。
]]>LODを使ってみよう
LOD式はパワフルだけど・・・ 若干分かりにくいです。
本日はそもそもLODって何? というところから、LOD式の FIXEDの使い方をマスターしていきたいと思います。
さて問題です!
Q1:100ⅿ陸上選手の記録について、世界最速記録との差を計算してください。
Q2: 「Official髭男dism」のアルバム「Traveler」は2019年10月の発売でした。「KING GNU(きんぐぬー)」の アルバム「CEREMONY」は2020年1月の発売でした。発売から最初の3か月の売上累計はどちらが多かったでしょうか? (どちらが勢いが有ったでしょうか。)
※ どちらも2019年紅白歌合戦出場アーティストです。
こういった日常的(?)な問題にもLOD式が役立ちます。
まずは難しく考えないでやってみましょう!
その前に・・・・
詳細レベル(LOD) と 詳細レベル式(LOD式)は別物です。
まずはじめに:
メジャー(連続した数値)は ディメンジョン(集計レベルの単位)に
分けられ集計されます。
水が流れてマスに溜まるようです。
これは抗いようがありません。
LOD (Level Of Detail:詳細レベル) とは?
→ 可視化で使っている集計の区分のことです。上の図でいうところのマス目ですね。
ディメンションの組み合わせでもあります。 → 地区 X カテゴリ
練習をしてみましょう。
クイズ①: 以下の状態でLODは何ですか?
クイズ②: 以下の状態でLODは何ですか?
クイズ③:以下の状態でLODは何ですか
答え:
クイズ①: 地区
クイズ②: 地区 x 担当者
クイズ③: 地区 x 担当者 x 商品
★ ここで高輪さんの自己ベスト売上記録(1件当たり)はいくらでしょう?
クイズ: 高輪さんの自己ベスト売上記録を求めるために利用すべきLODは何でしょう?
“商品”
”地区”
”顧客”
”売上”
ヒント: 「データの表示」→「すべてのデータ」
答え:
高輪さん の最高売上 = 500
利用すべきLOD = 担当者
このように
可視化で利用しているLOD = [地区] x [担当] x [商品] が集計レベル であるのに対し
高輪さんの自己ベストを求めるLOD = [担当] の集計レベル となり
異なる集計の範囲で考えないといけません。
このように、可視化で使われるLOD(マス目)のルールを無視して、新しいマス目を作り、新しい集計をするのがLOD式となります。
LOD式のルール①:
可視化で利用しているマス目(LOD)を無視して新しいマス目の集計で考えたい場合に利用
(逆に言えば:可視化のLODと同じ場合はLODをむやみに利用しないことをおススメします。)
このように可視化のLODを無視した計算式を作るには以下のようなLOD式を書きます。
LOD式の書き方は以下のようになります。
{
FIXED [無視して作る新しい集計レベル] :
MAX ([集計対象メジャー])
}
LOD式には FIXED / EXCLUDE / INCLUDE がありますが、ここでは FIXED しか扱いません! 個人的な見解ですが、FIXEDで9割は片が付きます。難しく考えず、まずはFIXEDをマスターしましょう!
解説を入れます。
{
FIXED [無視して作る新しい集計レベル] : →新しく固定して利用したい集計レベル
MAX ([集計対象メジャー]) →上の集計レベルでの何をどう集計するか?
}
今回は以下のように解釈します。
{
FIXED [担当] : →新しい集計レベル「地区」に固定して
MAX ([売上]) →「売上」の合計を集計する
}
それでは、冒頭のクイズに戻りましょう。
Q1:
100ⅿ陸上選手の記録について、世界最速記録との差を計算してください。
各選手の年ごとの平均(記録)をクロス表に表します。
手順
・ 選手氏名を行にドラッグ
・ 年をディメンジョンにドラッグしてから列にドラッグ (最初連続メジャーのため)
・ 記録の「平均」をテキストにドラッグ (1年に複数回記録があるため「合計」ではない)
ちなみに、陸上100ⅿの世界記録は、ジャマイカのウサインボルト選手が2009年に記録した、
9.58 です。
この記録を計算するにはどうしたらよいでしょうか?
計算式: 世界記録を作ってみて下さい。
例えば、陸上の記録とは、最も小さい(早い)記録ですから、MINを使ってこのようにして見たらどうでしょうか?
世界記録になりませんね?
これは集計の単位が、可視化で使っているLODに自然と従ってしまうからです。
ここで以下のよう計算式に書き換えてみましょう。
どうでしょう? 世界記録 9.58 が全てのマスに入りました。
この計算式は以下のように解釈します。
{
FIXED : → ディメンジョン指定がないので、全てにおいて
MIN([記録]) → 最小の記録を持ってくる
}
このように、可視化で利用している詳細レベル(LOD)を無視して、新しい集計レベルで考え直したい場合にLOD式を使います。
おさらい:
クイズA: “可視化で利用しているLODは何でしょうか?”
“年”
”選手氏名”
”記録”
“全体”
クイズB: “世界記録を計算するためのLODは何でしょうか?
“年”
”選手氏名”
”記録”
“全体”
クイズA とクイズ B のLODが違い場合にLOD式が必要になります。
答え:
クイズA: “年” x ”選手氏名” x ”記録”
クイズB : ”全体”
ここで、レコードレベルでどんなことが起こっているか見てみましょう。
・ Ctrl +A で全てを選び
・ 右クリックでデータの表示
・ 参照元タブをクリック
全ての行に「世界記録 9.58」が入っているのが分かります。
全ての行に同じ値が入るので、それぞれのレコードと比較するのは簡単です。
この(FIXEDで指定したLODについて)全て同じ値が入るんだという感覚がすごく大事なんじゃないかと思います。レコード単位に同じ値が入るので、レコード単位で計算ができます。
世界記録との差を作ってみましょう。
ばし選手は記録が 2行有るので、 世界記録との差 は平均で表示しましょう。
ここではで触れませんが、可視化の仕方はいろいろ工夫できると思いますので、お試しください。
もう一つとても重要なポイント: LOD FIXEDと フィルターの関係です。
タイトルに詳細に 「世界記録合計」を含めておくと見やすいですが、やっていただかなくてもOKです。(詳細に世界記録を入れておきます)
世界記録ではなくて、 日本記録が見たいと思います。
国籍=日本のフィルタをかけてみましょう。 「世界記録」の値は変わりましたか?
変わらないんです!
国籍のフィルタを右クリックし、「コンテキストに追加」を選択します。
記録は 桐生選手が 2015 年に記録した 9.87 に変わります。 (ちなみに、これは追い風のため参考記録であり、日本記録ではないそうです。)
とにかくFIXEDの計算結果は強いので、普通のディメンジョンフィルタが効きません。(この性質を逆に利用する場合もあります。) フィルタの順序については以下を参照ください。 Tableau の操作の順序
それでは、Q2に行ってみましょう!
Q2: 「Official髭男dism」のアルバム「Traveler」は2019年10月の発売しました。「KING GNU(きんぐぬー)」の アルバム「CEREMONY」は2020年1月の発売でした。発売から最初の3か月の売上累計はどちらが多かったでしょうか? (どちらが勢いが有ったでしょうか。)
※注意:機能を理解する目的のデータであり、事実の正確性を保証するデータではございません。
Official髭男dism と KING GNU ではアルバムの発売日が異なるので、単純に比較することができません。
ヒント: 発売初月 から数えて、何か月目かを計算します。
ここで、発売初月 とは、アルバム ごとに最初の(最小の)販売記録のある月となります。
ここでは、「アルバム名」という新しく独立した集計の単位で、最も古い日付を「発売月」とします。
Q: 可視化で利用しているLODは何でしょうか?
”アーチスト”
“アルバム”
“日付”
”推定売上”
Q: アルバム(ごと)の発売日初月を求めるためのLODは何でしょうか?
”アーチスト”
“アルバム”
“日付”
”推定売上”
これも、可視化のLODと利用したいLODが異なります。
可視化のLODを無視して、「アルバム名ごと」という新しい範囲で集計をやり直すために、LOD式を作ります。
(今回はアルバム名だけでユニークに特定できるのでアルバム名のみ指定します。)
{ FIXED [アルバム名] : MIN([日付])}
発売月からの経過月を作ります。 → 分析の軸に利用するので、メジャーからディメンジョンに変更します。
datediff('month',[発売月],[日付])
列の 日付 を 発売月からの経過月 に置き換えます。
推定売上枚数を累計にします。
可視化は色々工夫出来ると思います。KING GNU の方が発売当初3か月の売上は大きかったようですが、髭男の方がロングセラーでトータルの売上はKING GNUを越えているようです。
【メモ】 EXCLUDE はどんな動きをするの?
EXCLUDEは「可視化で利用しているLODの中で、何を 「無視するか」 を指定します。
Q1 のFIXEDを使用した世界記録ですが、こちらはEXLUDEを使って書くこともできます。
可視化で利用してるLODは 「選手氏名」 と 「年」 ですから、
「選手氏名」 と 「年」 という枠を無視すれば世界記録が取れます。
以下のように「年」を無視すると「選手氏名」の枠の範囲で集計をします。
→自己ベストですね。
{EXCLUDE [年]: MIN([記録])}
以下のように「年」と「選手氏名」を無視すると「全体」の枠の範囲で集計をします。→世界記録ですね。これは {FIXED : MIN([記録])} と同じ結果になります。
{EXCLUDE [年],[選手氏名]: MIN([記録])}
【メモ】 INCLUDE はどんな動きをするの?
INCLUDEは可視化には存在しないLODを忖度して入れる場合に使います。
今、以下のように日本の選手(?)の記録がある場合、2019年については3人の選手の平均記録は (9.97 + 10.01 +13.00) / 3 = 10.993 ・・・ (ア) となります。
ここで、行から「選手氏名」のLODを取り去ると、数値が 10.993 から 11.495 に変わってしまいます。これはなぜでしょう?
実は「ばし」選手は計測記録が2回あり、この平均が表示されていたのでした。
ここでは、(9.97 +10.01 + 14.00 +12.00 ) /4 = 11.495 ・・・(イ) となります。
この時、可視化に使っていない「選手氏名」で一度平均を取ってから、もう一度全体で平均を取ろうとしても、「選手氏名」は可視化のLODにないので、考慮のしようがないのです。
そこで、LOD式の INCLUDE が出てきます。可視化LODには存在しない「選手氏名」を考慮して、そこで一回集計します。
{INCLUDE [選手氏名]:AVG([記録])}
上の計算式で置き換える(平均でドラッグします)と、(ア)の計算と同じ 10.993 になります。これは可視化では使っていない「選手氏名」を忖度して一度集計レベルに利用して更に集計を行います。
このように可視化に利用していないけれど、集計には考慮したい場合にINCUDEを利用します。
以下まとめると以下のようになり、つまるところ、可視化のLODと利用したいLODが違う場合のみLOD式を利用するということになります。
【お知らせ】
こちらのテキストで利用しているデータと講義のデータは、こちらのリンクから入手いただくことができ、実際にハンズオンをやっていただくことができます。
Tableau基礎・ビデオ講座-#5LOD (詳細レベル)表現
ややアプリ内課金的な雰囲気もありますが、結構な産みの苦労もありましたので、カンパのお気持ち、いただければ今後の創作のモチベーションになります!よろしくお願いします!
また、楽しみながらデータ分析を学べる企業向け研修も開催しておりますのでお気軽お問合せ下さい。 Twitter:DMでも!
随時そのほかのコースも追加していきたいと思いますので、ご期待ください!
]]>
こちらの機能を使って:
* あらかじめPython環境に作成しておいた予測モデルに対して
* Tableau Prep Builderから説明変数(予測の元ネタ)をPython に送り
* 得られた予測値をデータソースとして共有する
ということをやってみたいと思います。
]]>
Tableau Prep Builderから「スクリプト」を使って、Python環境で命令を実行し、実行した結果を再び利用するということができます。
(バージョン 2019.3 からの機能で、基本的な使い方はこちらの記事を参照ください。)
こちらの機能を使って:
* あらかじめPython環境に作成しておいた予測モデルに対して
* Tableau Prep Builderから説明変数(予測の元ネタ)をPython に送り
* 得られた予測値をデータソースとして共有する
ということをやってみたいと思います。
具体的なユースケースとして
* 過去データから東京の中古マンション価格の予測モデルを作成し
* Webからスクレイピングしたマンション情報の価格を予測させ
* 予測結果を付けたデータをTableau Online にパブリッシュして共有する
というシナリオをご紹介します
全体の流れとしては以下のようになります。
① 予測モデルの定義 (Jupyter Notebookで実施)
② 訓練データの学習 (Jupyter Notebookで実施)
③ 予測結果を推論 (Tableau Prep BuilderからPythonを呼び出す)
④ 可視化する (Tableau Desktop / Online / Server )
① 予測モデルの定義 (Jupyter Notebookで実施)
予測モデルを作成するために利用する訓練データ(過去の取引データ)を国土交通省のサイトからダウンロードします。
諸々のデータ前準備を経て、機械学習で利用できる形に入力データを生成します。手順は結構な長さになりますので、ここでは割愛させていただきます。(ご興味がある方は、書籍:Tableauで始めるデータサイエンス にて紹介しておりますのでご参考ください。)
最終的に以下のような形にします。
それぞれの項目の説明は以下です。
項目名 | 説明 | データ型 |
uid | 物件のユニークなID | 文字列型 |
years | 築年数 | 整数型 |
minutes | 最寄駅からの徒歩距離(分) | 整数型 |
sqrm | 物件の㎡数 | 整数型 |
distance | 東京駅と最寄り駅の直線距離(都心からどれだけ離れているか?) | 浮動小数点 |
renovate | 改装済みか否かフラグ | 整数型 ( 0 or 1 ) |
express | 急行が止まるか否かのフラグ | 整数型 ( 0 or 1 ) |
price | 取引価格(目的変数) | 整数型(単位:1円) |
この入力データをもとに、予測モデルを作成します。予測モデルを作成し、実際に予測を行う流れは以下のようになります。
こちらは、Jupyrer Notebook上で操作を実施します。(今回はベーシックな線形重回帰を利用します。)
② 訓練データの学習 (Jupyter Notebookで実施)
作成したモデルに対してfitで訓練データを学習させます。
予測モデルを作成するプロセスについては、今回のメインテーマではないため割愛させていただきます。
(こちらも、ご興味がある方は、書籍:Tableauで始めるデータサイエンスにて紹介しておりますのでご参考ください。同データについて、訓練データと検証データの分割、作成されたモデルの精度検証等紹介しています。)
最終的なチューニングと評価を完了し、モデルが利用できると判断したら、これをPiclkeを使って一度ファイルにダンプします。訓練が完了した予測モデルをTableau Prep Builderから利用するために一度Pickleでダンプするというのがポイントとなります。
③ 予測結果を推論 (Tableau Prpep BuilderからPython を呼び出す)
それでは、ここから Tableau Prep Builderを使って、学習には利用していないWebスクレイピングから取得した中古マンション物件のデータについて、その価格を先ほど作ったモデルに適用して価格を予測してみましょう。
Webからスクレイピングしたデータにも、学習に利用した、築年数、徒歩分数、広さ等の情報があります。(実際には同じ項目が含まれるよう前準備をしていますが、今回のメインテーマではないのでここでは割愛します。)
入力データを確認した後、Python に処理を渡すためフローに「スクリプト」を追加します。「スクリプト」を追加すると下図の「巻物」のようなアイコンが追加されます。スクリプトを追加したら、接続タイプで「Tableau Python (Tabpy) Server」を選択し、Tabpy サーバーに接続します。
ここでは サーバー: localhost、 ポート: 9004 を選択します。
Tableau Prep BuilderからPythonコードを実行するためにはTabpyサーバーを立ち上げる必要があります。今回はTableau Prep Builderが起動しているローカルのPCにTabpyサーバーを起動しています。
Tabpy サーバーの起動方法についてはこちらの記事を参照ください。
次にTableau Prep Builderのスクリプトから実行する関数を含むPython スクリプトファイルを作成します。
ここでは PredictPrice_python.py というファイルを作成し、PredictPriceという関数とget_output_schema という関数を作ります。
ファイルの内容は以下のようになります。(※ 日本語コメントを入れるとエラーになってしまうようなので、実際には日本語コメントは入れていません。理解と解説のためにあえて日本語でコメントを入れています。)
上記ファイルはこちらからダウンロードできます。
ポイントを抜粋すると
関数 PredictPrice では以下の内容を実施します。
・ Tableau Prep Builderからのデータをdf という名前のデータフレームで受け取る
・ Pickleで保存しておいた予測モデルをもう一度呼び出す
・ データフレームから説明変数を取り出して予測モデルに投入する
・ id と予測値のみを返す
関数 get_output_schema はTableau Prep Bulderから入力とPython からの出力データのフィールド構造が違うときに、出力の形式を定義するために必要となります。これはTableau Prep BuilderとPythonを連携する際のお作法という感じでしょうか。Tableau Prep Builder の入力には様々な入力フィールドがありますが、Pythonからは id と predict (予測値)しか返さないので、その旨を定義します。
‘Id’ 列は整数型なので、prep_int()、’predict’列はDECIMAL型なので prep_decimal() で定義しています。出力したいフィールドの定義をこの関数の中に記載します。
get_output_schema でのフィールドの指定方法はこちらを参照ください。
Tableau Prep Builderに戻って、Pythonファイルと関数 PredictPrice を指定します。
この時点で id と予測値 predict が表示されます。
これをオリジナルのデータ分岐から id で結合すると、オリジナルデータに対して予測値が追加されます。
こちらの出力先として、Tableau Online を指定すれば、予測結果を含むデータソースそチームで共有し、そこから予測を含むデータから新しい発見をチームで探索することができます。
以下、Tableau Online 上にパブリッシュされたデータソースを確認します。
④ 可視化する (Tableau Desktop / Online / Server )
このデータソースをもとにTableau Online 上(Webエディット)で誤差(予測 ー 実際にWebに掲載されている価格)の計算フィールドを作り、駅ごとに比較してどの駅で誤差が上振れ(お買い得?)または下振れ(お買い得ではない?)しているかを確認します。
よく見ると、西国分寺、東小金井は予測の方が実際より高いので「お買い得」なのかもしれません。
一方で吉祥寺は実際の方が予測より高いので、街の人気度等今回考慮していない説明変数があることを示唆しているかもしれません。
このように、Python 上で一度予測モデルを作成しておけば、これを再利用し、Tableau Prep Builder で前準備したデータをもとに予測値を取得し、予測値を付けた結果をデータソースとして共有しチームで解析することが可能です。
一度フローを作ってしまえば、予測したい元ネタとなる物件情報が追加された場合も、フローを再度実行すれば、新規物件についても予測値を得ることができます。
他にも、顧客の行動から会員離脱を予測するモデルを作成し、毎週の行動履歴をアップデートして、そのデータに基づいた離脱確立を確認計算し、各自分析を行うといったユースケースも考えれるかもしれません。
予測モデルに投入するデータを複数データソースから組み合わせ、複雑な前処理をおこなってから予測まで一気通貫で実行するといった場合、Tableau Prep Builderの中からPythonを連携するメリットが生まれてくるかと思います。
Tableau とPython を使ってデータから価値を生み出すプロセス改善について、スプライングローバル または Twitter @datarockstartky にご連絡ください。(DMの場合はお名前、会社名をご連絡ください、記載のない場合返信は致しかねます。)
私達の方で何らかのお役に立てれば幸いです。
どうぞよろしくお願いいたします。
]]>Tableau のバージョン2020.2から Data Modeling機能が追加されました。今回はこのData Modelingの機能と今までのジョインとの違い、データブレンドとの使い分けについて考察してみたいと思います。
Tableau 2020.2 を開き、データに接続すると、いきなり今までのとは違った接続画面が出てちょっと驚きます。 もう一つテーブルを追加すると、2つのテーブルが曲円で繋がれる画面となります。これが新しい「Data Modeling」 機能です。(曲線が「うどん」のようなのでNoodleとも呼ばれています。)
2つのテーブルを結合する際に、今までのようなベン図もなければ外部結合、内部結合の指定もありません。
Data Modeling の特徴としては
§ 詳細なジョインの定義をしなくても、必要な結合をTableauがうまく考えてくれる
§ 今までのように先に結合表を作らない
§ ユニークでない表のジョインによって発生する重複行の問題を解決してくれる
というところかと思いますが、いくつか実際のデータを見ながらどのような動きをするのか見てみましょう。
① 重複行がある場合の動き
まずは、重複行がある場合の動きについて見てみましょう。
以下のようなシンプルな二つの表があるとします。
1行だけの売上表があります。地区=東京で5月に1件の売上がありました。
【売上表】
3行の担当者表があります。地区=東京の担当者は 「東京1」と「東京2」で二人いるようです。
【担当者表】
最初に、今まで見慣れた2020.1までの動きを見ていきましょう。
地区(売上) = 地区(担当者) の条件で内部結合をします。
売上表 に 地区=東京 が1行あるのに対し、担当者表には 地区=東京 が2行あるので、
1 x 2 = 2行のレコードが生成されます。
これはリレーショナルデータベースの世界では、至極当たり前のことですが、重複行が現れることでちょっとした不都合が発生します。
【2020.1】
シートで、「地区」、「顧客」ごとの売上を確認すると、重複行が発生しているため売上は2倍の200円になっていることが分かります。
東京で1件、高輪さんに対する100万円が唯一の売り上げだったハズなのに、東京の担当者が2人いるために、レコードが2行になりました。
担当者が2人いるからと言って、売上が2倍になる!ということはない ですよね・・・
これはおかしな話です。
担当者を行に追加して、小計を追加してみても、担当者ごとに売上が存在して、小計が2倍の200万になっています。
同じことを、2020.2 で行ってみましょう。
売上表と担当者表の間でリレーションを貼ります。
【2020.2】
2020.2 Data Modeling では、最初から2つの表を結合した結果表を作りません。なので、それぞれの表が独立して表示されます。売上表をクリックすると、売上表のみ表示されます。
担当者テーブルをクリックすると、担当者表のみ表示されます。
では、先ほどと同じように、売上表から地区と顧客、売上を表示します。
2020.2では重複行が発生していないので、売上は100万円です。
同じく担当者を行に追加して小計を追加してみます。担当者それぞれに100万円が表記されますが、小計は本来の東京の売上である100円となっています。
事実に即した表示方法になっていますね!
② 外部結合の扱い方について
ここで、Data Modelingには外部結合を指定するところがないので、どのようにしているのかな?と思いました。やってみましょう。
売上表示は以下の一行があります。
担当者表には以下のように東京以外にも”大阪”、”名古屋”の地区が存在します。営業地区の定義はあるけれども、売上が立っていないので、売上表に”大阪”、”名古屋”の記録はありません。
Tableau 2020.2 から接続し、 地区(売上)= 地区(担当者) でリレーションを定義します。ここで外部結合を指定したいのですが、指定するところがないので、少しタジロギます。ここを何とかうまくやってくれるのがData Modeling の機能です。
シートに移動して、担当者テーブルから「地域」、「担当者」をドラッグし、売上を表示します。
売上の立っていない大阪、名古屋についてもデータとして表示されますので、内部結合で決め打ちというわけではなく、必要に応じて外部結合をし売上の立っていない(売上表にはデータの存在しない)大阪、名古屋の地区についても地区名を表示してくれています。
ここで、売上表から購入した顧客名をドラッグすると、売上のない(顧客のいない)大阪と名古屋が消えてしまいます。
これについては、ツールバーから「分析」 → 「表のレイアウト」 → 「空の行を表示」 と設定することで、消えてしまった大阪と名古屋地区を表示することができます。
ここで、Data Modeling のリレーション定義機能に戻って 担当者テーブルの参照整合性の指定で「すべてのレコードが一致する」を選択すると、担当者表の全ての地区が売上表に存在する(包含される)と仮定するため内部結合したのと同じ結果となり、両テーブルに存在する「東京」のデータだけが表示されます。 内部結合的な動きを期待する場合にのみ使用するようにした方が良いでしょう。
③ トランザクション表同士の結合(粒度が同じ)
「売上表」と「宣伝広告費」を比較して売上に対する宣伝広告費がどれだけの割合をしているか確認したい場合など、トランザクション表同士を結合するケースについて見てみましょう。
このような売上表があるとします。東京と大阪の売上履歴です。
【売上表】
一方、宣伝広告費表があり、地域ごと、宣伝メディアごとの費用があります。
【宣伝広告費】
東京の5月の売上は(100+200+300)=600万円、広告費は(30+40+50)=120万円 となりますので、東京地区での売上に対する宣伝広告費は 120/600 = 20 % と分かりますね。
では、これを2020.2のData Modelingを使って計算してみましょう。
売上表と宣伝表を
日付(売上) = 日付(宣伝費)
地区(売上) = 地区(宣伝費) でリレーションを貼ります。
ここで、「日付」 と 「地区」 ごとの 売上 と 宣伝費用を並べて表示します。
東京については 売上=600万円、宣伝費=120万円 ですから正しく比較できています。
宣伝費用の割合は、東京では20.00% となります。今までのジョインでは重複行が発生してしまっていたところが、うまく処理できているようです。
④ トランザクション表同士の結合(粒度が異なる)
それでは、売上表と、宣伝費で日付の粒度が異なる場合はどうでしょうか。
売上表は日単位で売上が計上されます。このようにレコード記録の粒度が異なる場合に、ひと月の売上とかかった宣伝費用を集約してから比較したいというケースもあります。
一方、宣伝費は月単位(全て2020/5/1の日付)で計上されています。
先に答え合わせのために検算しておくと、東京の5月の売上は(100+200+300)= 600 万円
一方東京の5月の宣伝費用は (30+40+50) = 120 万円 となります。売上に対する宣伝費用は 120 / 600 = 20.00% となりますね。
さすがに、このように粒度が違う2つの表を集計したから結合するという場合にはData Modeling以外の別の工夫が必要です。
Data Modelingも集計してから結合するとう機能ではないので、日付のレベルは合わせないといけません。売上日が 2020/05/02 だった場合、 宣伝費が計上される 2020/05/01 とは結合できないのですね。(違う日付ですから。)
(2020-5-20 : パフォーマンスオプションの設定によって下記の動きも実現可能ケースもあるようですが、基本的にデータの構造が判別できないときには「規定」の設定を利用するという前提で以下説明を進めます。)
※ 現在はData Modelingの機能で結合条件に計算式を用いることができないようです。日付レベルを月のレベルに揃えてからリレーションが張れるようになると良いですね。
このように集計してから結合するといった場合はデータブレンドの機能を利用すると良いでしょう。
たとえば以下のようにします。
売上については、日付を 「年月」のレベルに切る詰めるために、詳細=年/月としてカスタム日付を作成します。
同じように、宣伝費用でも日付を「年月」レベルに合わせるために、詳細=年/月としてカスタム日付を作成します。
データ → リレーションシップの編集で
地区(売上) = 地区(宣伝費)
日付(年/月)(売上)= 日付(年/月)(宣伝費) のリレーションシップを貼ります。
これは、同じ地区、同じ月で切り詰めた年/月 で集計した値同士を、集計してから突き合わせるということになります。
以下のように、売上を月で集計してから宣伝費用と結合するため、5月という月の単位で売上と宣伝費用を比較できるようになりました。5月の売上が 600万 で宣伝費が120万ですから、売上に対する宣伝費用の割合は 20.00%となります。 計算は合っていますね。
このようにデータブレンド機能は、「集約してから」結合する際に威力を発揮するのですが、先に利用した方がプライマリデータベース、後から利用した方がセカンダリデータソース、プライマリデータソースを外部結合とする等のTableau オリジナルのルールがあるので、注意しなければなりません。
【参考】データブレンドとは
きちんと外部結合、内部結合の方式を意識し、集計のレベルを設計したい場合はTableau Prep Builderを使ってフロー化した方が良いでしょう。データ生成はフローを実行しタイミングとなりますので、バッチ処理となりますが、前処理を分離して利用する前に完了して置くことで可視化のパフォーマンス向上も期待できます。
【参考】Tableau Prep Builderのフロー定義
ちなみに、Data Modelingの箱(論理モデル)をクリックするとその中身(物理モデル)を定義することができます。
こちらが論理モデルを構成する物理モデルを開いたところです。
マスター表がキーに対してユニークと分かっていて、トランザクション表とマスター表の定義が明確な場合、この物理モデルの中できちんと定義して置くのが良いでしょう。今まで通りの動きを期待する場合はこちらのの物理モデルを使うという方法があります。
このように、Data Modeling では複雑なデータ結合の構造(物理レイヤー)を論理レイヤーで一つの箱と表現しラッパーのように隠ぺいして整理するという効果も期待できます。
【参考】データモデルにおける「論理レイヤー」と「物理レイヤー」
以上、要件に合わせた使い分けは以下のようになりそうです。
利用シーン | 対応する方法 |
* キーについてユニークなマスタ表への結合 | 今まで通りのジョインでも全く問題ない |
* キーでユニークにすることができないマスター表への結合 * 集計の粒度が同一のトランザクション表同士の結合 |
Data Modeling の活用によりTableauの自動化が期待できる |
* 集計の粒度が異なるトランザクション表同士の結合 | データブレンドを利用して集計してから結合 |
* きちんと結合方式の設計をしてフロー化する、前処理が複雑、バッチ処理でも良い。 | Tableau Prep Builderを利用する |
Tableau のData Modeling 機能によって、重複行発生に伴うデータの「つじつまが合わない」という問題については、専門的なリレーショナルデータベースの知識なしに、Tableau がうまくやってくれるという点は期待できます。
今後、よりBIツールがスマートになり、先回りで気を利かしてデータの前準備をしてくれる機能開発の先駆けとなりそうなです。
一方で、やはりマスター表のデータの持ち方として、キーに対してユニークにデータを持たなければおかしなことになるという感覚はデータを扱う際に依然として必要であり、データの持ち方もキレイに保つ心がけも同時に必要になるのではないかと考えます。
以上、参考になれば幸いです。
参考資料
]]>新型コロナウィルスの影響でオフラインイベントの実施が困難となった今、オンラインイベントの開催機会が増加しています。今回、その実態についてヒアリングし、効果的なオンラインイベントの開催方法を調査するためにアンケートを実施しました。
実施概要
Q1 -開催曜日について
「どちらでも良い」+「平日希望」が9割弱
Q2 - 開始時間について(複数回答可)
18時以降開始希望が多数
Q3 - オンラインイベントに参加する際に気になる点を 教えてください。(複数回答可)
家族や子供がいる、個室がないとオンラインで参加する環境が気になる
Q4 - 懇親会について
72%が懇親会を希望
Q5 - 懇親会の時の顔出しについて
76.6%が顔を表示することを希望
Q6 - 性別を教えてください
男性:77.5%
女性:22%
答えない:0.5%
Q7 - オンラインイベントにおいて困っていること、ご要望、ご意見を何でもどうぞ!!(一部抜粋)
アンケートから浮かぶオンラインイベントの課題と対策
課題 1:環境
住居環境/家庭環境によって、オンラインイベントに参加しづらい層も一定数存在する。イベントの目的によって曜日・時間を検討。
課題 2:オンラインリテラシー
主催者、参加者ともに最低限のオンラインリテラシーを必要とする。事前の準備にこれまで以上に配慮する必要がある。
課題 3:つながり(交流)
オフラインのような繋がりの実現はまだ難しいという状況。また3割近くの方が交流会を必要ないと回答していることも分かった。また人数が増えると一度に会話するのが難しいということもあり少人数グループに分けて交流をするなどの工夫も必要。
御礼
この度は200件以上と大変多くの方からアンケートのご回答をいただきました。お忙しいなか、ご協力いただきありがとうございました!
想定していた結果だけでなく、様々なご意見や気づきを得ることができました。
日々変化する状況のなか、オンラインに対する姿勢やツールの発展も進むかもしれません。その際はまた機会をいただければと思います。
今回のアンケートが、少しでも皆様のご参考になれば幸いです。
グラフ入りの報告書はこちらからダウンロード可能です。
調査実施者
ストックマーク株式会社 中野 秀子
スプライングローバル株式会社 藤松 良夫
合同会社Obu 小父内 信也
]]>
今Twitter等でも話題になっている、PyCaretを使って予測モデルを作り、中古マンションの価格を予測するステップを紹介したいと思います。
PyCaretを使うと、最小限のPython コードで、予測モデルの作成、チューニング、予測の実施等一連の機械学習のステップが可能となります。
この記事では、これから機械学習を始めようという方に向けて、Pycaretを通して機械学習ってなんだっけ?というところを紹介しながら進めていきたいと思います。感覚的な分かりやすさを重視しますので、厳密な定義とは異なる表現もあるかもしれませんがご了承ください。
さて、このPyCaretですが、機械学習の予測モデル作成に必要となる、諸々の処理を簡単なコード一発で実行してくれる優れモノで、使ってみてなんて便利なのだろう!と驚きました。しかも、無料です!
が、しかし。そもそも機械学習のプロセスの大変さを理解しないと、ありがたみが分からないかもしれません。
§ 教師有り機械学習とは?
予測モデルを作成し、精度を高めていくというのは本当に大変な作業です。
ここではまず「教師有り機械学習」について必要な作業についておさらいをしたいと思います。
教師有り機械学習では、結果(回答)の分かっている過去のデータをもとに何らかのルール(モデル)を導き出し、そのルールにあてはめて知りたい結果を予測します。
例えば、過去の中古マンションの物件条件と価格のセットがあれば、最寄り駅がどこで、広さが何平米で、築何年で・・・という条件が分かれば価格も予測できそうです。このルールを様々なアルゴリズムを使って機械にルールを作らせる。これが機械学習ですね。
教師有り機械学習のステップはざっくり分けて以下のようになります。
① データを訓練データと検証データの分割
モデルの学習に使っていないデータでモデルの検証を行うため、データを訓練データと検証データに分割します。訓練データで評価してしまうと、それはカンニングみたいなモノですからね。通常は訓練データとモデルの精度を検証するデータを満遍なく公平に使うために分割を行い交互に入れ替えること(クロスバリデーション)を行います。
② モデルの作成(学習)とハイパーパラメータのチューニング
予測に用いるアルゴリズムを決めて訓練データを使って学習しモデルを作成し、精度を高めるためのチューニングを行います。
③ モデルの評価
訓練によって出来上がったモデルの精度を評価し、誤差がどれくらいで、使いものになるかどうかを評価します。
④ 未知の値の予測
評価が完了したら、予測モデルに結果のわからないデータを投入して予測結果を得ます。マンション物件の条件だけわかるけど、価格は分からないので予測するというイメージです。
§ 実際にPyCaretを使ってみる。
では早速Pycartを使ってこのフローを実施していきましょう。
まずは pip で pycaret をインストールしましょう。
今回はAnaconda Powershell からpip を実行しています。
まずはデータを読み込みましょう。今回も「Tableauで始めるデータサイエンス学習塾」で利用しているこちらの東京・中央線沿線の中古マンション価格データを教師データとして利用します。データ自体は以下のような内容になっています。
それぞれの項目の説明は以下です。
項目名 | 説明 | データ型 |
uid | 物件のユニークなID | 文字列型 |
years | 築年数 | 整数型 |
minutes | 最寄駅からの徒歩距離(分) | 整数型 |
sqrm | 物件の㎡数 | 整数型 |
distance | 東京駅と最寄り駅の直線距離(都心からどれだけ離れているか?) | 浮動小数点 |
renovate | 改装済みか否かフラグ | 整数型 ( 0 or 1 ) |
express | 急行が止まるか否かのフラグ | 整数型 ( 0 or 1 ) |
price | 取引価格(目的変数) | 整数型(単位:1円) |
データをPandasに読み込んで学習に不要なユニークIDを落とします。
import でPycaret を呼び出します。今回は価格を当てる回帰モデルですので、 pycaret.regression から import を行います。目的変数(予測したい変数)をここではマンションの価格”price” にセットして、Setup ()ファンクションを実行すると、各フィールドが数値列なのか、カテゴリ列なのかを自動判別し、相違がなければリターンキーを実行します。
必要な前処理を実施します。
compare_model() で各種のモデルを評価、比較し誤差の少ない順番に並べます。内部的にはクロスバリデーション(偏りなく、満遍なく教師データと検証データを入れ替える)を実施しており、デフォルトではFold=10(データを10分割して、訓練データと検証データを入れ替えている)それぞれの平均のスコアを表示しています。
今回は「CatBoost Regressor」のスコアが良かったようです。RMSEは 630万ということですので、マンションあたりの誤差平均は630万程度とざっくり理解してもよいかもしれません。
実際に訓練されたモデルを利用するために、 create_model()ファンクションを実行します。Shift+Tabで引数に何を入れれば良いかのガイドが出ますが、ここでは最もスコアの良かった「CatBoost Regressor」を指定します。
tune_model() によってモデルを作成すると、ハイパーパラメータ(学習する前にあらかじめ決める、モデルの動作に関する初期設定パラメータ)はデフォルトのままです。事前設定された範囲の中から適切なハイパーパラメータを探します。ここではベストなパラメータの探索方法としてRandom Searchが利用されているようです。
plot_model()によりモデルの精度を可視化して確認します。Error Plot では予測と実測がイコールになる場合、分布が y=x の直線の付近に近づきます。
Feature Importance Plot では、どの変数が予測に強く関与しているかを確認します。今回の場合、築年数(years) 、平米数(sqrm)、distance(東京駅から最寄り駅までの直線距離)、minutes(最寄駅からの徒歩分数) の順で影響が強いことが分かります。
最後にfinalize_model()を実行し、モデルを確定します。ここでprint すると最適化されたハイパーパラメータを確認することができます。
ここで、学習済みのモデルができたので、モデル作成に使われるハズのない、Web上の不動産ページからスクレイピングしてきたマンション価格情報を準備し、”data_unseen”という名前のデータフレームに入れます。
この”unseen_data” を、今作成した予測モデルに投入し、価格の予測を行わせてみます。
この操作は非常に簡単で、説明変数を学習データと同じ形で切り出し、predict_model()ファンクションを使って予測値を算出します。
以下、予測値が”Label”として追加されているのが分かります。本来は未知のデータについて、目的変数である”price”は分からないのですが、今回は既にWebで公開されているマンションの価格があるので、”price”はデータに入っています。(ただし、公開情報は単位が1万円となっています。)このWebに公開されている”price” と予測モデルが予測した予測値である”Label"を比べると、割とイイ感じの値が出ていることが感覚的に見れます。(大体、2千万~4千万で東京のマンション価格のレンジになっているようです。)
このデータをCSVに落とすことができるので、CSVに落としてからTaleauに接続して可視化をします。
ここでWeb上の公表価格”price” と予測モデルが算出した”Label"を比べると、予測より実際の価格のほうが安い「お買い得物件」やその逆に実際の価格が高い物件が見つかるかもしれません。 (以下、Tableau での予測価格の利用方法については、こちらのリンクと同じ内容です。)お買い得度を以下のように計算フィールドとして定義し、予測価格の方が掲示価格より高い場合、実際には「思ったより安い!」のでお買い得度が高くなり、逆に予測価格が掲示価格より低い場合、実際のは「思ったより高い!」のでお買い得度が低くなるようにします。
これを駅ごとに箱ひげ図を書いて可視化すると以下のようになります。
四谷はレンジが広すぎて当てにならない、吉祥寺はお買い得が低い、西国分寺はお買い得度が高い・・・といった発見があります。
これによって、東京駅から最寄り駅までの距離(いかに都心に近いか)という説明変数の他にも、「最寄り駅の人気度」などのあらたな要素を考慮しなければ説明が付かないといった示唆も得られるのかもしれません。(※注: 実際のお買い得かどうかは個人の価値観によるもので、一概に判断できないという前提で記事を執筆しております。)
また、さらなるデータ活用の発展形として、スクレイピングしたデータから緯度経度をジオコーディングし、お買い得物件を地図上にマッピングします。以下、オレンジ色は物件がお買い得、青色はお買い得ではないとことを意味し、丸の大きさは物件の価格です。地図上の物件のポイントをクリックすると、その物件の画像情報、Google Street Viewと連携して周辺の街の様子を確認することができます。もちろんここでは掲載していませんが、掲載Webページとリンクしてダッシュボード内に物件情報を表示することも可能となります。 以上、PyCaretを使うと、機械学習でモデル作成に本来必要となるプロセスを丸っと実行してくれるため、Pythonのコーディングやデバッグの必要をほとんどすることなくお手軽に予想モデルの作成とハイパーパラメータのチューニングが(無料で)できてしまうというのは衝撃でした。更に精度を求めてPythonでチューニングを行うとしても、Pycaretで起点としての当たりをつけることで、大幅に初期ワークロードは削減できるのではないでしょうか。
ただ、やはり最低限のPandasの知識や、機械学習の流れとして何を実施しているのか基本的なお作法は理解する必要はあるようです。
また、誤差をTableau等で可視化し、ドメイン知識と照合して新しい説明変数を加えるための考察をしたり、予測結果をインタラクティブなダッシュボードで活用することで、予測データの価値を倍増させることができるのではないでしょうか。
PyCaret には今回取り上げた回帰(Regression)について、アンサンブルの他にも、分類、クラスタリング、異常検知、自然言語処理、アソシエーション分析ができるようですので、こちらも今後使ってみた実用例を追加していければと思います。
Classification
Regression
Clustering
Anomaly Detection
Natural Language Processing
Association Rule Mining
是非、皆様も試してみてください。
参考文献:
Qiita記事:
GBDT系の機械学習モデルのパラメータチューニング奮闘記 ~ CatBoost vs LightGBM vs XGBoost vs Random Forests ~ その1(@KYOROさん)
]]>詳しく説明していきたいと思います。
オンライン研修の場合、常時画面の共有に加えて、音声と映像がやりとりされます。インターネット回線のスピードが遅ければ音声が途切れがちになったりします。目安ですが、快適にZoomなどのオンライン会議システムをつかうには1.2Mbps程度あれば大丈夫です。
インターネットの回線速度はFast.comなどで計測できます。
Zoomのシステム要件も合わせてご確認ください。
オンライン研修を受講する場合にはZoomなどのオンライン会議システムを動作させる他、実際に操作するソフトウェアを実行させる必要があります。オンライン研修を受講するだけならデュアルコア2Ghz以上のプロセッサと4GBのメモリを搭載したパソコンがあれば十分でしょう。実際研修で使用するソフトウェアがTableauだとした場合、メモリは8GB程度欲しいところです。もし操作していて遅いなと感じたらパソコンのメモリの増設や買い替えを検討するのも一つの選択肢かもしれません。
なんといっても欠かせないのはモニタです。実際に作業するためのメインモニタの他にオンライン講座を見るためのサブモニタがあるとよいでしょう。メインのモニタともう1台あわせて2つのモニタをデュアルモニタと言います。パソコンにHDMIやUSB-Cでつなぐことで簡単にモニタを追加できます。また代わりにiPadをモニタ代わりにする方法もあります。作業効率がアップするだけでなく、画面切り替えのストレスが軽減されます。どうしても自宅に仕事専用のデスクがない場合にはiPadやポータブルディスプレイを使用することをお勧めします。
モニタを接続できたら拡張ディスプレイの設定をします
Windowsデスクトップを右クリックし、メニューから「ディスプレイ設定」をクリックして複数のディスプレイから「表示画面を拡張する」を選択します。
詳しくはマイクソフトのサポートページを参照ください。
もし周りに家族がいる場合や付近で騒音が発生しやすい環境から参加する場合はオンライン研修に集中するために音の漏れないマイク付きヘッドセットを用意することをお勧めします。
もし生活音などが気になる場合には Kirsp というノイズキャンセルアプリケーションも合わせて検討すると良いと思います。自分の声だけを広い周りの音をソフトウェアで除去してくれます。
いかがでしょうか。
上記でご紹介した4つの項目は学習効果を最大限高めるためには必須の条件となります。オンライン研修受講の際にはぜひ参考にしてみてください。
]]>
機械学習をはじめよう!と思ったときにまず最初の壁はPython 等のコーディング知識になるのではないでしょうか。機械学習で予測したいけどまずはPython 基本的な文法を覚えないと難しいし、そこまで時間がないし・・・という方もいらっしゃいますよね。
Alteryxにはデータ前準備(ETL)の機能だけじゃなく、機械学習機能も充実していてノンコーディングで機械学習の予測モデル作成、モデルの評価、予測値の取得ができます。
また Tableau と連携して、データ理解、予測値を可視化することで、データから更なる価値を生み出すことができます。
早速体験していきましょう!
今回は、東京・中央線の中古マンションの価格を過去データから学習する予測モデルを作り、未知のデータに対して物件の条件からマンション価格を予測するステップをAlteryxとTableau を使って「ノンコーディング」で実装する方法をご紹介します。
予測モデルを作成するために利用する訓練データ(過去の取引データ)を国土交通省のサイトからダウンロードします。
対象となる市区町村、期間を選ぶと以下のような形式でデータを取得することができます。このままでは、機械学習の入力として利用するのが難しいため、諸々の地道なデータ前準備を行いますが、ここでは割愛します。
予測モデルの理解のしやすさのため、今回は、東京を東西に走る「中央線」の沿線にスコープを絞ることにします。
東京はに東西に長い形をしており、都心から離れるにつれて物件の相場は安くなることが分かっているので、新たな説明変数として「東京駅から最寄り駅までの直線距離」を追加することにします。
(実際の東西とは逆:最も東に位置する「東京駅」が左に、西に位置する「立川駅」は右に表示)
実際の駅の位置関係は以下のようになっています(Tableau の地図機能を利用して可視化)
データ前準備を経て、以下のように機械学習の入力データを作成します。(前準備処理のステップについては、書籍:Tableauで始めるデータサイエンス にて紹介しておりますのでご参考ください。)それぞれの項目の説明は以下です。
項目名 | 説明 | データ型 |
uid | 物件のユニークなID | 文字列型 |
years | 築年数 | 整数型 |
minutes | 最寄駅からの徒歩距離(分) | 整数型 |
sqrm | 物件の㎡数 | 整数型 |
distance | 東京駅と最寄り駅の直線距離(都心からどれだけ離れているか?) | 浮動小数点型 |
renovate | 改装済みか否かフラグ | 整数型 ( 0 or 1 ) |
express | 急行が止まるか否かのフラグ | 整数型 ( 0 or 1 ) |
price | 取引価格(目的変数) | 整数型(単位:1円) |
§ 機械学習に伴うステップ
機械学習によって予測モデルを作るステップは以下のようになります。これらのステップAlteryxとTableau を使って、ノンコーディングで実装していきます。
① 訓練データと検証データを分割する
② 訓練データを使って予測モデル学習を行わせる
③ 検証データで予測モデルの精度を評価する
④ 結果の分からない未知のデータに対して予測値を得る
これを実現する最終的なAlteryxのフローは以下のようになります。
それでは、この手順をAlteryxを使って実装していきましょう。
① 訓練データと検証データを分割する
それでは入力データを訓練データと検証データに分類するところまで実施してみましょう。
まず初めに、国土交通省のサイトからダウンロードしたデータに接続します。Input Data(データ入力)をドラッグして入力データに接続します。(※注1)
Select(セレクト)ノードで機械学習には利用しない”uid"を除外します。"Price"でヒストグラムを書いておくと学習の妨げになるような外れ値(超高級マンション)がないことを確認できます。(現実の世界では、目を疑うほどの高額マンションは存在するのですが、ここでは事前に前処理で除外しています。)
少し脇道にそれますが、目的変数(予測したいフィールド)price がどの説明変数(予測の根拠となるフィールド)と、どの程度関連があるかを確認しておきましょう。AlteryxではAssociation Analitics (アソシエーション分析)を利用します。 目的変数 price に対して正の相関がある説明変数については赤色に、負の相関関係がある説明変数については青色で表示されます。price と years (築年数)は負の相関関係(-0.42)があり、price と sqrm(㎡数)には強い制の相関関係(0.75)があることが分かります。相関係数は-1 から+1の範囲を取ります。この時点で、Tableau を用いて散布図を書いて確認するということもできます。縦軸はprice、横軸(左)はyears(築年数)、横軸(右)はsqrm(㎡数)に取り散布図を書いたものです。Tableau で確認すると相関がより把握しやすいですし、外れ値のIDを確認することもできます。例えば、築年数は古いのに価格が落ちていない物件等もあり、これはもしかするとビンテージマンションなのかもしれません。
【Tableauで散布図表示】
入力データを、予測モデルを作成するための訓練データと、訓練データよって学習した予測モデルを評価するための検証データに分割しうるために Create Sample (サンプル作成)を利用します。ここでは、訓練データ:検証データ=7:3で分割します。このように訓練データと検証データをあらかじめ取り分けて置く手法は「ホールドアウト法」と呼ばれています。
② 訓練データを使って予測モデル学習を行わせる
線形モデル LinearRegression (線形回帰)に訓練データ Create Sample の訓練データ(E)を繋ぎます。目的変数(Target Vairiable)にpriceを設定し、説明変数(predictor variables)にprice 以外のすべての変数を選択します。
Linear Regression の出力には O(Output)、R(Report)、I(Interactive)があります。
O(Output:出力)はモデルそのもので次のステップで精度の確認や、実際の予測に利用します。
R(Report:レポート)は訓練済みモデルに関する情報です。Browse Tool (閲覧)を繋ぐと結果が確認できます。
Linear Modelは線形重回帰モデルなので、目的変数を説明変数の一次式で以下のように表すものとします。
price = α1(years) + α2(minutes) + α3(sqrm)+ α4(distance) + α5(renovate )+ α5(express) + Intercept |
ここでそれぞれの説明変数に対する係数がEstimateに、切片がInterceptとして記載されています。先ほどの相関関係の確認で負の相関が有った説明変数はマイナス、正の相関が有ったものはプラスになっていることが分かります。
I(Interactive:インタラクティブ)はモデルの精度をダッシュボード形式で表示します。
Summaryでは、R SQUARED(R2乗値)が1に近い値を示していることと、その他のERROR(誤差)指標が小さいことを確認します。
特にRMSE(Root Mean Square Error)は誤差の二乗を全て足し合わせ、標本数で割った平均の平方根を取ることで、標本当たりの誤差の大きさを示すモデルの精度の指標となります。この値が小さいということはモデルとして誤差が少ないことを示す一つの指標となります。
学習データに対してはRMSE=10,137,781 となっているので、誤差の平均が1000万程度あると感覚的に解釈しても分かりやすいかもしれません。
Model Performance では横軸に実測、縦軸に予測値を出しています。予測=実測 となりピタリと当てるモデルの場合はY=Xの直線の付近にプロットされるはずです。
Diagnosticsには残渣(Residual)と予測値(Fitted Value)の関係や Q-Qプロットが表示されます。こちらのダッシュボードでは、マウスをホバーしたポイントの具体的な数値が表示されます。
重回帰によって予測される値(非説明変数)の誤差の分布は平均0の正規分布に従っているという前提があり、誤差が正規分布に従っているかをNormal Q-Q プロットで確認することで、モデルの妥当性を検討することができます。非常に乱暴に理解するならば、Y=Xの直線に沿って分布しているほど当てあはまりの良いモデルと見れるでしょう。
Q-Qプロットの見方についてはこちらのhanaoriさんのNoteの記事が分かりやすかったためリンクを記載させていただきます。Normal Q-Q プロットを理解する
③ 検証データで予測モデルの精度を評価する
次に、取り分けておいた検証データを使って、訓練された予測モデルを評価してみましょう。
一般的には過学習を起こしていないかを確認するために、学習に利用していない、検証データ使ってモデルの精度を評価します。ここではAlteryxで Model Comparison というマクロ(※注2)を使うのが便利です。
関連する部分を見やすいように移動して拡大すると以下のようになります。Linear Regression の(O) と Model Comparison の(M)を繋ぎ、検証データ(V)とModel Comparison の(D)を繋ぎます。
それぞれの入力アンカーの意味は以下のようになります。
Reportとして以下のような内容が出力されます。
ここでは、RMSE(Root Mean Square Error) (※注3)に注目します。学習データに対してはRMSE=10,137,781 となっていたに対し、検証データではRMSE=9,541,477 となったので、学習データに対して著しく誤差が大きくなる(過学習)は発生していないようです。誤差を小さくするためにできることはまだありそうですが、ここでは一度このモデルを実際の予測プロセスに利用することにしましょう。
④ 結果の分からない未知のデータに対して予測値を得る
モデルの評価が終わったら、実際にこのモデルを利用したマンション価格の「予測」を行います。本来は、築年数、駅からの徒歩(分)、㎡数・・・などの条件は分かるけれど、価格は分からない(目的変数が未知)場合に、そのマンションの価格を予測するというのが、本来「予測をする」ということなのですが、今回私たちは価格が未決定の物件情報を持ち合わせていません。
ですので、Web上に掲載されている中古マンションの情報からマンション価格をスクレイピングして、説明変数を抽出しモデルを適用して算出された予測値と、実際にWebに掲載されているマンション価格を突き合わせ、マンションの価格が適切なのかどうかを検証してみましょう。
Webからスクレイピングしたデータは以下のようになっています(説明変数として利用できるように前準備を完了しています。)
ここから説明変数を抜き出し、Score(スコアリング) に投入します。
Score の出力結果は以下のようになります。一番右端(predict)はモデルによって算出されたマンション価格の予測値となります。
ここで、この予測結果をスクレイピングしたデータともう一度連結すると、「Web上の掲示価格」と「予測モデルが算出した価格」を並べたデータを作ることができます。
ここで「Web上の掲示価格」と「予測モデルが算出した予測価格」を物件ごとにTableau を使って可視化してみましょう。
お買い得度を以下のように計算フィールドとして定義し、予測価格の方が掲示価格より高い場合、実際には「思ったより安い!」のでお買い得度が高くなり、逆に予測価格が掲示価格より低い場合、実際のは「思ったより高い!」のでお買い得度が低くなるようにします。
これを駅ごとに箱ひげ図を書いて可視化すると以下のようになります。
四谷はレンジが広すぎて当てにならない、吉祥寺はお買い得が低い
、西国分寺はお買い得度が高い・・・といった発見があります。
これによって、東京駅から最寄り駅までの距離(いかに都心に近いか)という説明変数の他にも、「最寄り駅の人気度」などのあらたな要素を考慮しなければ説明が付かないといった示唆も得られるのかもしれません。(実際のお買い得かどうかは個人の価値観によるもので、一概に判断できないという前提で記事を執筆しております!)
また、さらなるデータ活用の発展形として、スクレイピングしたデータから緯度経度をジオコーディングし、お買い得物件を地図上にマッピングします。以下、オレンジ色は物件がお買い得、青色はお買い得ではないとことを意味し、丸の大きさは物件の価格です。地図上の物件のポイントをクリックすると、その物件の画像情報、Google Street Viewと連携して周辺の街の様子を確認することができます。もちろん(ここでは掲載していませんが)掲載Webページとリンクしてダッシュボード内に物件情報を表示することも可能となります。
§ おわりに
今回は機械学習の基本である、線形回帰モデルを使って中古マンションの価格を予測するモデルを作成しましたが、より精度の良いモデルを作成するために、物件の階数、街の人気度、方角等の上を説明変数として追加することも考えられます。また、他の予測モデルアルゴリズムとしてGBDT(Gradient Boost Dicision Tree)を利用し、ハイパーパラメータをチューニングするといった試行も必要になってくるかとおもいますので、こちらについては後続の記事にてご紹介できればと思います。どうぞご期待ください!
【補足】
注1: 最新バージョン2020.1からインストール時の言語選択ではなく、Alteryxを立ち上げたままで言語の変更ができるようになっています。→ 参考リンク
注2: Model Comparison のマクロはこちらからダウンロードできます。
注3: RMSEとは
【参考文献】
記事の執筆にあたり、アルテリックス・ジャパン合同会社 川村 洋平さん、酒井 信吾 さんの多大なる協力をいただきましたこと心より感謝いたします。
=========================================================
スプライングローバルでは、Tableauと機械学習の連携について、オンライン(1時間~)のコンサルテーションも実施しております。こちらからお気軽にご用命さい。
]]>複数のデータソースから取り込まれたデータをひと目でわかるダッシュボードとして簡単に作成することができます。ダッシュボードの柔軟なアラート機能、レポート作成者とのコラボレーション機能、より詳細なデータを探索するためのツールなどが備わっています。ビジュアルを使い慣れたExcelへレポートするなど使いやすく洗練された機能が簡単に使えるセルフビジネスインテリジェントツールで今すぐデータ探索を始めませんか?
企業向けにPower BI研修の提供を開始しました。
概要
https://splineglobal.com/collections/power-bi
]]>
Tableau の基礎web講座シリーズの2020年4月開催 コースをオープンいたします。
全く初めてTableau に触れる方から、基本的な使い方をもうちょっと勉強したい方までにお勧めの講座となっております。
この春、web講座でTableau を使いこなす「データ使い」になってしまいましょう!
本講座では、Zoom、Slack を利用して、参加者とのQ&A等コミュニケーションを行います。
質問がしやすい少人数制(1クラス 7名まで)となっておりますので、お早めにお申し込みいただければ幸いです。
Tableau Public(無料版)でも受講いただけます。
#0 可視化のはじめの一歩
TechPlayでのお申込みとなります。
以下、TechPlayよりお申込みください。
これから始めるTableau基礎・Web講座-#0可視化はじめの一歩-4/4(土)
これから始めるTableau基礎・Web講座-#0可視化はじめの一歩-4/7(火)
コース内容
・ Tableau Publicからデータへの接続
・ メジャーとディメンジョンとは
・ 棒グラフ
・ 円グラフ
・ ヒストグラム
・ 箱ひげ図
・ 散布図
・ 地図連携
・ 時系列データ
※ FIFA(サッカー)国別選手データ、東京の気象データなど身近なデータを扱います。
#1 ダッシュボード作成の基礎
コース内容
・ グループ、セット、パラメータとは
・ 初めてのダッシュボード
・ ダッシュボード・アクション
※ FIFA(サッカー)国別選手データを使ってインタラクティブなダッシュボードを作成します。
#2 計算式の基礎
コース内容
・ 計算式の基礎
・ いろいろな計算式
・ 表計算式の基礎
・ 表計算式を使いこなそう
※ 苦手な計算式もステップバイステップで勉強します。
※ 3月実施「Step1 前半」をより分かりやすく解説します。
#3 ユニオンとジョイン
コース内容
・ ユニオンとジョインの違いとは?
・ ピボットとは?
・ データブレンドとは?
・ Tableau Prep Builder へのイントロ
※(おそらく)世界中で一番分かりやすい、売上表とマスター表のサンプルを使います。
※ 3月実施「Step1 後半」をより分かりやすく解説します。
#4 地図連携
コース内容
・ 地理的役割の設定
・ 緯度経度情報の利用
・ 空間ファイルの利用
・ 最新の地図機能紹介
#5 LODと統計機能
コース内容
・ LOD(詳細レベル)とは?
・ LOD計算式を使いこなそう!
・ Tableau の統計機能を使いこなそう
関連講座
#Tableau Prep Builder の基礎~実践
基礎的なトランザクション表とマスター表の前処理からTableau Prep Builderの基本操作を学び、実際のオープンデータ(気象データ)を使って、データを手なずける練習をします。
- 2020-05-24 14:00-18:00 TBD
※ こちらのコースの参加には、Tableau Creatorライセンス(または14日間の評価版)が必要です。
#探索的データ分析ワークショップ
-2020-05-30 14:00-18:00 TBD(状況に応じて泉岳寺オフィス開催に変更します。)
見たこともないデータを突然渡されたところから、データを準備し、可視化による理解、インサイトの発見と効果的なレポート化まで、データのジャングルをサバイバルする実践的な術を身に付けるワークショップです。Slackチャネルによるチームワーク、Zoomによる発表まで行っていただきます。
COVID19、日本貿易データ等を実践的なデータを利用する予定です。
※ Tableau Creator(Desktop/Prep Builder)利用可能が望ましいです。
※ Tableau Prep Builder以外でもAlteryx等用いていただいても構いません。
]]>現在Tableauで始めるデータサイエンス学習塾は、2020年3月に第2期をスタートしたところで、受講生は全部で5名。昨日Week2を終えたところ、参加者アンケートでは満足度100%(大変満足60%, 満足40%) をいただくことができました。これも講師である岩橋の試行錯誤の今のおかげです。
講師のおかげでもあるのですが、様々なクラウドサービスも有効に活用しており、これらの組み合わせで今の高い満足度を得ることができていると考えています。そこで今回は当社が利用中のシステムとその使い方について説明したいと思います。
今使っている環境
ビデオ会議 | zoom |
チャットサポート | Slack |
ファイル共有 | Google Drive |
資料、共通議事録、メモ | Dropbox Paper |
アンケート | Google Form |
Zoom ( https://zoom.us/ )
今一番注目されているビデオ会議サービスです。高品質で本当に途切れない。素晴らしいのひとことです。
Slack ( https://slack.com/ )
これも社外の方とのチャットには非常に便利。ワークスペースとチャネルを組み合わせていろいろなグループで活用できます。
Google Drive ( https://www.google.com/intl/ja_ALL/drive/ )
CSVやZIPデータなどの共有に使っています。ブラウザだけでもファイルのアップロード、ダウンロードが簡単にできます。
Dropbox Paper ( https://www.dropbox.com/ja/paper )
ドキュメントの事前配布、共同編集に使ってます。コメント機能で自己紹介にいろんな人がコメントくれると盛り上がります。
Google Form ( https://www.google.com/intl/ja_jp/forms/about/ )
ほんの数数分で簡単にアンケートが作成できます。集計も自動で行ってくれて、満足度のグラフ分析まで一通り必要な機能は揃います。アンケートのコピー機能を使えば、毎回一から作り直す必要もありません。
講師もツールも素晴らしいのですが、それでもやはりいろいろ問題も発生します。そこで発生した問題についてもすこし共有しておきます。
発生した問題と対処法
(問題)参加者のzoomの音声が入り、聞こえづらい
(対処法)参加者一覧の一番下にある「すべてミュート」「すべてミュート解除」で、自分を除く全員を一斉にミュートをする。
(問題)質問をするのにビデオ会議だと聞きづらい
(対処法)zoomとslackのチャット機能を使って質問してもらう。説明が多いものについては、サポート役がSlackやDropboxに書き込んで対応。回答できなかったものについては、会議終了後にSlackでフォローする
(問題)自己紹介などオンラインだと難しい
(対処法)予めDropboxに自己紹介欄を設けてリンクを送っておく。講師およびサポート役は参考例となるように事前に記入しておくことで、参加者が書き込みしやすくなります。写真や趣味に対しても参加者が自由にコメントできるので、インタラクティブな自己紹介ができます。オンラインならではです。Slackのチャット機能を使うと、発言が重なっても気になりません。
(問題)時間配分
(対処法)Slackへの事前招待、資料の事前共有、授業スタイルの説明をしておきます。その上で、Dropbox Paperに必要な情報やアジェンダは書き込んでいます。そのため、授業開始前から準備できているため、当日は進行がスムースになります。それでも途中で質問がでると、オンラインの場合、その場で対応するのとは違い、生徒のサポートに思った以上に時間がかかります。5名の生徒に対して、サポート役が2名だと十分対応ができていると思います。おそらく一人の講師だけではこういったことはできないでしょう。サポート役であるTAをつけることを検討した方がよいです。またTAの他に気付いた点や一般的に重要だと思ったことをその場でスクリーンショットを取りながら後でも読みかせるようにSlackやDropbox Paperに書き込む担当者がいると誰かが聞き逃した部分でもその場でサポートすることができます。ただ、今のやり方では、生徒が増えた場合、このように満足度の高い授業は行えないでしょう。インタラクティブな講座を目指すわたしたちには、まだ検討の余地がありそうです。また受講生のレベルによって、簡単すぎる内容と思われることもあります。予めレベルに応じた課題を用意しておくとここもカバーできるでしょう。
(発見)またここで発見がありました。生徒がつまづいたときに、その生徒の画面を全員に共有してもらうことで、どこでつまづいたのか、どのようにそれに対処したのかをその場で全員に共有することができます。通常の教室型の場合ではこういった問題を共有するのは難しいのでオンライン講座ならではのメリットです。
(問題)Slackのチャネル名が長すぎる
(対処法)Slackはスマホのアプリでも使えるので非常に便利なのですが、たとえば「Tableuで始めるデータサイエンス学習塾第1期」のようにチャネル名が長すぎると複数の講座を持っているとどのチャネルが第1期なのか第2期なのか、画面が小さいスマホの場合、隠れて見えません。チャネル名は10文字程度に収まる名称にしておくことでチャネル名が全て見えます。もちろんSlackチャネルの命名ルールは予め決めておかないとあと管理が大変なことになります。
(プラスアルファ)参加できなかった人への対応
zoomを使った授業の場合、クラウド上に録画を保存しておくことができます。授業が終わった後に、生徒との共通Slackに録画された動画のURLを共有することで、その時間に参加できなかった人にも録画された動画をみてもらうことができます。さらに授業ででた質問はSlackやDropbox Paperに保存されているので情報量としては多くを残すことができます。またSlackのサポートもつけていますので、録画動画をみても解決できなかった疑問点を講師に問い合わせすることができます。確実に授業の内容を理解してもらうためにしっかりと復習、疑問点への対応ができる体制を準備することが望まれます。
今受講生を集めた研修は非常に難しくなっています。それでもオンライン講座に切り替えて困難を乗り越えている組織や事業者も多いかと思います。すこしでもこの内容がお役にたてれば幸いです。
Tableauで始めるデータサイエンス学習塾
取材のお申し込み
コンタクトフォームからお願いします。
]]>
参加者からのコメント:
* 実務の中で何となく使いながらも、よくわからなかった所がわかってすっきりしました。ありがとうございます。
* すごいわかりやすかったです。
* アクションやパラメータなど漠然としていたものが、はっきり理解できました。セミナーの流れもスムーズでしたし、時間の長さもちょうどいいです。
* 説明が丁寧なので取り残されることなくしっかり学ぶことが出来た
ご参加いただいた皆様、ありがとうございました!
---------
Tableau Publicでも始められるTableau の基礎オンライン(Zoom)講座シリーズ開催スケジュールをオープンしました。Tableau の基本的な使い方をもうちょっと勉強したい方にお勧めの講座となっております。よろしくお願いします。
STEP0 - Tableau 基礎講座
・【終了】3/13(金)10:00-12:00
・【終了】3/15(日)10:00-12:00
コース内容
・ Tableau Publicからデータへの接続
・ メジャーとディメンジョンとは
・ 棒グラフ
・ 円グラフ
・ ヒストグラム
・ 箱ひげ図
・ 散布図
・ 地図連携
・ 時系列データ
※FIFA国別選手データ、東京の気象データなど身近なデータを扱います。
STEP1 - 様々なデータと計算式
・【終了】3/19(木)10:00-12:00
・【終了】3/22(日)10:00-12:00
コース内容
・ Tableau Publicからデータへの接続
・ 結合とユニオンの違いとは?
・ ピボットとは?
・ メジャーネームとメジャーバリュー
・ 計算式を使ってみよう
・ 表計算使ってみよう
・ Tableau Prep Builder へのイントロ
※ 東京の気象データなど身近なデータを扱います。
STEP2-ダッシュボードと可視化テクニック
・【終了】3/27(金)10:00-12:00
・【終了】3/29(日)10:00-12:00
コース内容
・ セットの使い方
・ グループの使い方
・ パラメータの使い方
・ ダッシュボードの作り方
・ ダッシュボード・アクションとウェブ
・ 地図の使い方
※ FIFA選手データ、東京中古マンションデータ、貿易データなど身近なデータを扱います。
]]>
Tableauで始めるデータサイエンス学習塾。満足度97.5%。参加者全員が友人、知人に進めたい講座として高評価。BI初めての方からデータサイエンスにチャレンジしたい人を応援するための全6回の学習塾を開催しています。
]]>第1期受講者の満足度 100%
受講者全員が友人、同僚に薦めたいと回答
受講者の声
Tableauも機械学習もゼロから入ったが、CRISP-DMを回すことで、イメージが掴め、勉強する一歩を踏み出すことができた。
機械学習ができるようになった。
皆さんとアウトプットを共有し、アドバイス等をいただくことで、また、雑談などを含めて、仲間がいるということや新しいアイデアが生まれて、次につながると感じました。
参加申し込みはこちら
https://ds4tableau-1.connpass.com/
参考テキスト
弊社コンサルタント 岩橋智宏共著
]]>