【優しいデータサイエンス・シリーズ】人工知能(AI)の定義 〜ATMはAI?〜

データサイエンスの活用があらゆる業界で加速されている今、人工知能機械学習ディープラーニングなどのブームワードをよく聞きます。皆さんはそれぞれの用語の正しい定義をご自身の言葉で説明できますでしょうか? この記事は、まず人工知能にまつわる重要概念の正しい定義をお伝えし、それらの本質を理解していただきます。

人工知能の定義は難しい

人工知能はAIと略記されることが多いです。AIとは「Artificial Intelligence(アーティフィシャル・インテリジェンス)」の頭文字をとったものです。「Artificial = 人工的な」と「Intelligence = 知能」という意味で、和訳は人工知能になります。 実は、人工知能(以降、AIと呼ぶ)の「絶対的な定義」を定めることは難しいです。AIの定義は大いに議論されてきたのですが、計算機科学者やAI研究者など専門界の中でも意見の食い違いがあります。以下にいくつかの定義の例を挙げます。出典:『人工知能学会誌』

  • 「人工的につくられた人間のような知能、ないしはそれをつくる技術」(松尾豊 東京大学大学院工学系研究家准教授)

  • 「人工的につくられた、知能を持つ実態。あるいはそれを作ろうとすることによって知能自体を研究する分野である」(武田英明 国立情報学研究所教授)

  • 「人間の頭脳活動を極限までシミュレートするシステムである」(長尾真 京都大学名誉教授)

なぜ人工知能の定義を定めることがこんなに難しいでしょうか? それは、「知能」や「知性」そのものの定義が一意に決められないから、と思われます。 それでも、研究者たちの中で、概ね以下のニュアンスを持つ意見がほとんどです。 「人間が持つ知的な情報処理能力を機械に持たせること」 「周囲状況(入力)によって行動(出力)を変える能力を持つ機械」

この「人間と同じ知能や情報処理能力」のレベルは人によって解釈が異なるため、「どこまでがAIと呼べるのか」が難しい問題となるわけです。推論、探索、認識、判断などの具体的なタスクに落とせるケースであれば、AIの解釈がまだ比較的しやすいです。一方で、人間は捉えづらい感情、心、身体と神経の交互作用など複雑な要素を持っており、これらをAIで再現できるでしょうか? AIと呼べるためには、どこまで要求すべきでしょうか?

上記のように様々な葛藤があるために、同じ自動化システムでも「AIと呼べる」か「AIとは認めない」など意見が食い違うわけです。

人工知能という言葉が初めて登場したのは?

人工知能という言葉が初めて定義を与えられたのは、米国の著名な人工知能研究者および計算機科学者のジョン・マッカーシー(John McCarthy)でした。

f:id:gri-blog:20201201155417p:plain

上記の定義は、1956年にアメリカで開催されたダートマス会議にて与えられました。ダートマス会議は、「考える」「行動する」能力を持つプログラム全般をテーマとする会議であり、ジョン・マッカーシーの他に、マービン・ミンスキーなどAI研究の有名人、心理学、神経科学、情報科学言語学、哲学の分野における専門家たちが参加しました。この会議を境に、「人工知能」は学術分野の1つとして正式に認められました。

人工知能の4つのレベル

AIは、一般的に「人間の知能をコンピュータ・プログラム上で実現したもの」として定義づけられているため、多くの方は、AIと聞くと、「まるで自ら考えて行動しているもの」のようなイメージを持つでしょう。 上で述べた、AIの定義のもう1つの捉え方である「周囲状況(入力)によって行動(出力)を変える能力を持つ機械」の視点によると、AIを次の4つのレベルに分類されています。

■レベル1: シンプルな制御プログラム

入力に応じて、あらかじめ決められたルールに忠実に従って出力するプログラムです。上記で述べたような典型的な「ルールベース」のプログラムです。エアコンの温度調整の自動化、洗濯機の洗剤投入や水量調整の自動化、ベーシックなモニタリングなどの、わかりやすくて単純な振る舞いを行うシステムが例として挙げられます。レベル1のAI技術は、制御工学、システム工学などの分野で長年培われてきました。

f:id:gri-blog:20201201155808p:plain

■レベル2:古典的な人工知能

