科学の箱

科学・IT・登山の話題

機械学習

判別式

投稿日:

判別式の手順

  • 散布図をプロットしてみてグループに分けることができるかを検討する
  • 判別式のモデル(線形判別、マハラノビスなど)を検討する
  • データを読み込み判別式テンプレートを作成する
  • 判別式を作成する
  • 判別的中率を計算し判別式が適当であるかを判断する
  • データの予測に用いる

PDCAサイクルで判別式を利用してみる。Pではビジネス上の戦略および経験から適切となる判別式を作成する。Dでは判別式を利用して商品展開などを実施してみる。CではDの結果と判別式の結果を比較する。結果が一致していれば改善の余地がないかを検討する。乖離しているようならば、要因を検討する。AではDに基づいて式を改善したりオペレーションでの対応を検討する。

データの検討

今回のデータは多変量解析がわかった 日本実業出版社を参照している。

まずデータについて散布図を作成してみて、グループに分かれているかを検討する。

> sales <- read.csv("data01.csv")
> sales
   価格.x. 性能.y. 購入フラグ
1        4       6         ○
2        5       7         ○
3        3       6         ○
4        5       5         ○

購入フラグで色分けをして散布図を作成する。

> plot(価格.x., 性能.y., pch=19, col=as.numeric(購入フラグ)+1)

plot

グループに分かれていると判断できたので判別式を計算する。

線形判別式の算出

今回はエクセルのソルバーを利用して判別式を算出する。

テンプレートの作成

excel

線形判別式として z=ax+by+cを考える。

初期値としてa=-1, b=1を考える。(B15,C15)

次にz=ax+by+cをすべてのレコードに対して計算する。(E3~E12)

zの平均が0になるようにcを設定する。このときz=0.2となったのでc=0-0.2とする。

全変動 Stは変動 z^2と合計となる。( SUM(G3:G12) )

群間変動は 購入の観察数x (購入平均z-全平均z) ^2  + 不買の観察数x(不買平均z-全平均z)となる。 ( 5*(E17-E18)^2 + 5 * (E17-E19)^2 )

ソルバーの実行

solbar

ソルバーのターゲットは相関比を最大値にする。よって目的セルの設定は$B$25であり目標値は最大値。

変更する値はa, b, cであるので、変数セルはB15~D15

Zの正負で購入・不買を判断するためにzの平均値=0を条件とする。またzの分散=1とすることでa, bが定まるようにする。分散を指定しないとa, bの比率のみとなる。

ソルバーを実行する。

answer

実行した結果、線形判別式は z=-0.37x + 0.78y – 2.2となり、相関比は60%となった。これは全変動のうち6割が群間変動であることを意味する。

判別得点

判別得点を見てみると一件のレコードを除き正しく判別されていることがわかる。

point

また的中率は 9/10 = 90%となる。

マハラノビスによる判別

3水準の判別式

メタ情報

inarticle



メタ情報

inarticle



-機械学習

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

K近傍法と決定木の比較

One of the most comprehensible non-parametric methods is k-nearest-neighbors: find the points which …

no image

売り上げデータの分析

利益 = 売り上げ – コスト 売り上げ = 客数 x 客単価 コスト ≒ 人件費 + 廃棄コスト 客数 客単価 = Σ 品物i x 購入数 客数を増やす方法 来てもらう方法 安売りキャン …

no image

線形回帰とリッジ回帰を比較する

リッジ回帰はL2ノルムの正則項を導入することで、過学習を防ぐ。この場合過学習を防ぐとは、重みを0の方向に動かすという意味である。実際に線形回帰とリッジ回帰を比べてみて、どのようにモデルが変わるかを確認 …

no image

Pythonではじめる機械学習 – Chap03

3.1 Types of Unsupervised Learning 教師なし学習の例 次元削減: 重要な特徴量のみを使って元のデータを表現する トピック抽出: データを構成する部品を見つける クラス …

no image

make_blobsで分類データを作成する

sklearnで分類学習モデルを構築する際にテストデータが必要になる。手で作成したりあらかじめ用意されたデータを使うこともできるが、make_blobsを使ってランダムデータを作成できる。 sklea …

2014年1月
« 12月   2月 »
 12345
6789101112
13141516171819
20212223242526
2728293031  

side bar top



アーカイブ

カテゴリー