「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>ビジネス インテリジェンス(BI)]] -[[戻る>BI / AI]] --[[CRISP-DM>データマイニング(DM)- CRISP-DM]] --Excel --[[KNIME>データマイニング(DM)- KNIME]] --[[Python>データマイニング(DM)- Python]] --[[Python - DL>データマイニング(DM)- Python - DL]] --[[DataSet>データマイニング(DM)- DataSet]] *目次 [#xb918e99] #contents *概要 [#i5cdd2d8] Excel。専用ツールではないので機能としては少ない。 *詳細 [#d8de71aa] **インストレーション [#f044dbb9] Excelのインストール **基本操作 [#y9ce9fd7] ... ***初期化 [#d2096809] Excelアドイン「ソルバー」を追加など。 ***データ読込 [#gcf8af57] ... **[[CRISP-DM>データマイニング(DM)- CRISP-DM]]上で利用 [#sc31b289] ***データの理解 [#yac62630] -説明変数と目的変数の表を用意し、 -[[CRISP-DMのデータの理解>データマイニング(DM)- CRISP-DM#m9ad14ec]]を行う ***データの準備 [#i09941f9] -データのクリーニング -データの構築 -データの統合 ***モデリング [#b5232632] -[[単回帰分析>#xdad39b9]] -[[重回帰分析>#w3d2aa1a]] -[[決定木分析>#s7f73298]] -[[ロジスティック回帰分析>#ffa2eaef]] -[[主成分分析>#ma4701c2]] -[[クラスタ分析>#j9d3b049]] ***評価 [#t61a0130] 自身で評価値を計算する必要がある。 ***展開 [#kca98d7b] -Excelを配れば良い? -ただし、 --カナリ手の込んだワークシートが必要。 --ワークシートの使い方のマニュアルが必要。 **手順(モデリング) [#b999cf4d] ***[[単回帰分析>統計解析#s616f38f]] [#xdad39b9] -まずデータから散布図を作成する。 -散布図中の1つのプロット上で右クリックしメニューを表示し、~ [近似曲線の追加]を選択し[近似曲線のオプション]で線形近似を選択、 -続いて、 --[グラフに数式を表示する]と --[グラフにR-2乗値を表示する]に >チェックを入れる。 -回帰式と決定係数(R2乗値)を表示できる。 -外れ値は、外れ値のプロットを選択し右クリックして、~ [データの吹き出しを追加]を選択しX, Y座標値を表示し、~ 座標値を確認して、今回の当該値を元データから削除する。 ***[[重回帰分析>統計解析#yb74e330]] [#w3d2aa1a] -[データ分析]から[回帰分析]を選択 -[入力Y範囲]と[入力X範囲]を指定して[OK]ボタンを押下。 ***[[決定木分析>統計解析#lcaf7a28]] [#s7f73298] -はじめに属性毎に結果をクロス集計する。 --実測値の表 --列総計列を持つ --行総計行を持つ --データの総計セルを持つ -上記のクロス集計表を変換する。 --[[期待度数>統計解析#d9b76532]]の表 --[[カイ二乗(X^2)値>統計解析#d9b76532]]の表 -自由度を算出する。~ = (COUNTA(行要素名の範囲) - 1) * ((COUNTA(列要素名の範囲) - 1) -[[P値(有意確率)>統計解析#j018ff00]]を算出する。~ 以下のいずれかの方法で算出可能。 --= CHITEST (実測値の範囲, 期待度数値の範囲)~ --= CHIDIST (SUM(X^2値の範囲), 自由度)) -[[P値>統計解析#j018ff00]]が小さい(≒ X^2値の大きい)属性で分岐させ、~ 「分岐後のデータ群」に対し別々に上記の処理を繰り返し、木を成長させて行く。 ***[[ロジスティック回帰分析>統計解析#ge055200]] [#ffa2eaef] ※ [[情報量>機械学習(machine learning)#z83dd630]] -事前に表を組んでおく(列追加)。 --定数項 :オール1に設定しておく。 --推定値 :ロジスティック関数 p(z)~ = 1 / (1 + 𝑒^−𝑧)~ = 1 / (1 + EXP(-SUMPRODUCT([[偏回帰係数>統計解析#we736db5]]の範囲, 説明変数の範囲)))~ --対数尤度 : = (結果 * LN(推定値) ) + ( (1 - 結果) * LN(1 - 推定値) )~ -表外の項目に関しては以下。 --逸脱度:対数尤度の合計 * -2 --(変数個の)[[偏回帰係数>統計解析#we736db5]]:初期値は0に設定しておく。 -[データ分析]から[ソルバー]を選択 --目的セル ---「逸脱度」を選択する~ ---目標の値を最小値にする(ような「[[偏回帰係数>統計解析#we736db5]]」を求める。 --変化させるセルに「[[偏回帰係数>統計解析#we736db5]]」の範囲を選択する --[解決]をクリックする ***[[主成分分析>統計解析#f800acad]] [#ma4701c2] -事前に表を組んでおく(列追加)。 --平均との差 := 標本の項目毎、平均値との差を算出。 --平均との距離:= (平均との差1^2 + 平均との差2^2 + ...)^0.5 --主成分得点 := SUMPRODUCT(固有ベクトルの範囲, 平均との差の範囲) / 固有ベクトルの和 --実測値から新しい軸への垂線長の2乗(≒ 失われる情報量):= 平均との距離^2 - 主成分得点^2 -表外の項目に関しては以下。 --失われる情報量の合計値 := SUM(失われる情報量の範囲) --(変数個の)[[分散>統計解析#m656dd23]] := VARP(標本の項目毎の範囲) --主成分得点の[[分散>統計解析#m656dd23]] := VARP(主成分得点の範囲) --(変数個の)固有ベクトル:初期値は1に設定しておく。 --固有ベクトルの和 := (固有ベクトル1^2 + 固有ベクトル2^2 + ...)^0.5 --固有ベクトルの和の目標値:1 --累積寄与率 := 主成分得点の分散 / SUM((変数個の)分散) -[データ分析]から[ソルバー]を選択~ --目的セル ---「失われる情報量の合計値」を選択する ---目標の値を最小値にする(ような「固有ベクトル」を求める。 --変化させるセルに「固有ベクトル」の範囲を選択する --制約条件の対象に「固有ベクトルの和 = 固有ベクトルの和の目標値」を指定。 --[解決]をクリックする ***[[クラスタ分析>統計解析#df844c06]] [#j9d3b049] -手順~ ① データを準備する。~ ② クラスタ数を指定する。~ ③ クラスタ初期値をランダムに計算する。~ ④ 各標本に計算したクラスタ値を指定する。~ ⑤ 各クラスタの中心を算出する。~ ⑥ 各標本と中心からの距離を算出する。~ ⑦ 各標本を最も近いクラスタに再分類する。~ ⑧ 再分類で変化のあった標本数を集計する。~ ⑨ 変化が収束するまで④~⑨を繰り返す。 -数式の例(k平均法の場合) --重心 の計算:=AVERAGEIF(グループ値の範囲, 当該グループ番号, データの範囲) --距離 の計算:=SUMXMY2(データの範囲, 重心値の範囲) --再分類の計算:=MATCH(MIN(距離値の範囲), 距離値の範囲, 0)~ ※ 0は等しい最初の値を検索 -最適なグループ数はエルボー法などで求める。 --クラスタ内距離二乗和:計算した距離の二乗した値をクラスタ毎に合計 --上記を折れ線グラフにしたとき、肘の部分が最適なクラスタ数になる。 *参考 [#d04457b6]