レベル2のAIは、探索、推論、知識データベースを利用したAIです。レベル1のAIに比べて、より複雑な判断を行うことができ、対応できる入力と出力の組み合わせの数も比較的に多いです。お掃除ロボット、診断プログラム、ルールベースのチャットボットが例として挙げられます。 「古典的な人工知能」と呼ばれるのは、レベル2になってはじめて、一般の利用者によって「人工知能らしい」と思われる段階であるためでしょう。「古典的」とはいえ、特定の専門分野に限った場合は人間を十分に補助できる、高い性能を発揮します。実は、レベル4で現れるディープラーニングの技術の研究開発も元は、このレベル2の人工知能から出発したと言われています。

f:id:gri-blog:20201201155843p:plain

■レベル3:機械学習を取り入れた人工知能

レベル3のAIでは、機械学習の手法を取り入れ、大量な学習データの分析を通じて、入力と出力を結ぶ汎用的なパターンや法則を見出します。更に、導出済みの法則(学習済みモデル)に基づいて新しい入力情報に対する判断を行います。レベル3のAIは、2000年以降のビッグデータの時代に台頭しました。スパムメール検知、レコメンドエンジン、売上予測、顧客分析などがレベル3のAIを応用した例として挙げられます。 f:id:gri-blog:20201201155858p:plain

■レベル4:ディープラーニングを取り入れた人工知能

先述の通り、機械学習では、学習対象となるデータの、特徴りょう、つまり、どの特徴が学習結果に大きく影響するのかを知る事が重要です。ディープラーニングの手法を用いると、特徴量をデータから自動的に見出すことが出来ます。つまり、学習の部分までが自動化されていることになります。非構造化データを分析対象とした、顔認識、自動翻訳、自動運転、難易度の高いゲームなどは従来の機械学習の手法では高い精度を実現する事が難しく、レベル4のAIが活用される場面です。

f:id:gri-blog:20201201155914p:plain

AI効果とは

一部の人は、知能・知性は人間しか持つ事ができないものと思っており、現象論的にそれに似たものが機械で実現されると、「それは単なる自動化であって、知能ではない」と主張し、「人工知能」という概念に違和感を抱きます。このような人間の心理的な効果はAI効果と呼びます。

【ATMはAIと呼べるのか?】

レベル1のAIの例として挙げたAI家電は「本当にAIと呼べるのか」、「人間が決めたルールに従って動作している機械だけではないか?」と疑問に思う方がいてもおかしくないです。AIと「呼べる」判断基準はいったい何でしょうか? 以降、私見がやや入り込む可能性がありますが、以下のような考え方が出来ます。AIと認められるために、最低限クリアすべき基準は「自動化」と認識しています。 AI搭載洗濯機は、洗濯物を入れるだけで、その重さや嵩によって、水の量や洗剤の量を調整し、洗浄・脱水・乾燥まで一通り人間の手を介さずに完了させてくれます。お掃除ロボットは、スイッチをオンにするだけで、家中を満遍なく掃除してくれます。 ではATMの場合はどうでしょうか?(これは、私が講座の初学者の受講者によく問う事です。) ATMでは暗証番号を入れると、背後のデータベースとパターンマッチングを行った上で、人間が入力した金額だけ吐き出したり、逆に金額を吸い込んで暗証番号とマッチした口座に加えたりします。ある意味で「ルールベース」のAIに似ていませんか?しかし、ATMを操作するために、逐次的に人間が操作しなければいけないため、上記の「自動化」という最低限条件を満たしていません。よって、少なくとも私はATMはAIではないと判断します。 将来的に、暗証番号の入力なく、顔認識で個人を特定でき、音声認識(もしくは振り込みカードの読み取り)で引き出したい金額を認識できれば、立派なAI(レベル4のAI)と認められるでしょう。 皆さんも、もう一度ここで、自分の中のAIの基準について考えてみてください。

人工知能は、ルールベースの手法と機械学習の手法に分けることができます。次の記事では、それらの違いについてディスカッションしたいと思います。 次回にまたお会いしましょう。

担当者 分析官・講師  ヤン・ジャクリン

Tableauの2つのHyperの中身が全く同じであることを確認する

元々、Tableau prepを使っていて、最近prepのUpdateをしたので、古いバージョンで作成したフローを、新しいバージョンのprepで実行したいとします。その時出来上がったHyperの中身が、全く同じかどうかを確認したいとします。カラム数は数百あるとします。

この確認について私は、Tableauでは思い当たらないが、それ以外の方法ならいくつかありそうなので、挙げてみます。基本は、SQLでいうところのUNION ALLして、DISTINCTしたときにレコード数が、元のデータ1つ分になれば良さそうである。カラムが少なければ、すべてのカラムをキーにしてJOINする系の方針でもいいかもしれません。

