2018年6月21日木曜日

PowerBIによる時系列処理(2)

PowerBIは日付型のデータは自動的に認識して、年・半期・四半期といった階層を自動的に作成してくれます(残念ながら会計年度は自前で準備する必要があります。)
データを実際に読み込んでみましょう。UCIの機械学習用のデータセットでオンラインストアの売り上げデータがExcelシートで配布されています。

http://archive.ics.uci.edu/ml/machine-learning-databases/00352/Online%20Retail.xlsx
上記から、データをダウンロードします。

 データの取得リボンを選択すると上記の画面が表示されます。大体のデータソースはカバーされています。ExcelのファイルですのでExcelを選択します。ファイルを選択するとBookの選択が表示されるので、チェックすれば、データが表示されます。
読み込みを押すとデータが読み込まれ、分析に使うことができ、右側のデータの項目を選ぶとグラフが表示されます。


















時間型で認識されたデータはInvoiceDateのように階層が自動作成され、集計を行うことができます。


ドリルしていくと月当たりの出荷数のようなグラフも簡単に表示できます。



表示を変えてみると、例えば階段チャートのようなグラフの表示もできますね。






2018年6月20日水曜日

PowerBIによる時系列処理(1)

PowerBIでは時系列データだけですが、予測機能を使うことができます。
灰色になっているところが予測値になります。
季節性のあるデータや周期性のあるデータには有効な機能です。

予測が可能なのは時系列データで、基本的にDateやTime型と認識されなければ動作しません。
予測可能であれば、右の部分に分析のアイコンが表示され分析の設定が可能になります。







また予測線は、グラフ中に一つしか引けません。また、複数表示されている場合は予測機能自体が設定できないようになっています。少し使いにくいですね。

2018年6月18日月曜日

SQLServer Integration Service

 SQLServerにはIntegration Serviceが付属しています。SSISと省略しますが、単独でも使用できるかなり便利なETLツールです。特徴ですが、基本的には、制御フローで制御構造を作成し、データフローでデータ変換の中身を記述します。データをデータベースにロードしたり、出力したりする場合、プログラムを作成している方も多いと思いますが、プログラムの作成は必要なく、ドラッグアンドドロップでコンポーネントを配置し、データの流れを接続するというだけで動作が記述できます。SSISでの開発はVisual Studioを使用します。SQL Server Datatoolsを導入すると自動的にインストールされます。

 Visual Studioを立ち上げ、SSISのプロジェクトを選択すると開発を始めることができます。


古くはホストコンピュータでバッチ処理を記述した方がいれば、制御フローがJCLに当たり、データフローが各プログラムに当たるということが理解いただけるのではないでしょうか。
 データフローですが、データ変換にかかわる色々なコンポーネントが含まれます。データのレイアウトを変更したり、ソート・マージといった処理はかなりの数作成しないといけないと思いますが、SSISを使えば簡単に記述可能です。


上記は、ファイルを単純に結合するだけです。(UNIX上でCATすればすみますが。。)実行のVisual Studio上で実行でき、実行結果は以下のようになります。本番環境では、SQLServerや、Azure上のData Factoryでコンポーネントをホストして実行させます。


SQLServerには標準で付属していますので、使用される予定がある方は一度使われてみてはいかがでしょうか。

PowerBI DesktopでのRの使用

PowerBI DesktopでRを使用することができます。
  1. Visualを作成する
  2. Rで分析を行う
1.の場合は、以下に開設がありますが、あくまで分析と結果の表示をコンポーネント化してRで利用可能です。
https://docs.microsoft.com/ja-jp/power-bi/desktop-r-visuals

2.の場合ですが、RのスクリプトをPowerBI中で使用できます。
https://docs.microsoft.com/ja-jp/power-bi/desktop-r-scripts#install-r

ローカルの環境にRをインストールして、上記のURLのようにセットアップします。



 上記のスクリーンショットはAnormaly Detectionを実行してデータの異常点を表示しています。
実行時間は30分に制限されているので、重い解析はできませんが、データセットから直接読み込んで処理を実行できかなり便利です。Anormaly Detectionは、周期性に基づいて異常検知するロジックでTwitterが作成したものを使用しています。

https://github.com/twitter/AnomalyDetection

かなり古いのですが、使いやすいのでよく使っています。

Rのコンソールから
install.packages("devtools")
devtools::install_github("twitter/AnomalyDetection")
library(AnomalyDetection)
上記を実行すれば、使用可能になります。






Thinker BoardのOpenCL(2)

 前の投稿で、ビルドして動かすところまで、やってみましたが、今回はOpenCLを使うと、あまりに遅かったので、パラメータを調整してみます。 どうも、max_bin = 255となっていたので、64とかに減らして実行すると15がいいよというWarningがでました。 [LightG...