PowerBIでPythonを使ってみよう(Python処理編)

こんにちは。システムソリューション営業本部の石川です。
前回の「PowerBIでPythonをつかってみよう」ではPythonビジュアルを使って、データ取得、グラフ化を行いました。
今回はPythonの機械学習を使って、予測グラフを描画していきます。
早速見ていきましょう。
※詳しい内容については前回の記事を参照ください。
・データを取得する際にPythonスクリプトをつかってデータフレームを作成してデータモデルにインポートすること
・クエリエディタでクエリをPythonスクリプトを使って加工すること
・PowerBIのデータを使ってPythonのグラフなどのビジュアルを作ってレポートに表示させること
前回はデータを取得して、レポートを表示させました。
今回はデータをそのままレポート表示させるだけでなく、途中でPythonで機械学習の処理を行ってからグラフの表示を行っていきます。
※PowerBIでPythonを利用するにはPythonをインストールするなどの準備が必要です。
詳細については前回のブログ記事を参照ください。
①機械学習に使用するデータ準備
②scikit-learnライブラリのインストール
早速準備を進めていきましょう。
URL:https://indexes.nikkei.co.jp/nkave/index?type=download
中身は2018年から2021年までの日経平均株価のデータになっています。

ダウンロードが完了したら、PowerBIにデータを取り込みます。
※データの取り込み手順は、前回の「PowerBIでPythonを使ってみよう」を参照ください。
補足:scikit-learnとは
Pythonの機械学習のライブラリです。
オープンソースで公開されており、個人/商用問わず、誰でも利用することが可能です。
機械学習のアルゴリズムが多く実装されており、どのアルゴリズムでも同じような書き方で利用することができます。
インストールはコマンドプロンプトから行います。
コマンドプロンプトが起動したら「pip install --user sklearn」と入力し、enterキーを押下します。
enterキーを押下するとダウンロードが開始されます。
※一部パスを加工処理しています。

最後に「Succesfully installed scikit-learn-x.x.x sklearn-x.x」と表示されればダウンロードは完了です。

ダウンロードが完了したら「pip list」と入力し、enterキーを押下します。
scikit-learnが追加されていることを確認します。

これで事前準備は完了です。
今回は、過去の日経平均株価の高値の推移データを使って、※線形回帰モデルのアルゴリズム「LinearRegression」で学習を行い、2021年度日経平均株価の高値予測線を描画します。
※線形回帰モデル(Linear Regression)とは
回帰式と言われる式を利用して※1説明変数の値から※2目的変数の値を予測するモデルです。
※1 説明変数
「何かの原因となっている変数」のこと。
※2 目的変数
「その原因を受けて発生した結果となっている変数」のこと。
プログラムはVSCodeを用いて記述していき、コピー&ペーストでPowerBIに反映させます。
最初に今回使用する以下のライブラリをインポートします。
・pandas:データ解析用ライブラリ
・numpy:機械学習の計算をより速く、効率的に行えるようにする拡張モジュール
・matplolib:グラフ描画用ライブラリ
・scikit-learn:機械学習ライブラリ

次に説明変数と目的変数の塊を作成する関数を定義していきます。
ここでは10日分の高値データをxに説明変数として格納、xに格納された翌日分のデータを目的変数としてyに格納しています。

続いて、日経平均株価のデータを学習用とテスト用に分割します。
2021年度の予測線を描画したいので、以下のようにデータを使用します。
・学習用:2020年度以前のデータ
・テスト用:2021年度以降のデータ

分割が行えたら、先ほど定義した関数を利用して説明変数、目的変数をそれぞれ別の変数に格納します。

ここまで行えたら線形回帰分析で学習を行っていきます。

最後に線形回帰分析で学習した結果を出力するプログラムを記述します。
今回は実際の2021年度の高値データを赤色、予測した2021年の高値データを青色でプロットします。

これですべてのプログラムの記述が終了しました。
このプログラムをPowerBIにコピー&ペーストしていきます。

PowerBIの画面に戻り、右ペインの視覚化からPythonビジュアルを選択します。

その後、右ペインのフィールドでデータ日付、高値にチェックを入れます。

データの選択が完了したら、Pythonスクリプトエディターにプログラムをコピー&ペーストし右上の実行ボタンをクリックします。

日経平均株価の高値の予測線と実際のデータの線を出力することができました!
赤線が実際のデータ、青線が予測したデータです。概ね予測は当たっていそうです。

今回は機械学習でしたが、Pythonビジュアルを作成する中にデータ加工のスクリプトを埋め込むことも可能です。
わざわざデータモデルを作成しなくても、ビジュアル化できるのでとても便利です。
興味を持たれた方はぜびPythonビジュアルを利用してみてください。
ここまでご覧いただきありがとうございました。
QESでは現在PowerPlatformに力を入れて取り組んでいます。
特にPowerAppsは、小さなアプリケーション作成から始められるとても便利なサービスです。
詳しくはこちらをご覧ください。
PowerPlatformの導入やPowerAppsによるアプリケーション開発も行っていますので、お困りの際はぜひお問い合わせください。
※このブログで参照されている、Microsoft、PowerPlatform、PowerBI、その他のマイクロソフト製品およびサービスは、米国およびその他の国におけるマイクロソフトの商標または登録商標です。
※このブログで参照されている、Pythonは,Python Software Foundationの登録商標です
前回の「PowerBIでPythonをつかってみよう」ではPythonビジュアルを使って、データ取得、グラフ化を行いました。
今回はPythonの機械学習を使って、予測グラフを描画していきます。
早速見ていきましょう。
1.おさらい
前回の「PowerBIでPythonを使ってみよう」でご紹介したPowerBIでPythonが利用できる場面は以下の3つです。※詳しい内容については前回の記事を参照ください。
・データを取得する際にPythonスクリプトをつかってデータフレームを作成してデータモデルにインポートすること
・クエリエディタでクエリをPythonスクリプトを使って加工すること
・PowerBIのデータを使ってPythonのグラフなどのビジュアルを作ってレポートに表示させること
前回はデータを取得して、レポートを表示させました。
今回はデータをそのままレポート表示させるだけでなく、途中でPythonで機械学習の処理を行ってからグラフの表示を行っていきます。
※PowerBIでPythonを利用するにはPythonをインストールするなどの準備が必要です。
詳細については前回のブログ記事を参照ください。
2.機械学習するための事前準備
機械学習を行う前に、まずは下記を準備します。①機械学習に使用するデータ準備
②scikit-learnライブラリのインストール
早速準備を進めていきましょう。
①機械学習に使用するデータ準備
今回は日経平均株価の予測線を描画していくため、以下のサイトから日経平均株価の日次データをダウンロードします。URL:https://indexes.nikkei.co.jp/nkave/index?type=download
中身は2018年から2021年までの日経平均株価のデータになっています。

