幸か不幸か、ビジネス系のデータの多くは時系列データです。売上データもホームーページのアクセスログもセンサーデータも時系列データです。 時系列データを手にしたとき、どのようなデータなのか見てみたい、ということは多々あります。 多くの場合、折れ線グラフを描き傾向を掴む、ということをやります。 折れ線グラフを眺めると、トレンド(上昇傾向や下降傾向)や季節性などが見て取れるケースがあります。 そこで、サクッとトレンドや季節性などを掴む手法がSTL分解(Seasonal Decomposition Of Time Series By Loess)です。 STL分解(Seasonal Decomposition Of Time Series By Loess)を実施することで、元データをトレンド、季節性、残差に分解することができます。 元データ = トレンド + 季節性 + 残差 STL分解(Seas
はじめに Pythonのライブラリ、NetworkXの使い方を、Qiitaの投稿に付けられたタグの関係グラフの作成を例にして説明します。 NetworkXを使うと、下に示すような、ノードとエッジで構成されるグラフを描くことができます。 実行環境 Windows 10 Python 3.5.2 (Anaconda) Jupyter notebook 元データの取得 Qiitaは、投稿を取得するAPIを公開しているので、簡単に投稿を取得することができます。 JSON形式で返ってくるデータを下記コードでPythonの辞書に変換します。 なお、非認証の場合、1リクエストごとに最大100記事、1時間ごとに60回の制限があるので、 今回は、100*60 = 6000 記事を対象とします。 import requests import json items = [] params = {"page":1
(pixabay.comより) 1.背景とか Random Forest[1]とは、ランダムさがもつ利点を活用し、大量に作った決定木を効率よく学習させるという機械学習手法の一種です。SVMなどの既存の手法に比べて、特徴量の重要度が学習とともに計算できること、学習が早いこと、過学習が起きにくいこと(追記注釈1)などの利点が挙げられます。Kinectの姿勢推定に使われているらしいです。 最近、Random Forestをカジュアルに使う例が多く(特にうちの研究室)、一部パラメータやら出力やらがわからない人も多いと思います。使い方はTJOさんの資料[2]を読んでもらえれば理解できると思うし、詳細は波部先生の資料[3]をよんでもらえればわかると思います。 それで、いろいろな日本語の資料をいくら読んでも、Random Forestがもつ特徴の1つである、特徴量の重要度の詳細に関してはほとんどノータッ
Janome は Pure Python で実装された日本語の形態素解析ライブラリ。 形態素解析というのは文章から意味をもった最小の構成単位となる形態素を取り出すことをいう。 他の日本語の形態素解析ライブラリは Python から使えてもバインディングが提供されているだけでドキュメントがイマイチだったり、あるいはインストールが大変だったりということも多々あるんだけど Janome はそんなことがない。 インストール インストールは実に簡単。 pip を使ってさっくりできる。 $ pip install janome 使ってみる 使い方も至ってシンプルで janome.tokenizer.Tokenizer さえ知っていればいい。 Tokenizer#tokenize() メソッドに日本語のユニコード文字列を渡すだけで解析ができる。 解析結果はリストで返ってくる。 >>> from jano
修正履歴 2016/2/19 コードの修正・必要なファイルの更新 2016/2/19 トラブルシューティングの追加 はじめに そもそもWindowsでなぜ?という話があると思いますが、理由は一つ。Windowsには強力なIDEであるVisual Studioがあるからです。 コード補完、スニペット、デバッグ・・・・多くのメリットがあるIDEですが、いかんせんWindowsでの環境構築には難所が多く、Python関係だとビルドの問題で詰まることが多いようです。 理由は様々ですが、Unixのコマンドが通用しなかったり、ファイルパスの書き方が違ったりといったことがあげられます。 今回は、そんなハードルを乗り越え、自然言語処理屋さん御用達、MeCabのPythonライブラリを入れてみようという話です。 MeCabって? MeCabは、形態素解析ツール。形態素は意味の通る単語の最小ブロックといった感
ipython notebookを使って出版されたらしいPython for Financeという本を読みました。 numpy, scipy, pandas, PyMC3をはじめとしたPythonの数値計算、解析系のパッケージを使った金融工学の計算事例と自作ライブラリについての紹介になっています。 Python for Finance: Analyze Big Financial Data 作者: Yves Hilpisch出版社/メーカー: Oreilly & Associates Inc発売日: 2014/12/27メディア: ペーパーバックこの商品を含むブログを見るhttp://shop.oreilly.com/product/0636920032441.do https://books.google.co.jp/books?id=7tzSBQAAQBAJ&printsec=fron
データを教師なしで変換する行列分解手法、主成分分析(PCA: Principle Component Analysis)、独立成分分析(ICA: Independent Component Analysis)、スパースコーディング(SC: Sparse Coding)の比較。 行列分解手法の明確な定義は知らないが、ここではデータを表すベクトルの集合を横に並べた行列をとして、基底を表す行列と係数のを表す行列の積、 に変換する手法とする。これはすなわち、元のデータをの列にあたる基底の線形和、 で表現することを意味する。はデータの基底で表される空間での表現に相当することになる。 ここでが決まっていれば、を求めるのは線形の逆問題(が正則な正方行列であればその逆行列をにかけてやれば良い)となるが、行列分解問題では双方を同時に求める問題となる。自由度も高くなり、、は一意には決まらない。したがって、、に
いきなり自分でハードル上げてみました(笑)。ちなみに何故単純パーセプトロンを最初に持ってきたのか?というと、id:echizen_tmさんのブログ記事でも触れておられる通り 機械学習には大きく分けて「識別関数」「識別モデル」「生成モデル」の3つの種類がある。このなかで識別関数は確率を使わないので初心者が入門するのに最適。 識別関数で有名なのはSVM(Support Vector Machine、サポートベクターマシン)。名前を聞いたことがある人も多いと思う。そこで早速SVMを学ぼうとすると敷居が高くて挫折しがち。 実はSVMは(大雑把に言うと)パーセプトロンという基礎的な識別関数に「マージン最大化」と「カーネル関数」という考え方を導入したもの。なので機械学習入門者は最初にパーセプトロンを学ぶのが良いと思われる。 それゆえ、実際に僕も以前Matlabで糞コード書きながら勉強してた時はやはり単
少し間が空いてしまいましたが、今回は実践編。第15回で紹介したパーセプトロンを実装してみましょう。 環境はこれまでと同じくPython/numpy/matplotlibを用います。インストールなどの準備は第6回を参照してください。 パーセプトロンの復習 第15回で紹介したパーセプトロンの学習アルゴリズムをもう一度簡単に振り返っておきましょう。 2次元平面上のデータ点(xn,yn)(n=1,…,N)に正解ラベルtn∈{+1,-1}が与えられているとします。パーセプトロンは、次の予測式の結果がすべて正解になるようにパラメータa, b, cを決めるものでした。 そのようなパラメータは、次の手順で求めることができます。 データの中からランダムに1点(xn,yn)を取り出し、f(x,y)に代入すると、現在のパラメータを用いた予測値として+1または-1が得られます。それが正解tnと一致する場合は何もせ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く