デジタル推進課

KNIME・Excel Macro・Power Automateなど日々の業務で使用できる自動化ツールを中心に書き綴ります

KNIME - データ概要を把握!ヒストグラムをサクッと作る - Histogram

f:id:makkynm:20211211203524p:plain

 

はじめに

こんにちは、まっきーです。今回はヒストグラムの作り方について解説したいと思います。ヒストグラムは大きなデータを解析する前に、どんなデータが含まれているのかをざっくり確認するのに非常に役に立ちます。

Excelでは動作が止まってしまうような大きなデータを扱う際はぜひKNIMEで前処理を行ってデータをざっくり確認するという作業をしてみてください。

では始めましょう。

 

 今回のテーマ ~Histogram~

f:id:makkynm:20211211171908p:plain

 今回のテーマ ~Histogram~

 

覚えてほしいこと

大きなデータで解析を始める前に

一度ヒストグラムでデータ概要を確認してみる

 

やりたいこと

全社員の残業時間がどのように分布しているか?をヒストグラムで確認するということをやってみたいと思います。

今回は簡単のため非常に少ないデータでヒストグラムを作ってみたいと思います。

f:id:makkynm:20211211172334p:plain

やりたいこと - 残業時間の分布の確認

ヒストグラムを見ると、今回のデータでは残業時間 2h 未満の入力が一番多いんだなというのがざっくりわかります。

 

Histogramの使い方

行数のカウントであれば、概要を把握したい数値カラムを指定するだけで簡単にヒストグラムを作成することが可能です。

Workflow - Histogram

データは以前のグラフ化解説で使用したデータと同じデータを使用して解説しています。

f:id:makkynm:20211211172658p:plain

Workflow - Histogram

Workflowは下記リンクからダウンロードできます。

ヒストグラム - Histogram – KNIME Hub

 

Confirm - Histogram

勤怠表の残業時間のカラムを元に、勝手に5分割されて行数をカウントし残業時間の分布が作成されます。これによりデータの概要を掴むことができます。

f:id:makkynm:20211211172334p:plain

Confirm - Histogram

 

Configure - Histogram

先ほどのような単純なヒストグラムでは設定はカラムを選択するのみでほとんど設定の必要がありません。

かなり追加オプションがあるので、ぜひ複雑な設定も覚えて使いこなしてみてください。

Step1 - Options 分布を知りたいカラムを選択

Histogram Column

Histogram Column で分布を知りたい数値カラムを選択します。今回は残業時間の分布を知りたいので残業時間を選択しました。

Aggregation Method

Bar Chartと同じようなOptionです。ヒストグラムの際は基本Occurence Countを選択すれば、出現回数(行数)をカウントしてくれます。

Sum やAverageを選択すると、残業時間の分布を元に、下で指定する数値カラムを計算してくれます。今回は他の数値カラムがないので例として出してはいませんが、例えば、「年齢」という数値カラムがあったとしてAverageを選択したのち、下で「年齢」を選択すると

「残業時間が少ない分布の人たちの平均の年齢はXX」というのを棒グラフとして示すことができます。

f:id:makkynm:20211211174957p:plain

Step1 - 分布を知りたいカラムを選択
Step2 - Binning 分布の区切りを指定

下記はデフォルト設定なので、適当に5分割であれば何も触る必要がないのですが、それぞれのオプションの意味が非常に大事なので解説します。

f:id:makkynm:20211211175622p:plain

Step2 - 分布の区切りを指定

Binning method

ここが一番大事です。Binning methodで分布の設定を行います。下記の2種類から選べます。

  • Fixed number of bins: X等分の分布を作成
  • Sample quantities: 指定した割合で分布を作成

Fixed number of bins で5がデフォルトで設定されています。これは「5等分で分割」という意味になります。詳しい分割の仕方やSample quantities の使い方についてはちょっと一言をご覧ください。

 

Bin naming