CSVにして、Linuxまたはmacで確認する場合

  cat file1.csv file2.csv               | wc -l
  cat file1.csv file2.csv | sort | uniq | wc -l

この出力が同じになれば良さそうです。Windowsの場合、PowerShellでGet-Uniqueというコマンドがあるようなので、同様のことができるかもしれない。これだけのために、VBAマクロを書いたりはしたくないです...。

同じことをRだと

dplyr::union_all(df1, df2) %>%                nrow()
dplyr::union_all(df1, df2) %>% distinct() %>% nrow()

こうでしょうか。dplyrのdistinct関数は公式ドキュメントによれば、'If omitted, will use all variables.'とのことです。Pythonでもできると思います。


Tableauでやる、美しい方法を知っている人は是非教えて欲しいです。 コメント欄などで是非お願いします!

Tableauでチャートの作り方がわからなくて困ったときの解決法

Tableauでチャートの作り方がわからなくて困ったことがありますよね。 そんな時に、役に立つ解決法をお教えしようと思います。(今回はインターネット上にあるHPを検索すること以外の方法をお伝えしようと思います。)

1. Tableau Publicで検索する

まず、チャートカタログから、作りたいチャートのダッシュボードをダウンロードして、作り方を調べる方法があります。以下の二つのダッシュボードがおすすめです。

作りたいチャートの名前がわかれば、Tableau Publicやインターネットで検索しやすくなります。(単純にチャートの名前を調べたいときは、Visual Vocabulary( Tableau Public) が便利です)Tableau Publicでは、チャートの作り方を説明したダッシュボードや、Templateとして使えるダッシュボードも見つかります。

その他にも、

など、色んなダッシュボードが載っています。アイディアが出ない時などにも、Tableau Publicを眺めることが役に立つかもしれません。


2. Youtubeで探す

「Tableau 検索したいチャート名 」で検索すると、大量の動画が表示されます。そこで好みの動画を見るのもよいでしょう。
Tableau Zen Masterと呼ばれるTableau界隈では有名な人物のチャンネル*1も複数あります。ここでも、チャートの作り方やテクニックなどの解説動画が沢山あります。


3. Workout Wednesdayを利用する

Workout Wednesdayでは、Tableau初心者向けに、完成されているVizを、そっくりそのまま作れるようになるためのトレーニングの場となっています。
過去の課題については、解説動画が追加されています。ここで、作りたいチャートを検索してみるのもよいでしょう。

Workout Wednesday – #WorkoutWednesday


4. Tableauコミュニティで質問する

日本にもTableau Communityが存在します。そこに困ったことがあったら、チャートの作り方に限らず、質問するのもいいかもしれません。

Japan Tableau Community https://community.tableau.com/s/group/0F94T000000gQZwSAM/japan


以上で、Tableauでチャートの作り方がわからなくて困ったときの解決法をお伝えしました。
ご参考になれば幸いです。

*1:*例えば、 Andy Kriebelのチャンネル Andy Kriebel - YouTube

TableauでRadial Bar Chartをつくってみた

今回は、Radial Bar Chartを作ってみます。

Radial Bar Chartは、値の大きさを放射状の線の長さで表現します。 一番長い放射線を基準として、相対的な値の差を表現することができます。
値が横並びのチャートに比べて、値の比較は難しくなりますが、棒グラフだけになりがちなダッシュボードに変化をつけられたり、円形並びになることで省スペースとなるという利点があります。

下記のチャートの作り方を説明していきます。このチャートは、サブカテゴリごとの売上を放射線の長さで示しています。
(利用するのは、サンプルスーパーストアのデータとなります)

f:id:gri-blog:20201130084859p:plain

作り方は、以下の二つのサイトを参考にしています。



Radial Bar Chartの作り方

1. スーパーストアデータのSelf-Union

スーパーストアデータをユニオンで自己結合します。今回は、[サブカテゴリ]と[売上]を利用するので、注文データを使いました。

 f:id:gri-blog:20201129142435p:plain


2. Pathの作成

(1)パラメータ [Bin Size]の作成
パラメータのデータ型は整数にします。今回は、一番長い放射線の終点での角度を270°とするので、現在の値に270を記入しました。

f:id:gri-blog:20201130131809p:plain

(2)計算フィールド[Path]の作成

