えんじにあのじゆうちょうスマートフォン用の表示で見るえんじにあのじゆうちょう勉強したことを中心にアウトプットしていきます。Notebookのextensionを利用して、LogServiceを操作する方法について解説します。似ているもので言うとElasticSearch+Kibanaや、私は使ったことがないですが、Splunkも似ているそうです。マネージド型サービスであるため、データを取り込み分析をするところだけを気にすればよいという点もメリットかなと思います。www.alibabacloud.comLogServiceの使い方については、少し古いですが1年ほど前に仕事中に書いたものが参考になると思うので、ご興味のある方は是非参考にしてください。SBクラウド株式会社www.slideshare.netあと、本ブログは完全に趣味の世界であることはご理解ください。LogServiceの機械学習機能さて、本記事では上記のSlideShare等でも書いていない機械学習の部分について書きたいと思います。LogServiceで利用できる機械学習機能ですが、以下に一覧があります。functionを試していこうと思います。www.alibabacloud.comある程度触ってみた結果、1つ触り方がわかるとだいたい同じ感じでいけるかな、という感覚でした。やってみようデータの用意まずは時系列っぽいデータを用意します。以前*1やったようにオープンデータを用意してもいいのですが、今回は自分で作成することにします。このあたりはNotebook上で実行しても、生のPythonで実行してもどちらでも大丈夫です。f(series[i-1],series[i-2])こんな感じのデータができます。これをアップロードしてみましょう。今回はデータ量も多くないので、API経由でアップロードします。以下を参考にしています。contents)timestampは1秒刻みにしています。元データやアップロード後のデータ型を文字列型にしたい場合であっても、アップロード前は一旦文字列型に変換するというのがちょっとしたポイントです。今回でいうとtimestampは整数、valueは浮動小数点ですが、どちらも文字列型に変換しています。ちなみに、データが大量のときはOSSにアップロードしてからDataIntegrationを使ってインポートしたりするほうが早いかもしれません。容量や用途に応じて、適切な方法をご選択してください。設定については、一応ここに少しだけ書いてあります。github.com以下では私の環境においてどのように導入したかを記載します。Installer)を利用して構築した環境である点はご注意いただき、もし不足が出るような場合は上記のドキュメントに書いてあります。中国語ですが、コード部分くらいは読めると思います。それでは、環境のセットアップとして以下を実行していきます。必要なライブラリのインストール関連するパッケージはcondaでは導入できないので、pipを使います。事前に十分な権限のついたAccessKey/AccessKeySecretを用意してください。私の場合はAliyunLogFullAccess権限のついたRAMユーザを1つ用意し、そこからAccessKey/AccessKeySecretを発行しています。その後、以下のようなファイルを作ります。YOUR_LOGSTORE_NAMEこれで準備は整いました!データの取得&可視化ここから先はNotebook上で作業してください。先程入れたデータを取り出してみましょう。value1行目は1日前〜いままでのデータを対象とするという宣言になります。LogServiceの場合、データが投入された時期を明示してからその範囲のデータに対して処理をかけていくという流れになります。2行目がいつものLogServiceのクエリです。見慣れない方のために簡単に説明すると、最初の*のところはデータのフィルタリング条件を設定します。デバイス名に関する列がある時、デバイス名などで絞る、といったことが可能です。その後ろはSQLライクなクエリです。FROMは通常は明示的に書く必要はありません。log」と指定します。お気づきだと思いますが、ちょいちょい中国語が入ってきます・・・ちなみに私は中国語は一切読めませんが、雰囲気で乗り切りました。「变量名」はきっとLogServiceからの戻りの結果がlog_dfという名前のオブジェクトに格納されている、ということなんでしょう。そのようですね!!とりあえず別の変数に代入しておきます。log_df念の為、dtypesを見ると、すべてのカラムがobject型にされてしまっています。objectこれでは都合が悪いので、変換をします。base_log["value"].astype("float")それでは、グラフを書いておきましょう。単純な異常検知それでは機械学習関数について試していきましょう。LogServiceでは時系列データに対して教師なし学習モデルを提供しています。いうと、状態空間モデルのようなものは利用できませんが、時系列モデルは利用できます。先日記事にも書いたARモデルについて試しましょう。ARモデルについては以下を参照してください。2)簡単にARモデルが構築できました。結果のデータフレームの各列は概ね以下のようなものになります。図だとわかりにくいので、お絵かきしてみましょう。label="anomaly")plt.legend()とても簡単にモデル化&異常検知ができました。それにしても、なんでここがアノマリなんだろう?というのはありますが、アノマリ検知は基本的にモデルを作成→モデルと実測値を比べてある一定の閾値を超えたらアノマリ扱いということになるので、きっとそういう判断があったのでしょう。未来予測ts_predicate_**関数群はnPredsというパラメータがあるため、ここに数値を渡すといい感じに以降の予測を出してくれます。はずなんですが、普通にやるとうまくいきません。先程のAR(2)モデルを利用して以降10個の予測をしたいときに、単純に考えると以下の様にやれば良い気がするのですが、これでは100個目までのデータしかでてきません。100が暗黙的にかかっているようで、予測を含め、100個以上データがあるときはうまくいきません。110なんかいい感じに予測できてますね。LogServiceの異常検知は構築したモデルによる予測値を元にした異常検知と実際の値の差分で求めるため、未来データに対してここで異常が来るだろう、といったことが言えるわけではない点に注意してください。おわりに今回はAlibabaCloudのLogServiceをJupyterNotebookから使ってみました。公式SDKをインストールするだけで簡単に利用できるという手軽さについてはご理解いただけたのではないかと思います。今回は本当にごくごく一部の機能をしか使っていませんが、他にもたくさんの機能があります。(1)認定はてなブログをはじめよう!marufeuillexさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。