x 軸のラベルを下記の3種類から選べます。デフォルトは中間値を表示するMidpointsになっています。表示例はちょっと一言をご覧ください。

  • Midpoints:中間値を表示
  • Borders:範囲を表示
  • Numbered:Bin1, Bin2, Bin3というように表示

 

Step3 - General Plot Options 軸ラベル・グラフタイトルを指定

最後に下記を任意で設定して終了です!

  • Title: グラフタイトル
  • Subtitle:グラフサブタイトル
  • Category-axis label:縦軸ラベル
  • Frequency-axis label:横軸ラベル

f:id:makkynm:20211211202641p:plain

Step3 - 軸ラベル・グラフタイトルを指定

また、Plot horizontal bar chartをクリックすると、x軸とy軸が入れ替わってグラフが生成されます。

 

 ちょっと一言

Histogramはどう範囲を分割しているのか?(Fixed number of bins)

Fixed number of binsを選択した場合、

分割の幅 = ( DomainのMax - DomainのMin ) / fixed number of bins

という公式で分割幅が決まっています。今回の例であれば、

分割の幅 (1.2) = (7 - 1) / 5 

という計算が走っていました。

f:id:makkynm:20211211180418p:plain

分割幅の決まり方

 

また、Fixed number of binsを選択した場合、Equalを選択できます。それぞれ、

  • width:一定の幅になるように分割
  • frequency:一定の出現頻度になるように分割

という意味を持っていて、今回の例でequal をfrequencyにすると、下記のようなグラフになり、分割幅が一定の出現頻度になるように調整されます。

f:id:makkynm:20211211201436p:plain

Fixed number of bins でequal をfrequencyにした場合

 

Binning method - Sample quantitiesの使い方

デフォルト設定ではFixed number of bins(等分に分割する方法)ですが Sample quantitiesを使用すると任意の位置での区切りが可能になります。

例えば「0%, 25%, 50%, 100% を区切りとして3つに分ける」場合だと、下記のような設定になります。

f:id:makkynm:20211211202450p:plain

Binning method - Sample quantitiesの使い方

f:id:makkynm:20211211202520p:plain

Binning method - Sample quantitiesの使い方

 

 

Bin namingの例

上で説明した通り、Bin Naming(x 軸のラベル)は下記の3つから選べます。デフォルトは中間値を表示するMidpointsになっています。

  • Midpoints:中間値を表示
  • Borders:範囲を表示
  • Numbered:Bin1, Bin2, Bin3というように表示

f:id:makkynm:20211211202006p:plain

Bin naming - Borders

f:id:makkynm:20211211202034p:plain

Bin naming - Numbered

 

正しくやったはずなのに正しくヒストグラムが作成されないのはなぜ?

異常値はありませんか?先ほど上で説明した通り、ヒストグラムは最大値・最小値をもとに自動で範囲を作成します。

そのため異常値があった場合、かなり偏ったヒストグラムになってしまい思ったようなヒストグラムにならないことがあります。対処法としては、外れ値を先にRow Filter等で外してしまい、Domain CalculaterでDomainを再計算したのちにHistogramを改めて作るといい感じに作れると思います。

 

おわりに

お疲れ様でした!久々に更新したらちょっと書きすぎてしまいましたね。

この前すさんからTwitterにてリプライいただけたのが、個人的な嬉しい出来事でした。最近閲覧数増えてきた気がするので、ちょっとは広まっているのかな?

もしリクエスト、お仕事の依頼等ございましたら、Twitterもしくはお問合せフォームよりご連絡ください。

ではまた!

 

 

KNIME Hubワークスペース

makkynm/Public – KNIME Hub

Twitter アカウント

まっきー | デジタル推進課 (@makkynm) | Twitter

 

KNIMEに関する本

KNIMEに関する日本語の本って今これくらいしかないと思うんですよね、、

本がいいなーと言う人はぜひ試してみてください。

 

参考リンク