IIF([Table Name] = "注文",1,[Bin Size])


(3)[Path]から [Path(ビン)]の作成
作った計算フィールド[Path]からビンを作成します。ビンのサイズは1に設定します。

f:id:gri-blog:20201129133929p:plain

3. 計算フィールドの準備

① Index

INDEX()-1

② TC_Value

WINDOW_MAX(SUM([Value]))

[Value]には、任意のメジャーを入れます。今回は[売上]を入れました。

③ TC_Max Value

WINDOW_MAX(SUM([Value]))

[Value]には、任意のメジャーを入れます。今回は[売上]を入れました。

④ TC_Rank

RANK_UNIQUE([TC_Value],'asc')

⑤ TC_Step Size

[TC_Value]/[TC_Max_Value]

⑥ X

SIN([Index]PI()/180[TC_Step Size])*[TC_Rank]

⑦ Y

COS([Index]PI()/180[TC_Step Size])*[TC_Rank]


4. Vizの作成

(1) [サブカテゴリ]を色に入れます。
(2)[Path(ビン)]を列に入れます。右クリックして、「欠落した値を表示」にチェックを入れます。
f:id:gri-blog:20201130113305p:plain
(3)マークタイプを「線」にし、[Path(ビン)]を「パス」に移動します。
(4)[X]を列に、[Y]を行に入れます。それぞれ右クリックして、「次を使用して計算」から[Path(ビン)]にチェックを入れます。
下の図のようになれば大丈夫です。

f:id:gri-blog:20201130125323p:plain

(5)[X]、[Y]に対して、右クリックして、「表計算の編集」(①、 ②)の設定をします。
表計算の編集 [TC_Max Value]
(i)ネストされた計算:[TC_Max Value]
(ii)次を使用して計算:「特定のディメンション」を選択し、チェックを[サブカテゴリ]と[Path(ビン)]に入れます。[サブカテゴリ]を[Path(ビン)]より上になるようにしてください。
f:id:gri-blog:20201130130524p:plain

表計算の編集 [TC_Rank]
(i)ネストされた計算:[TC_Rank]
(ii)次を使用して計算:「特定のディメンション」を選択し、チェックを[サブカテゴリ]と[Path(ビン)]に入れます。[サブカテゴリ]を[Path(ビン)]より上になるようにしてください。
(iii)実行レベル:[サブカテゴリ]
f:id:gri-blog:20201130130546p:plain


これでRadial Bar Chartが完成しました。
f:id:gri-blog:20201130125248p:plain

あとは、[サブカテゴリ]をラベルで表示させたり、ヘッダーや軸のタイトル、グリット線を消すなどして、 好みに調整すれば終わりです。
以上、Radial Bar Chartの作り方の説明となります。

Tableau Prepでダウンサンプリングをする方法

機械学習の分類問題で、不均衡データを扱う場合の対処法の一つにダウンサンプリングがあります。今回は、Tableau Prepでのダウンサンプリングの実装方法をご紹介します。利点としては、Tableau Prepで機械学習のための一枚表を作る流れの延長上で、手軽にダウンサンプリングが出来ることです。


事前準備

  • pythonPython Version 3.7以上)のインストール
  • tabpyのインストール
  • imbalanced-learnのインストール
    ※必要に応じて、Anacondaやvenvで仮想環境の構築してください


Tableau Prepでのダウンサンプリング方法

1. スクリプトの準備

以下のスクリプトの'正解ラベル'を、任意の正解ラベルのカラム名に変更し、拡張子を .py にして保存して、使用します。

import pandas as pd
from imblearn.under_sampling import RandomUnderSampler
 
 
 def get_output_schema(df_original):
   return df_original
    
    
 def downsampling_tabpy(df_original):
    print("start")
    y = df_original['正解ラベル']
    X = df_original.drop('正解ラベル', axis=1)
    sampler = RandomUnderSampler(random_state=1234)
    X_resampled, y_resampled = sampler.fit_resample(X, y)
    print("resampled")
    resampled_array = pd.concat([X_resampled, y_resampled], axis=1)
    #resampled_array["正解ラベル"] = resampled_array["正解ラベル"].astype()
    print("done.")
    return resampled_array
2. TabPyの起動

コンソールにtabpyと入力すれば起動されます(仮想環境が必要な場合は、仮想環境を起動してから行ってください)。
コマンド実行後、以下の画面のように、“port 9004”と表示されれば正常に起動されています。
f:id:gri-blog:20201130093540p:plain

