多変数の間の直接相関をスパース推定する手法であるグラフィカル Lasso と、その異常検知への応用についてまとめました。
![グラフィカル Lasso を用いた異常検知](https://cdn-ak-scissors.b.st-hatena.com/image/square/07bda0f2ecba8f2cd5d908472d22d03159d63647/height=288;version=1;width=512/https%3A%2F%2Fcdn.slidesharecdn.com%2Fss_thumbnails%2Fglasso-170527144244-thumbnail.jpg%3Fwidth%3D640%26height%3D640%26fit%3Dbounds)
$$ \begin{aligned} \boldsymbol{S}_{\lambda}(\boldsymbol{\beta}) & = ||\boldsymbol{y}-\boldsymbol{X\beta}||^2 + \lambda||\boldsymbol{\beta}||_q \\\\ & = ||\boldsymbol{y}-\boldsymbol{X\beta}||^2 + \lambda \sum_{i=0}^{p}{|\beta_i|^q} \cdots (*) \\\\ \end{aligned} $$ となります. 確認ですが, $\boldsymbol{y}$:n次元の観測ベクトル $\boldsymbol{X}$:n×(p+1)次元の計画行列(design matrix) $\boldsymbol{\beta}$:(p+1)次元の回帰係数ベクトル (これを求めたい.
確率 ppp で当たるような試行を(独立に)nnn 回繰り返す。そのうち kkk 回当たる確率は,nCkpk(1−p)n−k{}_n\mathrm{C}_kp^k(1-p)^{n-k}nCkpk(1−p)n−k である。 二項分布 B(n,p)\mathrm{B}(n,p)B(n,p) に従う確率変数の期待値は npnpnp,分散は np(1−p)np(1-p)np(1−p) である。 高校数学では「反復試行の確率」などとも呼ばれる頻出のテーマです。→反復試行の確率の公式といろいろな例題 当たる回数 XXX は確率変数であり,P(X=k)=nCkpk(1−p)n−kP(X=k)={}_n\mathrm{C}_kp^k(1-p)^{n-k}P(X=k)=nCkpk(1−p)n−k を満たします。この XXX が従う確率分布を二項分布と言い,B(n,p)\mathrm{B}(n,p)B
導入 データ分析にて、最も基本的な回帰分析から始めていきます*1。回帰分析とは、説明したい変数(目的変数)とそれを説明するための変数(説明変数)の間の関係を求める手法です。機械学習の手法の区分としては、教師あり学習(解答に相当する教師データを用いてモデルを構築)に属するものです。 回帰分析の目的は大きく2種類あります。 理解:文字通り、変数間の構造・関係の理解 例:ある病気に対して、どのような遺伝子が寄与しているかをマイクロアレイデータなどのデータを用いて明らかにする 予測:変数間の関係をもとに、将来予測をする 例:過去の広告の投下量と売上実績から、これらの関係を説明するモデルを構築し、それをもとに将来の広告への投資計画を立てる ビジネスの世界では、予測を目的に使用されることがほとんどです。それは、モデル構築によって要因を明らかにするだけでなく、その後の施策でそのモデルの知見を使い、価値を
新規作成:2017年05月16日 最終更新:2017年05月16日 ここでは、時系列データを手にした際に、どのような手順で回帰分析をかけていけばいいのか、フローチャートを交えて解説します。 時系列データは特殊でして、普通の回帰分析を行うと、p値がおかしくなり、正しく検定ができなくなることがよくあります。これを見せかけの回帰と呼びます。 シミュレーションを通して、見せかけの回帰という現象を確認したうえで、それらに対応する手法としての単位根検定・共和分検定・一般化最小二乗法(GLS)の基本的な考え方とRでの実装方法について説明します。 ソースコードはまとめてこちらに置いてあります。 スポンサードリンク 目次 時系列データへの回帰分析フローチャート 単位根と見せかけの回帰 データチェック1 単位根検定とADF検定 解決策1 差分系列への回帰分析 差分系列への回帰分析の問題点 データチェック2 共
時系列データへのクロスバリデーション法を用いて、予測精度の評価を行う方法を説明します。 R言語のforecastパッケージのtsCV関数を用いると、効率的な短いコードで実装が可能です。 この記事では、時系列データの前処理~モデル化~予測~予測の評価、といった一連の流れをすべて通して解説します。 今回は標準的な時系列モデルであるSARIMAモデルを用いますが、このモデル以外でもおおよその手順は変わらないと思います。 予測の評価における基本的な事項は『予測の評価方法:誤差の指標とナイーブな予測』も合わせて参照してください。 コードはGitHubから参照することができます。 スポンサードリンク 目次 分析の準備と前処理 SARIMAモデルの構築 SARIMAによる予測 テストデータを使った予測の評価 クロスバリデーション法による予測の評価 スライド型のクロスバリデーション法の実行 後記 1.分析
概要 こちらの続き。これで pandas でのデータ選択についてはひとまず終わり。 Python pandas データ選択処理をちょっと詳しく <前編> - StatsFragments Python pandas データ選択処理をちょっと詳しく <中編> - StatsFragments サンプルデータの準備 データは 前編と同じものを使う。ただし変数名は変えた。 import pandas as pd s1 = pd.Series([1, 2, 3], index = ['I1', 'I2', 'I3']) df1 = pd.DataFrame({'C1': [11, 21, 31], 'C2': [12, 22, 32], 'C3': [13, 23, 33]}, index = ['I1', 'I2', 'I3']) s1 # I1 1 # I2 2 # I3 3 # dtype:
データ分析の会社に転職してから3ヶ月。 最初の1ヶ月はPandasの扱いに本当に困ったので、 昔メモしてたことを簡単にブログに記録しておく(o ・ω・)ノ 【追記】2017/07/31 0:36 データが一部間違ってたので修正しました Pandasとは pandasでよく使う型 テストデータについて 余談 Pandasでのデータ操作入門 pandasのload データ(csv)のロード データのサイズ データのカラム 行列から必要な列(カラム)を取り出す 条件にマッチするデータを取り出す 1. DataFrame.queryで取り出す True/FalseのSeries型を指定し、Trueの行だけを取り出す 追記(2017/12/14) 行列から必要な行番号を指定してを取り出す グループ分けと集計 新たな列を追加する 固有値を追加する 他の列を加工して新たな列を作る 他の複数列を加工して新
科学技術計算用言語としての Python そもそもなぜデータ分析などの科学技術計算を Python でやるのでしょうか。主に次の二点によります。 NumPy, pandas, matplotlib など豊富なライブラリが揃っている 汎用性の高いグルー言語として利用できる データフレームを利用した計算とそのグラフ描画 (プロッティング) のみであれば R のほうがどちらかといえば簡単かもしれません。しかし統計解析を汎用性の高い Python で完結させることで様々な分野へのより幅広い応用が可能になります。 NumPy 統計解析の多くはベクトル演算を伴います。 NumPy は高速でメモリ効率の良い多次元配列の実装である ndarray を備えています。プログラミング言語に元から備わっている配列・ハッシュオブジェクトでは到底かなわないような高次元のベクトル演算を可能にします。またファンシーインデ
pythonを使った機械学習の環境構築まとめです。 python (プログラミング言語) pydev (eclipseのpython環境構築プラグイン) numpy (数学関数ライブラリ) scipy (数値解析ライブラリ) matplotlib (グラフ描画ライブラリ) cvxopt (最適化計算ライブラリ) の導入を順に説明していきます。 過去に同系統の記事を書いています。 基本的にはこの記事のみで完結致しますが、 箇所によっては過去記事の方が詳しい場合があります。 わからなくなった場合は過去記事も参照してみて下さい。 <過去記事> Python インストール Pydev インストール matplotlibを使ってグラフを簡単表示 (含Numpy導入) pythonの導入Python Japan User's Group http://www.python.jp
配列:科学技術計算の基本的な道具 並んだ離散的なデータ の頻繁な操作: 実験やシミュレーションでの離散化された時間 測定機器に記録された信号 画像のピクセル Numpy モジュールは以下を可能にします. 上のようなデータの集まりの作成を1度ですませる データ配列のバッチ処理を実現(要素に対するループは不要) データ配列 := numpy.ndarray >>> import numpy as np >>> a = np.array([0, 1, 2]) >>> a array([0, 1, 2]) >>> print a [0 1 2] >>> b = np.array([[0., 1.], [2., 3.]]) >>> b array([[ 0., 1.], [ 2., 3.]])
# 原文:http://www.scipy.org/Tentative_NumPy_Tutorial このチュートリアルを読む前に、Pythonについてちょっとは知っているべきだ。記憶をリフレッシュしたいと思うなら、Pythonチュートリアルを見てくるがいい。 このチュートリアルに出てくる例を試したいなら、あなたのPCに少なくとも Python NumPy はインストールされているべきで、他に入ってると便利なのは: ipython は拡張されたインタラクティブなPythonシェルで、NumPyの機能を探検するのにとても便利 matplotlib があると図表の描画が可能になる SciPy はNumPyの上で動く科学計算ルーチンを沢山用意してくれる 基礎 NumPy の主要なオブジェクトは、同じ型(普通は数)の要素のみから成り、正の整数のタプルで添字付けされた、均質なテーブル(というか多次元
pandas ではデータを 列 や 表形式のデータ構造として扱うが、これらのデータから順番に値を取得 (イテレーション) して何か操作をしたい / また 何らかの関数を適用したい、ということがよくある。このエントリでは以下の 3 つについて整理したい。 イテレーション 関数適用 pipe (0.16.2 で追加) それぞれ、Series、DataFrame、GroupBy (DataFrame.groupbyしたデータ) で可能な操作が異なるため、順に記載する。 まずは必要なパッケージを import する。 import numpy as np import pandas as pd イテレーション Series Series は以下 2つのイテレーション用メソッドを持つ。各メソッドの挙動は以下のようになる。 __iter__: Series の値 ( values ) のみをイテレーシ
NumPyは、科学技術計算を行う、特に行列や多次元配列の計算をするのに便利なPython用の拡張モジュールです。 ですが、数学を使わなくても、NumPyは便利です。 特に、[ [1,2],[3,4],[5,6] ]のような多重リストを使う代わりに、NumPyの配列を使った方が便利な場合があります。 今回は、NumPyの主に配列の使い方について、用例を挙げて紹介したいと思います。 はじめに NumPyは、数学向けのライブラリーではありますが、NumPyの配列は、数学とは関係なく便利に使える部分もあります。 とは言え、ウェブ上のサンプルは数学で使う人のものが多いですし、数学以外で具体的にどう使うのかは分かりにくいのではないかと思いました。 そこで、数学とはほとんど関係ない使い方をいくつか例示して、NumPyの(主に配列の)便利さを紹介するのがこの記事の目的です。 私も数学は得意ではないですし、
転職してから1年とちょっとが経ち、Pythonをメイン言語としてからも同じくらいが経った。最近やっとnumpy/scipyの使い方のコツがわかってきたと思うので、マサカリ飛んでくるのを覚悟でなんか書いてみようと思う。 転職して初めてPythonを使ったというわけではない(実際wafのwscriptとかは書いたことある)が、まあでもほぼ初心者同然だった。学習曲線でいうとPythonはすごく良い言語だと思う。Python本体の言語仕様については、わりとすぐに覚えることができた。だが一方、numpy/scipyについては、そう簡単ではなく習得するにはそれなりに時間がかかったと思う。 ケーススタディ たとえば\(N\times M\)行列\(B\), \( M\times L \)行列\( C \), \( M \)次元ベクトル\(a=(a_k)_{1\leq k \leq M}\)が与えられて
秋山です。 私は主にPythonを使って開発をしているので、以前Pythonの便利なライブラリやフレームワークを紹介する記事を書いたのですが(後でリンク貼りますね)、今回はその記事でも紹介したNumPy(なむぱいと読みます)という数値計算用ライブラリの使い方チュートリアルを書きたいと思います。 NumPyは機械学習やディープラーニングなどを学ぶ上でも前提知識とされることが多いため、これからその辺の分野の勉強をしてみたい人の参考になればと思います。 チュートリアルの実行環境は、ブラウザだけでPythonもNumPyも使えるオンラインのプログラミング実行環境「paiza.IO (パイザ・アイオー)」を使っていきます。 ■NumPyにおける配列 NumPyにおける配列は"ndarray"という形式になっていて、このndarrayはいろいろな機能を持っています。 まず、普通のリストをndarray
「ITエンジニアのための機械学習理論入門」で提供しているサンプルコードに含まれるデータ分析ライブラリ(NumPy/pandasなど)を解説した資料です。 下記の書籍のサンプルコードが理解できるようになることが目標です。 - ITエンジニアのための機械学習理論入門(技術評論社) - http://www.amazon.co.jp/dp/4774176982/ 2015/10/25 ver1.0 公開 2015/10/26 ver1.1 微修正 2016/05/25 ver1.4 subplotの順番を修正 2016/11/15 ver2.0 改訂版公開 2016/11/16 ver2.1 改行幅修正 2017/01/10 ver2.2 微修正 2017/01/12 ver2.3 微修正Read less
主観的な観点からPythonとRの比較した記事は山ほどあります。それらに私たちの意見を追加する形でこの記事を書きますが、今回はこの2つの言語をより客観的な目線で見ていきたいと思います。PythonとRを比較をしていき、同じ結果を引き出すためにはそれぞれどんなコードが必要なのかを提示していきます。こうすることで、推測ではなく、それぞれの言語の強みと弱みの両者をしっかりと理解できます。 Dataquest では、PythonとRの両方の言語のレッスンを行っていますが、データサイエンスのツールキットの中では両者ともそれぞれに適所があります。 この記事では、NBA選手の2013/2014年シーズンの活躍を分析したデータセットを解析していきます。ファイルは ここ からダウンロードしてください。解析はまずPythonとRのコードを示してから、その後に2つの異なるアプローチを解説し議論していきます。つま
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く