タグ

ブックマーク / blog.livedoor.jp/norikazu197768 (27)

  • Python:回帰分析(予測値の付与) : 分析技術とビジネスインテリジェンス

    回帰モデルから予測値を付与する方法についてまとめる。実務では数理的に真面目なモデルを構築するケースも多いが、現象把握のための統計モデルを作成し、そのモデルをそのまま使って簡易なシミュレーションをするということも多い。 なので、どのように統計モデルを構築するか、どのようなスコア用データを準備するかを把握さへしておけば、簡易なシミュレーションにはすぐに対応できる思う。ちなみに、念のため確認したが、スコア用データは学習用データと同一形式(カラム構成)である必要があるようだ。 ■ライブラリ >>> import Orange #Orange Data Mining - Fruitful & Fun ■データ >>> housing = Orange.data.Table('./data/housing_r.txt') #データはここから確認できる #Orangeの基のデータヘッダー部は3行だがカ

  • Python:回帰分析 : 分析技術とビジネスインテリジェンス

    今回はPythonによる回帰分析(OLS:Ordinary Least Squares)の実施方法をまとめる。 まずは最小2乗法に基づく重回帰式の作成と結果表示方法を取り上げる。 ライブラリの使い分けについては調査のしやすさを優先しているが、回帰分析については統計モデルはOrange、予測モデルはscikit-learnでやろうかなと考えている。 来はすべてを統一したいが、後者ライブラリは回帰分析の結果表示で、p値や偏回帰係数の出力が無いようだし、ステップワイズの実施方法も見当たらなかった。しかし、予測モデルとなれば、その精度と堅牢性を高めることが目的となり、p値などに言及しなくても説明責任は果たせるので、逆にscikit-learnのシンプルさが生かせると思っている。 ■ライブラリ >>> import Orange >>> from padnas import * ■データ >>>

    yuiseki
    yuiseki 2012/08/19
  • Python:決定木による予測値の生成 : 分析技術とビジネスインテリジェンス

    前回、前々回とモデル構築、モデル評価の方法をまとめたので、今回は選択モデルによる予測値の生成方法についてまとめたい。 通常、予測値は顧客番号などのキーと共に出力し利用すると思うが、ここでは学習用データセットに再結合することとしたい。深い意味はないが、手続きの整理と予測値に基づく集計など必要な場面はある、と考えたためそうした。 モデル構築、評価、予測値の生成はOrangeを用いているが、データセットはPandasでやると個人的に決めているのでOrange2Pandasのデータ変換をしている点はご留意ください。 ■ライブラリ >>> import Orange >>> from pandas import * ■ スコア用データ >>> adult = Orange.data.Table('./data/adult.txt') ■予測値の生成 >>> learner = Orange.clas

    yuiseki
    yuiseki 2012/08/18
  • Python:カイ2乗検定と可視化 : 分析技術とビジネスインテリジェンス

    今回はカイ2乗検定の実施に加え、結果の可視化方法までをまとめる。Pythonでのカイ2乗検定の実行は「Python Data Analytics:質的変数の基礎統計」を参照していただくとして、以下では可視化のために準備したコードと一連の実行スクリプトを記す。データは連続変数と質的変数が混在しているadult_sampleというtab区切りのデータで、基属性(年齢や性別、職業区分や収入区分など)のデータである。 ■ライブラリ >>> from pandas import * ■自作関数(拝借したものも一部含む) pyworksは自分がpythonを起動しているパス ●pyworks/lib/stats/chisquare.pyを準備 ●pyworks/lib/visualization/graph.pyを準備 >>> from lib.stats.chisquare import * >>

  • 散布図やカイ2乗検定等の使い方 : 分析技術とビジネスインテリジェンス

    これまではPythonを用いた散布図やBox-Plotやカイ2乗検定などの実施方法を個別にまとめてきたが、ここではこれらの主な使用シーンをまとめる。基的には説明変数と目的変数との関係調査に用いる。説明変数間の把握も大切だが、やはりターゲットとの関係に多くの意識を使っている。 ■基礎統計(料理でいう仕込みや消毒)  ●連続変数を対象にヒストグラムを作成   ➡解釈に耐える十分な分布かを確認   ➡外れ値がないか、あれば当該生データを目検  ●質的変数を対象に度数分布表(ピボットテーブル)を作成   ➡解釈に耐える十分な分布かを確認    ➡度数僅少なカテゴリの併合など    ※どうせ解釈できないし、してはいけないのだから。 ■ターゲット変数と説明変数の関係調査(まさにメインの料理中) <ターゲット変数が質的変数の場合>  ●連続変数とターゲット変数のBox-Plot図を作成   ➡ターゲッ

  • Python:RadViz : 分析技術とビジネスインテリジェンス

    Pythonデータ分析ライブラリのpandas-v0.8.1でRadVizが使用できるようになった。RadVizはバネの原理を利用した可視化手法で、他の変数と比べてある変数の値の相対位置が大きければ、その変数の方向に引き込まれる。ちなみに、pandasはデフォルトでデータを正規化処理しており、方法は最小値からの差をレンジで除したものだった。 ※Radvizとは ※Orange(Pyhton based Data Mining Tool)より ■ライブラリ >>> from pandas import * >>> from pandas.tools.plotting import * >>> import matplotlib.pyplot as plt ■データ >>> read_table('./data/adult.txt') #32,561件 ■分析用データ加工 #adultデータ

  • Python:決定木の作成 : 分析技術とビジネスインテリジェンス

    Pythonを用いたデータマイニング事例として決定木の作成をまとめる。 これまでの事例は、ある変数とある変数の一対関係が中心だった。それに対し手法は、ある目的変数に対し複数の説明変数がどのように組み合わさった関係があるのかを探索するための手法である。 決定木の強み•弱みは以下のページが参考になる。 http://scikit-learn.org/stable/modules/tree.html   上記ページはpythonのデータマイニングライブラリのscikit-learnのもので、 機能の多様さでいえばこれが一番良さそうに感じる。 ただし、結果の可視化方法まで含めた調査がスムースにいかなかったため、 機能の数はやや劣るが内容は十分にあるOrangeライブラリを用いた例を紹介したい。 scikit-learnは精度勝負の時には自由度と種類があるので良いと思う。 また可視化の際、Grap