サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Wikipedia
blog.livedoor.jp/norikazu197768
Python Orangeを用いたステップワイズ法についてまとめる。パラメータの設定だけでできるので非常に簡単だ。回帰分析の基本的な実施方法は前回の記事を参照ください。 ■ライブラリ >>> import Orange >>> from pandas import * >>> import matplotlib.pyplot as plt #Orange - Data Mining Fruitfuk & Fun ■データ >>> housing = Orange.data.Table('./data/housing_r.txt') #データはここから確認できる #Orangeの基本のデータヘッダー部は3行だがカラム名のみの1行でも問題ない。 #その場合は、最後のカラムが目的変数に設定される。 ■モデルの設定と学習 >>> learner = Orange.regression.linear
201211月16 Python:pandas0.9.1がリリース Python Pandasのv.0.9.1がリリースされましたね。新機能は以下のページで参照できます。 http://pandas.pydata.org/pandas-docs/stable/whatsnew.html 今回のバージョンUPは、バグフィックとロジック強化がメインのようです。機能強化は地味ですが、データをソートするときカラムごとに昇順・降順を指定できるようになったこと、エクセルのシートとカラムレベルで連携できるになった点が良いですね。 おしまい タグ :PythonPandasデータ操作 コメント数:0 コメント カテゴリ:分析技術 by norikazu197768 201211月1 Python:データ操作Tips(その4) データフレーム同士の結合処理時の留意点と対応策について記したい。数値変換可能な
2012年10月06日16:47 by norikazu197768 Python:データ操作Tips(その1) カテゴリ分析技術 norikazu197768 Comment(0)Trackback(0) これまで主に分析手法の観点から書いてきたので、今回は視点を変えデータ操作の観点からまとめたい。まずはこれまでの記事で使った操作をまとめたい。 pandas : http://pandas.pydata.org/ orange : http://orange.biolab.si/ pyvttbl : http://code.google.com/p/pyvttbl/ ■TSVファイルの読込 #Pandas >>> from pandas import * >>> adult = read_table('./data/adult.txt') #Orange >>> import Or
2013年07月12日14:15 by norikazu197768 一般化線形モデル(離散確率分布版) カテゴリ分析技術 norikazu197768 Comment(0)Trackback(0) OLS(Ordinary Least Square)は、目的変数(応答変数)の分布を正規分布と仮定しているが、たとえば顧客ごとの購入金額は0以上の整数のように、解析対象が本仮定を満たさないケースは多い。そこで本仮定を一般化し、正規分布以外も扱えるようにしたものが、一般化線形モデルである。 モデリングにおいては、目的変数の確率分布とリンク関数の2つの設定が必要となる。確率分布は、離散分布と連続分布に大別される。リンク関数の逆関数は説明変数を変換し、確率や非負実数など目的変数が取り得る範囲に値を変換してくれる。もう少し形式的に言えば、リンク関数によって変換された目的変数は、説明変数の一次結合で表現
4月29 Vensim:システムダイナミクス カテゴリ:分析技術 システム科学は様々な自然現象や社会現象の複雑さに焦点を当てる。20世紀の学問を高度に専門化・分化させ得た要素還元主義の補完的・批評的立場をとるもので、その表現手段の一つがシステムダイナミクスだと認識している。システムダイナミクスの代表事例は、経済成長の限界をエネルギーの観点から洞察した成長の限界など。Vensimは価格的にもマニュアル的にも個人での導入の敷居が低いように感じた。 システムダイナミクスの特徴は、因果構造を視覚的に表現できること、その中にループ構造(鶏と卵)が含められること、因果の時間遅れを表現できることである。このような特徴を利用すれば、たとえば、新規顧客(フロー)、既存顧客(ストック)、顧客流失(フロー)などを広告効果や口こみ、製品ライフサイクル、競合動向などと絡めてモデル化しシミュレーションしたくなる方は多
2月20 ランダムフォレストによる分類予測 カテゴリ:分析技術 Python Orangeを用いたランダムフォレストによる分類予測の一連の操作をまとめる。ランダムフォレストについて以前書いた記事はこちら。 データの読み込みからモデル構築・保存まで。 # Library ######################################## import Orange import pickle ######################################## # Set the data data = Orange.data.Table("./data/adult.txt") # Set the learner tree = Orange.classification.tree.TreeLearner() forest=Orange.ensemble.forest
1月12 Pyomo:数理最適化モジュール カテゴリ:分析技術 数理最適化モジュールPyomoの環境構築メモとチュートリアル事例の紹介。 ■Pyomo ドキュメント:https://software.sandia.gov/trac/coopr/wiki/Documentation ダウンロード:https://software.sandia.gov/trac/coopr/downloader/ ■インストール 環境:Max OS X ver10.7.5 ダウンロード:unix版をダウンロード インストール:解凍フォルダのなかの..scr/coore/setup.pyを実行(python setup.py install) ※上記の実行でその他のサブフォルダも一括インストールされた その他:GLPK(数理最適化のソルバー)のインストール(参考) ■ConcreteModelの記述例 以
1月6 ランダムフォレストの評価と変数別寄与度 カテゴリ:分析技術 今回はランダムフォレストによるモデル構築と変数別の寄与度の表示方法をまとめる。高い予測精度が期待され、多数の説明変数が扱え並列処理が可能、そして各変数の予測への寄与度がわかると言われれば素敵な手法と思えてくる。 自分はCRMの中でも顧客行動理解を主戦場にしているので、精度追求よりも各変数の予測モデルへの寄与度を利用することが多い。もちろん回帰でも可能だが、カテゴリカル変数、連続変数を問わず定量化してくれるのは有難い。 特徴選択そのものだけだと、変数を除去した影響、つまり何かしらの問題の予測モデルの説明力がどこまで残っているのかを知るには別途作業をしなければいけない。そういう手間が省けるということもある。 以下にOrangeを用いたランダムフォレストの評価、各変数の寄与度の表示をまとめた。参考として分類は通常の決定木(ランダ
1月3 SimPy:the Bank - Several customers but a single queue カテゴリ:分析技術 前回は銀行訪問客が独立した複数のカウンターを訪れるモデルをまとめた。今回は訪問客がひとつの列を作り、空いたカウンターを訪れるモデルについてまとめる。本事例はSimPyのチュートリアルからの紹介で、リンク元はこちら。 ■ライブラリ SimPyシミュレーション関連一式と指数分布に従う乱数生成のためexpovariateの読込み from SimPy.Simulation import * from random import expvariate, seed ■モデル要素 指数分布に従うランダムな経過時間ごとにCustomerを生成するSourceクラスと、銀行を訪れ一列に並びサービスカウンターを訪れるカスタマークラスから構成される。single queue(
前回の記事で機械的に選択されたモデルは、非定常なデータに当ててしまったものなので瑕疵があると思われる。その確認として2つの調査を実施した。ひとつは前回作成のモデルに対して、基本的なモデル診断を実施すること、もうひとつはデータを学習用データと検証用データに分けて評価してみることだ。前者の確認は過去の記事で一度実施していることだが、復習も兼ねて前者の調査からまとめたい。 ■ライブラリ >>> import numpy as np >>> from pandas import * >>> import statsmodels.tsa.stattools as stattools >>> from statsmodels.tsa import arima_model >>> import matplotlib.pyplot as plt >>> from pylab import * ■データ >
今回は新しく見つけたライブラリの紹介と、これまで取り上げてきたライブラリの用途別整理を。まずはライブラリの紹介から。 ■pyvttbl http://pyvttbl.googlecode.com/hg/doc/_build/html/index.html ピボットテーブル、基礎統計量の取得、散布図やヒストグラムの作成など、Pandasとの共通点は多い。違いは、Pandasは時系列分析のためのデータ加工や、SQLライクなデータ処理機能が充実していること、pyvttblは分散分析やカイ2乗検定などの統計手法が準備されていることだろうか。アンケートデータの集計や分析は、Pandasよりもpyvttblの方が相性が良いと思った。プロット機能はこちらの方が少し親切な印象。基本、自分はRDB人間なのでPandasをベースにこちらを補完ライブラリにしたいと思った。 ■Scatter Matrixの比較
Python pandasとstatsmodelsを用いた時系列分析についてまとめる。pandasは欠損値の処理や移動平均の算出に、statsmodelsはARIMAなど時系列解析の実施に用いるとよさそう。以下の内容について順次取り上げていきたい。 ●単純移動平均 ●自己相関関数(ACF:Auto Correlation Function) ●偏自己相関関数(PACF:Partial Auto Correlation Function) ●自己回帰過程:AR(p) ●自己回帰移動平均過程:ARMA(p, q) ●自己回帰和分移動平均過程:ARIMA(p, q, d) ●多変量自己回帰過程:VAR(p) ●状態空間モデル ARIMAまでがひとつの系列のみを対象とした分析。VARはARの多変量版で、ある系列を予測するのに他の系列のデータも活用する。状態空間モデルは、観測方程式と状態方程式(真の
今回はPython Orangeを用いたアソシエーション分析についてまとめる。アソシエーション分析は、商品購買においてユーザがどのような組み合わせをしているかを探索する。そのため商品アイテム数が多い場合、情報量が圧縮され後工程の解釈がスマート化される。 分析結果は所謂、集計結果と変わらない。なので、ただ本分析結果を出しても喜ばれる可能性は少ないのではないだろうか。興味を抱いてもらえる比較軸などを設定の上、ルール抽出をするのが良いと思う。 ■ライブラリ >>> import Orange >>> from pandas import * ■データ形式 一レコード一バスケットの横持ち形式。たとえば、ユーザの併買分析であれば、あるレコードはある顧客の購買商品一覧を表す。重複はさせない。 >>> market_basket = Orange.data.Tabel('./data/market_ba
インテリジェンスの配布に有効な技術として、可視化技術(Visualization)の進歩が著しい。先日、人工知能学会のセミナーに参加し、D3(Data Driven Documentation)の豊富な表現力に触れ、その思いが一段と強くなった。海外ではデータジャーナリズム(Data Journalism)が、職種として成立しつつあるように、いかに伝えるかという点で日本よりも何歩も先を進んでいる。 この図を用いれば、どのようなことを表現できるだろうか? 上図では、外部の円形部が4つに分割されている。たとえば、これを時計回りにA国からD国と読んでみよう。そしてその外周の長さはハッキング攻撃にあった回数としてみる。A国はA国内から攻撃をもっとも受け、次にC国から受けている。一方、C国はB国から最も攻撃を受け、次に自国内からの攻撃が多いと読むことができるだろう。 他の解釈として、たとえば、顧客の
これからの記事の作成目標を立てるため、これまでの記事を整理した。これまではデータが収集されていることを前提に、それをどう処理するかといった観点から記事を書いてきた。これからは分析手法に加え、そもそもどうやってデータを収集するか、そして分析処理した結果をどう見せるかといった点も深めていきたい。また当然、分析はインテリジェンス活動の手段であって目的ではない。分析を目的化せず、より良い意思決定のツールとするための考察も深めたい。 データ操作と基礎統計 連続変数の基礎統計 散布図の作成 ヒストグラムの作成 Radviz Parallel Coordinates 質的変数の基礎統計 カイ2乗検定と可視化 データ操作Tips(作成予定) 統計解析とデータマイニング事例 回帰分析 回帰分析(ステップワイズ法) 回帰分析(予測値の付与) ロジスティック回帰分析 ポアソン回帰 一般化線形モデル(作成予定
今回はPythonによる回帰分析(OLS:Ordinary Least Squares)の実施方法をまとめる。 まずは最小2乗法に基づく重回帰式の作成と結果表示方法を取り上げる。 ライブラリの使い分けについては調査のしやすさを優先しているが、回帰分析については統計モデルはOrange、予測モデルはscikit-learnでやろうかなと考えている。 本来はすべてを統一したいが、後者ライブラリは回帰分析の結果表示で、p値や偏回帰係数の出力が無いようだし、ステップワイズの実施方法も見当たらなかった。しかし、予測モデルとなれば、その精度と堅牢性を高めることが目的となり、p値などに言及しなくても説明責任は果たせるので、逆にscikit-learnのシンプルさが生かせると思っている。 ■ライブラリ >>> import Orange >>> from padnas import * ■データ >>>
前回、前々回とモデル構築、モデル評価の方法をまとめたので、今回は選択モデルによる予測値の生成方法についてまとめたい。 通常、予測値は顧客番号などのキーと共に出力し利用すると思うが、ここでは学習用データセットに再結合することとしたい。深い意味はないが、手続きの整理と予測値に基づく集計など必要な場面はある、と考えたためそうした。 モデル構築、評価、予測値の生成はOrangeを用いているが、データセットはPandasでやると個人的に決めているのでOrange2Pandasのデータ変換をしている点はご留意ください。 ■ライブラリ >>> import Orange >>> from pandas import * ■ スコア用データ >>> adult = Orange.data.Table('./data/adult.txt') ■予測値の生成 >>> learner = Orange.clas
20128月3 Python:決定木の作成 Pythonを用いたデータマイニング事例として決定木の作成をまとめる。 これまでの事例は、ある変数とある変数の一対関係が中心だった。それに対し本手法は、ある目的変数に対し複数の説明変数がどのように組み合わさった関係があるのかを探索するための手法である。 決定木の強み•弱みは以下のページが参考になる。 http://scikit-learn.org/stable/modules/tree.html 上記ページはpythonのデータマイニングライブラリのscikit-learnのもので、 機能の多様さでいえばこれが一番良さそうに感じる。 ただし、結果の可視化方法まで含めた調査がスムースにいかなかったため、 機能の数はやや劣るが内容は十分にあるOrangeライブラリを用いた例を紹介したい。 scikit-learnは精度勝負の時には自由度と種類があ
Pythonを用いたデータマイニング事例として決定木の作成をまとめる。 これまでの事例は、ある変数とある変数の一対関係が中心だった。それに対し本手法は、ある目的変数に対し複数の説明変数がどのように組み合わさった関係があるのかを探索するための手法である。 決定木の強み•弱みは以下のページが参考になる。 http://scikit-learn.org/stable/modules/tree.html 上記ページはpythonのデータマイニングライブラリのscikit-learnのもので、 機能の多様さでいえばこれが一番良さそうに感じる。 ただし、結果の可視化方法まで含めた調査がスムースにいかなかったため、 機能の数はやや劣るが内容は十分にあるOrangeライブラリを用いた例を紹介したい。 scikit-learnは精度勝負の時には自由度と種類があるので良いと思う。 また可視化の際、Grap
このページを最初にブックマークしてみませんか?
『分析技術とビジネスインテリジェンス』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く