ダウンロードが完了したら、PowerBIにデータを取り込みます。
※データの取り込み手順は、前回の「PowerBIでPythonを使ってみよう」を参照ください。
②scikit-learnライブラリのインストール
次に機械学習で使用するscikit-learnライブラリをインストールします。補足:scikit-learnとは
Pythonの機械学習のライブラリです。
オープンソースで公開されており、個人/商用問わず、誰でも利用することが可能です。
機械学習のアルゴリズムが多く実装されており、どのアルゴリズムでも同じような書き方で利用することができます。
インストールはコマンドプロンプトから行います。
コマンドプロンプトが起動したら「pip install --user sklearn」と入力し、enterキーを押下します。
enterキーを押下するとダウンロードが開始されます。
※一部パスを加工処理しています。

最後に「Succesfully installed scikit-learn-x.x.x sklearn-x.x」と表示されればダウンロードは完了です。

ダウンロードが完了したら「pip list」と入力し、enterキーを押下します。
scikit-learnが追加されていることを確認します。

これで事前準備は完了です。
3.機械学習をさせてグラフ化してみよう
さて、事前準備が完了したので早速、機械学習をさせてグラフの描画をしていきましょう。今回は、過去の日経平均株価の高値の推移データを使って、※線形回帰モデルのアルゴリズム「LinearRegression」で学習を行い、2021年度日経平均株価の高値予測線を描画します。
※線形回帰モデル(Linear Regression)とは
回帰式と言われる式を利用して※1説明変数の値から※2目的変数の値を予測するモデルです。
※1 説明変数
「何かの原因となっている変数」のこと。
※2 目的変数
「その原因を受けて発生した結果となっている変数」のこと。
プログラムはVSCodeを用いて記述していき、コピー&ペーストでPowerBIに反映させます。
最初に今回使用する以下のライブラリをインポートします。
・pandas:データ解析用ライブラリ
・numpy:機械学習の計算をより速く、効率的に行えるようにする拡張モジュール
・matplolib:グラフ描画用ライブラリ
・scikit-learn:機械学習ライブラリ

次に説明変数と目的変数の塊を作成する関数を定義していきます。
ここでは10日分の高値データをxに説明変数として格納、xに格納された翌日分のデータを目的変数としてyに格納しています。

続いて、日経平均株価のデータを学習用とテスト用に分割します。
2021年度の予測線を描画したいので、以下のようにデータを使用します。
・学習用:2020年度以前のデータ
・テスト用:2021年度以降のデータ

分割が行えたら、先ほど定義した関数を利用して説明変数、目的変数をそれぞれ別の変数に格納します。

ここまで行えたら線形回帰分析で学習を行っていきます。

最後に線形回帰分析で学習した結果を出力するプログラムを記述します。
今回は実際の2021年度の高値データを赤色、予測した2021年の高値データを青色でプロットします。

これですべてのプログラムの記述が終了しました。
このプログラムをPowerBIにコピー&ペーストしていきます。

PowerBIの画面に戻り、右ペインの視覚化からPythonビジュアルを選択します。

その後、右ペインのフィールドでデータ日付、高値にチェックを入れます。

データの選択が完了したら、Pythonスクリプトエディターにプログラムをコピー&ペーストし右上の実行ボタンをクリックします。

日経平均株価の高値の予測線と実際のデータの線を出力することができました!
赤線が実際のデータ、青線が予測したデータです。概ね予測は当たっていそうです。

4.最後に
いかがだったでしょうか。Pythonビジュアルを用いると機械学習を行い予測のグラフを描画することも可能です。今回は機械学習でしたが、Pythonビジュアルを作成する中にデータ加工のスクリプトを埋め込むことも可能です。
わざわざデータモデルを作成しなくても、ビジュアル化できるのでとても便利です。
興味を持たれた方はぜびPythonビジュアルを利用してみてください。
ここまでご覧いただきありがとうございました。
QESでは現在PowerPlatformに力を入れて取り組んでいます。
特にPowerAppsは、小さなアプリケーション作成から始められるとても便利なサービスです。
詳しくはこちらをご覧ください。
PowerPlatformの導入やPowerAppsによるアプリケーション開発も行っていますので、お困りの際はぜひお問い合わせください。
※このブログで参照されている、Microsoft、PowerPlatform、PowerBI、その他のマイクロソフト製品およびサービスは、米国およびその他の国におけるマイクロソフトの商標または登録商標です。
※このブログで参照されている、Pythonは,Python Software Foundationの登録商標です