3. Tableau Prepでのスクリプトの追加

(1)Prepにダウンサンプリングしたいファイルを接続
(2)スクリプトステップを追加

f:id:gri-blog:20201130094255p:plain

(3)スクリプトを設定
f:id:gri-blog:20201130094337p:plain

  1. 接続タイプ
    Tableau Python(TabPy) Serverを選択

  2. サーバー
    サーバー: localhost、ポート: 9004を記載し、サインイン
    f:id:gri-blog:20201130094501p:plain

  3. ファイル名
    任意のスクリプト名.py

  4. 関数名
    downsampling_tabpy


スクリプトが実行されると、正解ラベル(Churn?)のTrueとFalseが同じレコード数に揃うようにダウンサンプリングされます。
f:id:gri-blog:20201130094719p:plain

以上で、Tableau Prepでダウンサンプリングをする方法を説明となります。是非、利用してみて下さい。

Tableauで「困って・調べて・解決した」ちょいTIPS(2020年11月)

tableauをいじっていると、どうしてもここがしっくりいかないという点が細々とでてきます。そこで今月つかったりWEBで探したテクニックを3つだけに絞ってご紹介したいと思います。

TIPS1「列のカラムを上部に表示したい」

データをどの形式で見せるか悩ましいですが、ときには軸の設定なども気にかかってきます。
例えば下記のようにデータが縦に長いようなVizの場合、ラベルが離れていると見づらい状態になります。
それを解消できるちょっとしたTIPSになります。

難度:★☆☆
用途:縦方向にデータが多い場合ラベルを上にしたい時に利用
方法:分析→表レイアウト→詳細で「垂直軸がある場合は~」のチェックを外す
参考:https://note.com/tabjo/n/n00cac0591f48

f:id:gri-blog:20201130112148p:plain

TIPS2「2つの棒グラフを重ねて表示したい(バー・イン・バーグラフ)」

2つのグラフを重ねるとき、棒グラフと折れ線グラフを使うことがあると思いますが、例えばどちらも同じ「金額」だった場合など。
同じデータの内容を比べる際には同じグラフ形式のVizにしたい、そんな際に役に立つTIPSです。

難度:★☆☆
用途:2つのデータを同グラフ内で比較して見せたい場合(全体における割合)に利用
方法:「二重軸」をつかう、比較する値が同じなら軸の同期を忘れずに
参考:https://kb.tableau.com/articles/howto/dual-axis-bar-chart-multiple-measures?lang=ja-jp

f:id:gri-blog:20201130112152p:plain

また、上記のような実数での対比より、「割合の対比」に有効な見せ方だと思います。例えば下記のような回答者全体と20代のみなど、「全体と1項目との割合対比」のほうがインサイトを得れるグラフになる気がします。

f:id:gri-blog:20201130112206p:plain

TIPS3:「積み上げ棒グラフ内の「項目」で並び替えたい」

積み上げグラフを作った際に、1つの項目を中心にデータを見せたい場合その項目でソートをかけることもできます。
こうすることで下図のように赤い項目の順番を意識しつつ、全体のボリュームも合わせてみることができるVizになります。

難度:★★☆
用途:積み上げグラフを作った際に、注目している項目をベースにソートをかけたい
方法:パラメータを作成し、注目している項目を左寄せ後、その値のみでソートをかける
参考:http://tableaujpn.blogspot.com/2015/12/sorting-segments-witin-stacked-bar-chart.html

f:id:gri-blog:20201130112214p:plain

 

UXモデルをベースにした資料設計

◆はじめに
IT業界で仕事をしていると「UI/UX」という言葉をよく聞きます。
「UI/UX?あー、デザイナーさんの仕事ね」そう通り過ぎること多いですよね?

一方、皆さんは仕事でこんな物作っていたりすると思います。

 営業資料、プレゼン資料、サービス・システム設計図、
 データをビジュアライズしたレポート、、、

作った際に「なんか分かりづらい、、、まあ時間ないし内容が書いてあればいいか」
という感じになっていることが多くないでしょうか?

そこでよく聞くUXという視点を元に、WEBやサービスデザインなどだけではなく、
「資料/情報」をユーザーにどうみせるか、そんな話をまとめてみたいと思います。


