始めてデータサイエンティストを目指す皆さんを応援しています!一緒に楽しくデータサイエンスの世界を探検しましょう。社から正式リリース発表とは一切関与がございません。リリース前のバージョンに関する、動作、仕様はリリース時に変更となる場合がございます。社のサポート問い合わせの対象にはなりません。ご理解の上参照頂ければ幸いです。Python・Rコードを実行できる機能が追加になる予定です。(現時点で予定であり、予告なく変更される可能性がございます。新機能であるPython連携についてその可能性を探っていきたいと思います。2019.3ではR連携とPython連携が可能になりますが、この記事ではPython連携について紹介します。Builderのフローファイルをこちらからダウンロードする事でお試しいただけるはずです。できるデータフレームの処理がほとんどできてしまうのですから、コーディング次第でなんでも出来てしまうということです。データの前準備処理では、行番号を振ったり、ソートして上位の特定行を取ったり、重複行を排除したり、一行前と比較したり、ランダムに抽出したり、データベースに書き込んだり・・・と色々考えられます。機械学習のプラットフォームとしてPython上で利用できる多用な予測モデルを使って予測値を得るということもできます。連携するステップは以下のようになります。Serverのセットアップは以下のリンクを参照ください。Serverを起動するとデフォルトでポート9004でリッスンします。いうファイルを作成します。(こちらからダウンロード)中身は以下です。”df”を返すというだけのシンプルな内容です。Pythonではタブのインデントにより関数の中身を記述するので、インデントに注意ください。コピペするとインデントが消えることがあります。BuilderからPython関数を実行するステップを追加するまずはおなじみIRIS(あやめの花の属性)のデータに接続します。Script」が選択できるようになっています。Server」を選択、ServerとPortを設定します。今回はlocalhost/9004です。”ParseData.py”を指定します。Name」で”ParseData”を指定しますが、こちらはParseData.pyファイルで定義されたParseData()関数です。正常に設定されると、以下のように、スクリプトが実行された後の結果が表示されます。結果を受け取るという処理が行われています。Builderの前のステップの結果が”df”という名前のPandasのDataFrame(表構造のようなもの)に入れられていて、”df”というDataframeが返ってきているということです。ここはお決まりということで扱いましょう。これからこの”df”に色々な処理を加えていきましょう。BuilderではINDEX関数などの表計算がサポートされていないので行番号を振ることが出来ないのですが、これは簡単なPythonコードで実現できます。いう列を作成し”0”という値を入れておきます(後でPythonで書き換えます)。“index”フィールドには”0”が入っています。ここで、スクリプトを追加します。いうファイルを以下のように作成します。NameにSetIndexを指定します。行番号が追加されています。3.ソートしてトップ10を返す次はあるフィールドでソートして上位10行を返すようにしましょう。以下のスクリプトファイル”Sort_Top10.py”を作成します。お決まりなので、Googleで検索してみると沢山ヒットします。ソートされ、大きい順に10行取得されています。次は重複行を削除してみます。同じ値のデータがありますので、これを削除してみましょう。ファイルを作成します。同様に、スクリプトファイル名と関数名を設定します。ユニークになりました。この例ではあまり有効ではないですが、マスター表の顧客IDが重複する場合に重複を削除するケース等で利用が出来そうです。4.K-meansクラスタリングを実施する次は機械学習の基礎になりますが、Irisの花の特徴データ(花びらの長さ、花びらの幅、がくの長さ、がくの幅)からクラスタリングを実施してみましょう!最終的には以下のようなフローを作り、K-meansでクラスタリングしてIndexを付けましょう。はじめにNULL値を除外して(除外しておかないとエラーになります)、”cluster”という列を値”0”で作成しておきます。ファイルを作成します。モデルを作り、4つの特徴量を入れて標本を3つのクラスターに分けます。分けた結果を”cluster”フィールドに書き込んでいきます。Builderのステップにスクリプトを追加し関数をClusteringを実行します。クラスタリング結果が入っていることが分かります。K-meansクラスタリングの結果0,1,2に分類されたものと、実際の花の品種Setosa,Versicolor,Verginicaを比較して見ます。分類されているようですね。分類と合っていない標本だけ色を変えるということもできて、一部の標本についてはクラスタリングが外れていました(下のオレンジ色の標本)が、大方クラスタリング出来ています。機械学習の基本であるK-meansクラスタリングはできましたので、モデルを作成し、特徴量をフィットさせて、学習(予測)の結果をデータフレームに追加するということはできたました。後は決定木だったり、重回帰だったり、SVMだったり、ニューラルネットだったりと同じようなステップで機械学習(予測)の結果を取得する応用ができます。今後もう少し汎用性のある使い道を発見したら、ここから先に追加したいと思います。以上のサンプルでは1つのファイルに1つの関数を定義していますが、もちろん1つのスクリプトファイルに複数の関数をまとめて定義することもできます。役立つ関数をまとめたツールボックスのようなスクリプトファイルも出来そうですね。追加)データベース(MySQL)への書き出しを実施してみましょう。*まずはMySQLにDBとテーブルを作成します。何もテーブルに入っていないことを確認します。NotebookまたはAnacondaコマンドラインより必要なモジュールをinstallします。起動しているAnacondaの仮想環境で実行します。*フローから関数WriteToDBを実行させます。(前のステップのデータ)がDBに格納されていることが分かります。Builderのフローファイルはこちらからダウンロード可能です。最後にPythonスクリプトのデバッグについて補足します。Builderから実行して成功するのも難しく、場合によってはエラーが出るケースもあります。Builderに実装するという手順を踏むのが良いかと思います。ステップとしては以下のようになります。pandasをインポートします。関数として定義する内容(スクリプトファイル)を実行します。