◆UXとは
パワポで資料をまとめたり、Tableauでデータを整理している際、あなたは
「フォントの種類や配色、図の大きさやレイアウト」
これらの調整に時間をかけていませんか?それも考える点の一つではありますが、
それ以外の重要な視点がかけていると、そこに時間をかけていても意味はありません。

UXは「ユーザーが製品・サービスを使用する際の印象や体験」のことです。
これを「情報を整理して資料を作成する」際に応用すると、
データや情報をどうアウトプットし「何が必要でどう見せるかの構造」を
元に作成を進めていくことになります。

また初めてのユーザーは自分です。あなたが作ったものを見返したときどう思ったか、
なにか違和感がある資料やデータ、それはおそらく構造から外れた方法で
作ってしまった結果なはずです。

f:id:gri-blog:20201130103414p:plain


◆UXの5段階モデル
UXには有名な5段階モデルがありますのでそれを元に話を進めたいと思います。

f:id:gri-blog:20201130103418p:plain
■STEP1:戦略(Strategy)

 ・一番重要な視点は「あなたが何を作りたいか」ではなく「見る人が何を見たいか」
  そこから生まれる「何のために作るか」となります。
  その視点がずれると、アウトプットしたものがユーザーには
  なんの役にも立たないものができる恐れがあります。

 ・「何のために作るか」を自分で考えるだけではなく、
        当事者に「聞いてみる」ことも重要です。
  でないとやはり「自分が見たいもの」ができてしまうでしょう。

■STEP2:要件(Scope)
 ・「何のために作るか」が明確になれば、それをどのようなものを使って
  見せていくか、「何が必要か」の検討に入れます。

 ・ここでは「ユーザーが必要だろうと思われること」や
       「自分たちがあるべきだと思うこと」
  その内容を検討し、要件をブラッシュアップしていきましょう。

■STEP3:構造(Structure)
 ・その要件をどのような順番で見せていけばユーザーがわかりやすく理解できるか
  を作っていきます。目次やアジェンダがこちらに該当するでしょう。

 ・おそらくここでは「結論を先に見せる」「順を追って見せる」など順番は
  案件ごとに都度変わってくるでしょう。戦略や要件を見直すことが重要です。
  例えば現状をよく知っているクライアントに対しては、先に結論を見せれば
  その後の詳細を知りたくなり提示した情報への探求/思考がすすみ、
  逆にあまり現状を知らないクライアントには順を追って見せれば読みすすめるに
  あたり理解度が深まるという効果があると思います。

■STEP4:骨格(Skelton)
 ・見せる流れが決まれば詳細なページ構成を考えていきます。
  データや情報をピンポイントで見せるべきか、まとめて見せるべきか
  見せるデータの組み合わせなどを考え、できるだけよりインサイトがえられる
  組み合わせを意識するのが良いと思います。

 ・情報を詰め込み過ぎな資料やデータは勘違いや読み違いを生む可能性もあり、
  またシンプルな資料は読み飛ばされる可能性もありバランスが重要です。

■STEP5:表層(Surface
 ・最後に「みてくれ」を整えます。
       「フォントの種類や配色、図の大きさやレイアウト」
  は重要でないと冒頭に書きましたが、上記のポイントが整っている時点では
  「フォントや数値、色など」は思っているより重要な要素です。

 ・例えば男性データを青、女性データを赤で配置し、
       次のページでは色が逆だった場合、
  文字で書いてあっても混乱を生みだすでしょう。

       逆にカラフルすぎるデータは視覚的に
  混乱を招きかねません。自分の中でできるだけシンプルな「表記ルール」を作り
  作業をするのが良いでしょう。ただしできるだけ一般的なルールにしましょう。


◆まとめ
UXという視点を元にデータをどう見せるかを考えてみると、いかに過去自分が
作ってきたものが駄目だったかがよくわかり、私同様打ちひしがれると思います。

しかしながら、以降この構造を元にベースを作成し、それを元に同僚やときには
クライアントと内容を詰めていくことでより実践的な資料やデータを作ることが
できるようになると思います。


参考)The Elements of User Experience
http://www.jjg.net/elements/pdf/elements.pdf

参考)UX(ユーエックス)ってなんだ?実際に活躍している人たちに聞いてみた
https://dentsu-ho.com/articles/3587

参考)【パワポ時代の情報整理術】つめこみすぎなスライドがこれでスッキリ!
https://note.com/pptxdesign/n/n31797abf58f8

参考)データ視覚化のデザイン #1
https://note.com/goando/n/neb6ea35f1da3?magazine_key=me00d3667f5ce