7.3K Views
July 30, 23
スライド概要
タスク1:次元圧縮ワークフロー
タスク2:分類ワークフロー
タスク3:クラスタリングワークフロー
タスク4:Orangeにおける欠損データの補間ワークフロー
タスク5:Orange CSVファイルへの変換ワークフロー
マテリアルズインフォマティクスチュートリアル
(超初心者向け)Orange Data Miningによるマテリアルズ・イ ンフォマティクスハンズオン 第二回 2023/07/30版 木野日織 (きのひおり)
今回行うこと 第一回目のワークフローのつくり方や回帰 の知識を既知として説明を行ないます。 今回は Orange Data Miningを用いて • 回帰 • 次元圧縮 • 分類(classification) • クラスタリング(clustering) を物質データに対して行う。 欠損データの扱いとOrange CSVへの変換につ いても説明する。 分類ワークフロー例
教材ファイル Bitbucketからインストールしたフォルダを{prefix}にインストールする。 {prefix}以下には {prefix}/data/ --- 観測データファイル,新規データファイル {prefix}/data_generated/ --- 作成されるデータの保存場所 {prefix}/python/ --- 関連Python script {prefix}/workflow/ --- ワークフロー保存場所 サブフォルダが存在するはず。
目次 タスク1:次元圧縮ワークフロー タスク2:分類ワークフロー タスク3:クラスタリングワークフロー タスク4:Orangeにおける欠損データの補間ワークフロー タスク5:Orange CSVファイルへの変換ワークフロー
次元圧縮 多次元のデータをより低次元のデータに変換するための手法の一つ。 利点: 手法例 1. ノイズの除去: 圧縮プロセス中に無関係 な特徴やノイズが取り除かれる。この ため機械学習の性能が向上する場合が ある。また,説明変数をまとめること で,説明変数数を減らす。 代数的な構造(共分散)を用いる手法 例: PCA 2. データ視覚化: 人間が理解できる次元 (2Dまたは3D)にデータを変換するこ とで、データパターンや構造を視覚化 できます。 データ間の距離を用いる手法 例:多様体学習
主成分分解(PCA) 分布の長軸から順に座標変換した変数の組み合わせ(変数 軸)を選ぶ。各軸は直交する。 𝑥𝑥2 PCA2 PCA1 主成分が大きい次元(変換された 説明変数)から利用する。 主成分の値から ある次元の寄与率 累積寄与率(=ある次元までの主 成分の和/全部の主成分の和) が評価できる。 𝑥𝑥1
多様体学習 データ間の距離をなるべく保持するように次元圧縮を行う。 MDS: 全距離を用いた多様体学習。 t-SNE: 近距離のみを用いた多様体学習 など ① 多次元空間 ② データ間の距離行列 ③低次元空間
観測データ 鉄構造データ ファイル:{prefix}/data/Fe2_descriptor_Orange.csv 21データインスタンス materials projectから取得した鉄のFCC,BCC,HCP構造を 1. 長周期構造に変換し。 2. 原子位置に微小変異を加え, 3. Behlerの二体対称性関数を用いて説明変数に変換した。 このデータには目的変数は存在しません。 説明変数: Behlerの二体対称性関数のパラメタを用いた変数名 a0.70_rp2.40, a0.70_rp3.00, a0.70_rp3.60, a0.70_rp4.20, a0.70_rp4.80, a0.70_rp5.40 目的変数ではないが, 元構造データ:FCC,BCC,HCP を記載。
観測データファイル ① 元構造名 元構造名+ID ←②meta:メタデータとする ←③元構造から生成 ④微小変異構造から生成 ⑤メタデータ:一般にはデータを説明するデータ。 この場合は説明変数でなく,目的変数でもない変数
2.01.DR_PCA.ows
PCAを用いるワークフロー作成 [File], [Data Table] [Preprocess] [Scatter Plot] [PCA]
ワークフローの説明 A) 観測データをファイル から読み込む。 A) 観測データをファイルか ら読み込む。 B) 観測データを正規化する。 C) 正規化した説明変数を PCAで次元圧縮する。 B) 観測データを 正規化する。 C) 正規化した説 明変数をPCAで 次元圧縮する。
詳細の設定 ①[File]で {prefix}/data/Fe2_descriptor_Orang e.csvを選択する。 ① ② ②[Preprocess]で Normalize Features:Standarize to μ=0, σ2=1を選択する。
観測データの可視化 [Scatter Plot] window ③説明変数 の選択 ④色分けされ た図が表示。 ①[Preprocess]の後 ろの[Scatter Plot]を 開く。 ②Color: polytype Label: polytype と設定。 下の方でShow color regionsをチェック。 ⑤この説明変数の組の場合は BCC,FCC,HCPデータインスタンス が分かれて分布。
説明変数による見え方の違い
[PCA]の設定 [PCA] window ②Componentsを選択 (バーを左右に動かせる。) ③累積寄与率(上), 寄与率(下)の表示 ①[PCA]をダブル クリック 二次元ですでに98%の累積寄与率がある。分布の分散 からは二次元でデータ空間が十分記述ができている。
PCAによる次元圧縮後の可視化 [Scatter Plot] window ③説明変数の選択,PCA1(PCAの一 軸目),PCA2(PCAの二軸目) ①[Scatter Plot (1)] ダブルクリック 説明変数空間の累積寄与率が98%あるの取り方での可視化を 行ったことになる。
2.02.DR_MDS.ows
多様体学習を用いるワークフロー作成 ワークフローの作成 [File], [Data Table] [Preprocess] [Scatter Plot] [Manifold learning]
多様体学習 A) 観測データをファイルか ら読み込む。 B) 観測データを正規化する。 C) 正規化した説明変数を多 様体学習で次元圧縮する。 C)正規化した説明変 数を多様体学習で次 元圧縮する。 A) 観測データをファ イルから読み込む。 B) 観測データをファ イルから読み込む。
詳細設定 ①[File]で {prefix}/data/Fe2_descriptor_Orang e.csvを選択する。 ① ② ②[Preprocess]で Normalize Features:Standarize to μ=0, σ2=1を選択する。
[Manifold Learning]の設定 ① ①Method:t-SNEを選択 ②Metric: Euclideanを選択 ③Perplexity: 近接データ数を選択 する。小さいほど少ない近接デー タ数を選択する。 ④Output: Components=2を選択。 説明変数が二次元の出力になる。 ② ③ ④
[Scatter Plot]の設定 [Scatter Plot] window ① ①Axis x: t-SNE-x Axis y: t-SNE-y を選択する。 ② Color: polytype, Lablel: polytypeを 選択する。 下の方のShow color regionsを チェックする。 ② PCAより異なるpolytype間が分離しているように見える(かもしれない)。
[Manifold Learning]の設定 ① 各自Manifold Learningの設定を 変えて結果を可視化してみて ください。 ② ③ ④
目次 タスク1:次元圧縮ワークフロー タスク2:分類ワークフロー タスク3:クラスタリングワークフロー タスク4:Orangeにおける欠損データの補間ワークフロー タスク5:Orange CSVファイルへの変換ワークフロー
分類(classification) 目的変数がカテゴリ変数である場合の予測値を得る問題です。 カテゴリ変数:数量的な意味を持たない変数です。 問題例) 1. ある閾値以上の性能値を示す材料かどうか。 目的変数:「ある閾値以上の性能値」と「ある閾値未満の性能値」 2. 結晶構造がBCC,FCC,HCPかどうか。 目的変数:BCC,FCC,HCP
分類 二値分類のロジスティック回帰 𝑓𝑓 𝑥𝑥 : 線形回帰モデル, 𝑤𝑤𝑖𝑖 :線形回帰モデルの係数 あるクラスと予測される確率 1 𝑃𝑃 𝑥𝑥⃗ = 1 + exp(−𝑓𝑓 𝑥𝑥 ) 別なクラスと予測される確率は1 − 𝑃𝑃 𝑥𝑥⃗ 確率 O, 予測値 O, O, X, X, X しきい値0.5 データインスタンス 線形関数𝑓𝑓(𝑥𝑥)に対して、 ⃗ 罰則項を含む 1 𝐿𝐿𝑐𝑐𝑐𝑐𝑐𝑐 = C ∑𝑖𝑖 −𝑦𝑦𝑖𝑖 log 𝑃𝑃 𝑥𝑥⃗𝑖𝑖 − 1 − 𝑦𝑦𝑖𝑖 log 1 − 𝑃𝑃 𝑥𝑥⃗𝑖𝑖 + 𝑤𝑤 𝑛𝑛 𝑛𝑛 を最小化する。∑𝑖𝑖 は和の規格化を含む。 Cはハイパーパラメタで,妥当な分類モデルになるように選択する。
分類 予測値 C1 多値分類 One-vs-Rest法:カテゴリ個のモデルを作る。 クラス1(C1)確率: P1 𝑥𝑥⃗ ,それ以外:1 − 𝑃𝑃1 (𝑥𝑥) ⃗ クラス2(C2)確率: P2 𝑥𝑥⃗ ,それ以外:1 − 𝑃𝑃2 (𝑥𝑥) ⃗ クラス3(C3)確率: P3 𝑥𝑥⃗ ,それ以外:1 − 𝑃𝑃3 (𝑥𝑥) ⃗ 最も確率が大きいクラス名を予測値とする。 C1 C2 C2 C3 C3 確率 P3 𝑥𝑥⃗ P2 𝑥𝑥⃗ P1 𝑥𝑥⃗ データインスタンス
分類評価指標 観測値 混同行列 bcc fcc hcp misc 評価指標 予測値 bcc fcc 8 0 1 5 3 2 1 2 hcp 6 6 17 9 misc 0 8 2 33 正答率(Accuracy)=(8+5+17+33)/103=0.61
分類評価指標 観測値 混同行列 bcc fcc hcp misc 個別評価指標 予測値 bcc fcc 8 0 1 5 3 2 1 2 hcp 6 6 17 9 misc 0 8 2 33 再現率(Recall):fcc再現率=5/(1+5+6+8)=0.25 適合率(Precision):fcc適合率=5/(5+2+2)=0.56 𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅×𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃 F1スコア=2 𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅+𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝
分類評価指標 観測値 混同行列 bcc fcc hcp misc 個別評価指標 予測値 bcc fcc 8 0 1 5 3 2 1 2 hcp 6 6 17 9 misc 0 8 2 33 再現率(Recall):fcc再現率=5/(1+5+6+8)=0.25 適合率(Precision):fcc適合率=5/(5+2+2)=0.56 𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅×𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃 F1スコア=2 𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅+𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝
分類評価指標 観測値 混同行列 bcc fcc hcp misc 個別評価指標 予測値 bcc fcc 8 0 1 5 3 2 1 2 hcp 6 6 17 9 misc 0 8 2 33 再現率(Recall):fcc再現率=5/(1+5+6+8)=0.25 適合率(Precision):fcc適合率=5/(5+2+2)=0.56 𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅×𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃 F1スコア=2 𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅+𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝 分類モデルの指標(個別でなく全体の指標)と しては、例えば、加重平均を取る。
観測データ 単元素からなる物質の基底状態の結晶構造データ ファイル:{prefix}/data/ mono_structure_descriptor_Orange.csv 説明変数 min_oxidation_state, max_oxidation_state: min. and max of oxidation state Row, group: row or group of the periodic table s p d f: valence electrion occupation atomic_radius_calculated: calculated atomic radius X(chi), IP, EA : electronegativity, ionization potential, electron affinity 目的変数 1.bcc (blue) 2.fcc (green) 3.hcp (red) 4.misc (black)
2.03.cls_CV.ows
分類モデルを用いるワークフロー作成 以下を作成。 [File] [Proprocess] [Logistic Regression],[Random Forest] [Test and Score]. [Confusion Matrix] [Test and Score]の表示 の都合で[Random Forest]を追加。
詳細の設定 ③[Test and Score] Cross Validation Number of folds: 5 を選択 ①[File] {prefix}/data/mono_structure_ descriptor_Orange.csvを選ぶ。 ① ③ ⑤ ② ④ ②[Preprocess] Normalize Features: Standarize to μ=0, σ2=1 を選ぶ ⑤[Logistic Regression] Regularization type: Lasso(L1) を選択。 ④[Confusion Matrix] Learners: Logistic Regression を選択
ワークフローの意味 A) 観測データ をファイルから 読み込む。 B) 観測データで交差検定に より回帰予測モデルを作成し, あるハイパーパラメタの予測 値と分類性能を得る。 A) 観測データをファイルから読み込む。 B) 観測データで交差検定により正規化関 数を含む分類予測モデルを作成し,あ るハイパーパラメタの予測値と分類性 能を得る。 C) 交差検定の予測値から混同行列を得る。 D) 全観測データで正規化関数を含む Logstic回帰モデルを作る。 C) 交差検定の混同行 列を得る。 D) 全観測データでLogstic回 帰モデルを作る。
ワークフローの意味 A) 観測データ をファイルから 読み込む。 B) 観測データで交差検定に より回帰予測モデルを作成し, あるハイパーパラメタの予測 値と分類性能を得る。 A) 観測データをファイルから読み込む。 B) 観測データで交差検定により正規化関 数を含む分類予測モデルを作成し,あ るハイパーパラメタの予測値と分類性 能を得る。 C) 交差検定の予測値から混同行列を得る。 D) 全観測データで正規化関数を含む Logstic回帰モデルを作る。 C) 交差検定の混同行 列を得る。 D) 全観測データでLogstic回 帰モデルを作る。
Windowの表示 [Logistic Regression]でハイパーパラメタ(C)を変化させて分類性能の変化を確認する。 [Logistic Regression],[Test and Score],[Confusion Matrix] windowを見えるように配置する。 [Confusion Matrix] window [Test and Score] window [Logistic Regression] window
ハイパーパラメタを変えて分類性能を確認 する
ハイパーパラメタを変えて分類性能を確認 する
Logistic回帰の係数 [Logistic Regression]の後ろの[Data Table] window C=25での係数の表示 ① ② 値がバーで表示される。
2.04.cls_CV_newfeatures.ows 追加部分
ワークフロー作成 追加 widget [Data Tabe] [Feature Constructor], [Select Columns]
[Feature Constructor]の設定 ④ ①newを押す。 ③ ②Numericを選ぶ ⑤ ③X1:=が表示される。 X1は 変更可能な変数名です。 ④でX1をabs_bcc<return>で 修正。 ⑤abs_bcc:=に修正された。 ④では無く⑤が修正された ことを確認。
関数の定義 abc_bcc:=の具体的な関数を定義します。 ③ ① ①Select Functionで absを選択 ③Select Featureで bccを選択 ② ④ ⑤ ⑥ ②abs()が表示される。 ④abs(bcc)と表示される。 ⑤<return>を押す。 ⑥abs_bcc := abs(bcc)と表示。 ⑦右下のInvalid expressionも消える。 ⑦
全ての関数の定義 ①同様にabs_fcc, abs_hcp,abs_misc変数を定義します。 ① ③Sendを押す。 ② ②エラーが出ていないことを確認してください。
[Select Columns]の設定 ③出力しないカラムを 左側に移動させます。 ③ ①出力されな いカラム ②出力される カラム
係数の絶対値の表示 [Select Columns]の後ろの[Data Table] window ①
Logistic回帰の係数 C=25での係数の絶対値が大きい説明変数を以下に記す。カッコ内が符号を含めた値。 Bcc: atomic_radius_calculated(3.3),min_oxidation_state(-2.9) Fcc: row(2.1), d(1.2), Z(1.1) Hcp: p(-4.4) それぞれの分類モデルがかなり異なる。 このままでは解釈ができません。回帰モデルの説明時にように上の説明変数間に何か関係があるのでは, と想像することができる。それに対して,データ解析学側からは次に説明する距離を用いた説明変数間 の関係を見る,などができます。加えて,物性物理化学の知識を用いた解釈ができれば十分にマテリア ルズ・インフォマティクスの研究になるでしょう。 しかし,これ以上は立ち入らない。
目次 タスク1:次元圧縮ワークフロー タスク2:分類ワークフロー タスク3:クラスタリングワークフロー タスク4:Orangeにおける欠損データの補間ワークフロー タスク5:Orange CSVファイルへの変換ワークフロー
クラスタリング 教師データ(ラベル)が存在しないデータから構造やパターンを見つけ出す手法。 ① クラスタ間に関係が無い ② クラスタ間に関係がある 例)K-Means 例)階層クラスタリング データをk個のクラスタに分ける。 クラスタを階層的に分けます。 距離を用いる。 各クラスタの中心(セントロイド)はその クラスタ内の全データポイントの平均で計 算され、各データポイントは最も近いセン トロイドのクラスタに割り当てられます。 結果としてクラスタの中心から等方的な分 割になる。 距離を用いる。 全てのデータポイントを個々のクラスタと して始め、最も似ているクラスタを繰り返 し結合する。 データ間の距離と,クラスタ間の距離の2 つの距離定義がある。
クラスタリング 教師データ(ラベル)が存在しないデータから構造やパターンを見つけ出す手法。 クラスタ間に関係が無い クラスタ間に関係がある 例)k-Means 例)階層クラスタリング データをk個のクラスタに分ける。 クラスタを階層的に分けます。 距離を用いる。 各クラスタの中心(セントロイド)はその クラスタ内の全データ点の平均で計算され、 各データ点は最も近い中心のクラスタに割 り当てられます。 結果としてクラスタの中心から等方的な分 割になる。 距離を用いる。 全てのデータ点を個々のクラスタとして始 め、最も似ているクラスタを繰り返し結合 する。 このため,データ間の距離と,クラスタ間 の距離の2つの距離定義がある。
2.05.DR_CPA_kMeans.ows
ワークフローの作成 ② [File], [Data Table] [Preprocess] [Scatter Plot] ① [PCA],[k-Means] ①②{Transformed Data}-{Data}と接続する。
観測データ 次元圧縮で用いた鉄構造データ BCC,FCC,HCPの3つの構造がありました。 クラスタリングを行うとどうなるのか。
詳細の設定 ①[File]で {prefix}/data/Fe2_des criptor_Orange.csvを 選択する。 ③[PCA]で • Normalize Variablesを選択しない。(正 規化は[Preprocess]に任せる。) • Components:2を選択する。 ③ ① ② ② ②[Preprocess]で Normalize Features:Standarize to μ=0, σ2=1を選択する。 ④[k-Means]の前に[Preprocess]があるのは[PCA]で変換されると高次元の説明変 数では分散が小さいくなるので,再度正規化する必要があるかもしれない。 ⑤どのような [Preprocess]を行うのが 妥当かは後で評価する。
ワークフローの説明 A) 観測データを読み込む。 B) 観測データを正規化する。 C) 正規化した観測データをPCAで次元圧 縮する。 D) 次元圧縮した観測データを正規化する。 E) 次元圧縮後正規化した観測データをkMeans法でクラスタリングする。 C) A) B) D) E)
[k-Means]の設定 ①k-Means法ではクラスタ数を予め与えるが, ②シルエットスコアにより妥当なクラスタ数をデー タから決定することもできる。 ここでは②を用いて妥当なクラスタ数を自動的に決 定する。 そのために,③Number of ClustersでFromの方を チェックして,2から5に設定する。(鉄結晶データ の場合はクラスターが3とわかっているのでその範 囲に設定して,クラスター数=3が選ばれることを 確認する。 ④Normalize columnsをチェックしない。(チェック されると入力データがStandardizeされる。今は正規 化は[Preprocess]が行ないます。) ⑤シルエットスコアから選ばれたクラスタ数が灰色 で表示される。クラスタ数が3が自動選択される。 [k-Means] window ③ ④ ⑤
クラスタリング結果の可視化 ②Axis x: PC1, Axis y: PC2を選択する。 ③Color: Cluster, Label:polytypeと選択,Show color regionsをチェック。 ④クラスタ(色),とpolytype(文字)が同時に表示される。 [Scatter Plot (1)] window ① ② ④ ③ ①[k-Means]の後ろの [Scatter Plot]を開く。 ⑤このデータの場合は元々のpolytypeと各クラスターが一致
[PCA]次元と正規化の関係 [PCA]の次元を変えてクラスタリング結果を調べてください。 ③[Scatter Plot]でもPCA1 vs PCA2次元空間で polytypeがうまく分離できない。 ①[PCA] で5出力次元を選択する。 ②[k-Means] で5クラスター が選択される。 ④クラスタリング結果は観測データ の次元にしばしば大きく依存する。
[PCA]次元と正規化の関係 この場合はk-Meansの入力の正規化を行 わない場合は3クラスターになります。 ② ① ①[PCA]の後ろの[Preprocess (1)]を開く。 ②Normalize Featuresを削除する。 ③ ③3クラスター
次元圧縮と正規化とクラスタリングの関係 ワークフロー上の二つの[Preprocess]で正規化を使う/使わないと 変化させてクラスタリング結果を各自調べてみてください。 次元圧縮と正規化を適切に行ったほうが妥当なクラスタリングが 行える場合が多いようです。 (必ずではありませんが)分類問題も問題毎に次元圧縮と規格化 適切に使用すると性能が向上します。
クラスタリング 教師データ(ラベル)が存在しないデータから構造やパターンを見つけ出す手法。 クラスタ間に関係が無い クラスタ間に関係がある 例)k-Means 例)階層クラスタリング データをk個のクラスタに分ける。 クラスタを階層的に分けます。 距離を用いる。 各クラスタの中心(セントロイド)はその クラスタ内の全データポイントの平均で計 算され、各データポイントは最も近いセン トロイドのクラスタに割り当てられます。 結果としてクラスタの中心から等方的な分 割になる。 距離を用いる。 全てのデータ点を個々のクラスタとして始 め、最も似ているクラスタを繰り返し結合 する。 データ間の距離と,クラスタ間の距離の2 つの距離定義がある。
2.06.hierarchical_clustering.ows
階層クラスタリング ワークフローの作成 [File] [Preprocess] [Distances], [Hierarchical Clustering]
詳細の設定 ①[File]で {prefix}/data/Fe2_descriptor_Orange.csvを選択する。 [Distances] window ③ [Distances]を開く。 ④ ① ⑤ ② ②[Preprocess]で Normalize Features:Standarize to μ=0, σ2=1を選択する。 ④Compare:でRowsを選択(行方向ベクトル間, つまりデータインスタンス間を比較。) ⑤Distance Metricで Euclideanを選択。
[Hierarchical Clustering]の設定 [Hierarchical Clustering] window ④ ② ③ ① [Hierarchical ④距離が近いクラス Clustering]を開く。 ② LinkageでSingleを選ぶ。 ③ Annotationsで keyを選ぶ。 ターの順につないだ 樹形図が表示される。
階層クラスタリング図 全てのデータ点を個々のクラスタと して始め、最も似ているクラスタを 繰り返し結合する。 ①図の横軸は距離:右から左へ値が 大きくなる。 ②ある距離でそれまで右側にあった 二つのクラスターを一つのクラスタ に結合した。 ③BCC,FCC,HCPクラスタがそれぞれ, 大きな距離で初めて一つになる。 ④データに合ったクラスタリングが 行えている。 ①
Linkageの説明 helpによるLinkageの説明 ② Help window ①押す Single linkage computes the distance between the closest elements of the two clusters Average linkage computes the average distance between elements of the two clusters Weighted linkage uses the WPGMA method Complete linkage computes the distance between the clusters' most distant elements Ward linkage computes the increase of the error sum of squares. In other words, the Ward's minimum variance criterion minimizes the total within-cluster variance.
Linkageの設定 Linkage=Weighted Linkage=Average Linkage=Weighted Linkage=Complete
階層クラスタリングの距離の選び方 Q.[Distances]の距離と[Hierarchical Clustering] の距離はどう選べば良いのでしょうか。 Single Linkageのbcc部分を拡大 A.階層クラスタリングはinteractiveな手法で す。 距離の選び方:解析者が見たい見え方にな るように選びます。 鉄結晶データの場合はBCC,FCC,HCP構造が最 後に一つになりました。これは解析者が見 たい見え方です。この見方の元に各構造や クラスタがどれだけ近いのかをデータ解析 学の観点で明らかにすることができます。 ③ ① ② 相対的に ①bcc_05が元構造のbccに最も距離が近い構造。 ②bcc_01,02,04間が距離が近い構造。 ③bcc_00,03は距離が遠い構造。
目次 タスク1:次元圧縮ワークフロー タスク2:分類ワークフロー タスク3:クラスタリングワークフロー タスク4:Orangeにおける欠損データの補間ワークフロー タスク5:Orange CSVファイルへの変換ワークフロー
欠損データの扱い [Linear Regression] window 1.03.linear_regression_preprocessed_model.ows ① ①defaultのpreprocessが使われていない という印。 ③説明windwowが開 きます。→次ページ ②警告の簡単な 説明が表示され ます。
[Linear Regression]のdefault preprocess 回帰のdefaultでは • 目的変数値が無い行は除く。 • 説明変数値がなければ説明変 数毎に欠損値を平均値とする。 • sklearn.preprocessing.OneHotEn coderはdummy variableのフラ グベクトルに変換する。 このため,Preprocessorとして [Preprocess]をつないでいなけれ ば,データに欠損が合っても動 作する。 defaultのPreprocessを使わない場 合は[Preprocess]をつなぐ。
欠損がある観測データ ①欠損が無い元観測データとして {prefix}/data/ReCo_Tc_fix_descriptor_Orange.csv ({prefix}/data/ReCo_Tc_descriptor_Orange.csvを一部修正したデータ) ② 重要な説明変数値が欠けている場合 ④ ファイル: {prefix}/data/missing_major_ReCo_Tc_fix _descriptor_Orange.csv 主として重要な説明変数値が4つ欠 損しているデータ。 TCが大きな値C_R,C_T,vol_per_atomが 4つ欠損している。 ③ 重要でない説明変数値が欠けている場合 ⑤ ファイル: {prefix}/data/missing_minor_ReCo_Tc_fix_de scriptor_Orange.csv 重要でない説明変数データが4つ欠損し ているデータ。 TCが大きな値のZ,Szが4つ欠損している。
欠損の補完方法 欠損はあるが大量の観測データがある場合: 欠損の補完方法 簡単には,列ごとに 1. 平均値を代入する。 2. (正規化後に)ランダムに数値を代入す る。 欠損をなんとかできれば回帰に使える膨大な データとなる。この観測データをなんとか利用 したい・・・。 観測データに対して𝑦𝑦~𝑓𝑓 𝑥𝑥⃗ という「相 関」を回帰で求めるように,欠損していな い観測値と欠損値の「相関」を𝑥𝑥 𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚 ~𝑔𝑔(𝑥𝑥⃗ 𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝 )と予測できるのでは? 3. 回帰モデルを用いる。
2.07.impute.ows 上部 下部
詳細の設定 2.07.impute.owsの上部 ②Standarize ① {prefix}/data/missing_ major_ReCo_Tc_fix_d escriptor_Orange.csv ③Fit interceptをチェック。簡単の ためNo regularizationを選択 ④簡単のため[Test and Scores]で なく[Predictions]を選択。
[impute] ①全体設定(上部) ②補完(impute)しない。 ③平均値(回帰), 最頻出値(カテゴリ変数) ⑦個別設定(下部) ④今のOrangeでは,欠損値を目的変数にして 回帰を行ない最も距離が近いデータインスタ ンスの値を代入する回帰を行ないます。 ⑤ランダム値 ⑥欠けたセルがある行を削除する。 データインスタンス数は減る。
ワークフローの設定 ① ② ①[impute]の条件を変えて ②[Predictions]の回帰評価指標値を比較して 結果を表で可視化する。
Model-based imputerの場合 残念なことに, ②xが表示される。 [Linear Regression]でモ デルはできているので すが,[Predictions]がう まく動作しない。 ① ③一度[Save Data]でCSVに直す。 {prefix}/data_generated/imput ed_major_ReCo_Tc.csv ①
Model-based imputerの評価指標値 2.07.impute.ows下部分 ①[Save Data]で保存し たCSVファイル: {prefix}/data_generated/imputed _major_ReCo_Tc.csv ②xが無い。 動作している。 回帰評価指標値を得ることができる。
結果の見方 [Impute] Method RMSE(K) MAE(K) R2 ① ② 欠けが無い 元観測データ Remove instances with unknown values 欠損がある行を削除。データインスタ ンス数は元より少ない。 ③ ④ ⑤ Average 列の平均値で補完 Random values ランダム値で補完 Model-based 回帰モデルで補完
結果 ① ② C_Rなど重要度が高い説明変数を欠損値にした 観測データ ③ ④ S4fなど重要度が比較的低い説明変数を欠損値に した観測データ [Impute] Method RMSE(K) MAE(K) R2 [Impute] Method RMSE(K) MAE(K) R2 欠けが無い 89 66 0.957 欠けが無い 89 66 0.959 Remove instances with 90 unknown values 67 0.953 Remove instances with unknown values 90 67 0.953 Average 129 100 0.910 Average 88 66 0.958 Random values 132 102 0.906 Random values 89 67 0.957 1-NN 91 70 0.955 1-NN 89 67 0.957 ③欠損データインスタンスを除くと評価指標値 は悪化しない。 ④重要な説明変数に欠損があると評価指標値が 悪化する。 どの程度悪化するのかは問題に依存する。 ⑤欠損データインスタンスを除く場合,補 完方法が違う場合の影響を受けにくく, ⑥評価指標値が悪化しない。
(参考)[impute]を利用する場合・しない場合の 予測値比較 missing_major_... 横軸:全観測 データを用いた 予測値 縦軸:欠損値を 補完した予測値 赤:欠損値が あったデータイ ンスタンスの予 測値 missing_minor_... average average Modelbased Modelbased
2.08.impute-comparison.ows 使用したワークフローの上部のみ表示 [Merge Data] を 用いている。 (説明は行わない。)
[impute]利用について 説明変数の重要性の観点でのみ議論しましたが, 希土類Co合金の磁気相転移温度𝑇𝑇𝐶𝐶 の文献データの場合は 1. C_R, C_T, vol_per_atomは構造由来の説明変数であり,それられの間には関係がある。 2. Z,S4fなどは希土類元素に対する説明変数であり,同じ希土類元素を用いた他の構造・化学式 のデータインスタンスの値と全く同じである,つまり一部欠損していても,他のデータインス タンスの同説明変数を用いることができる。 という観測データの特徴も関係しているでしょう。 観測データによっては回帰性能が大きく悪化する場合があるということにご注意ください。
目次 タスク1:次元圧縮ワークフロー タスク2:分類ワークフロー タスク3:クラスタリングワークフロー タスク4:Orangeにおける欠損データの補間ワークフロー タスク5:Orange CSVファイルへの変換ワークフロー
Orange CSVファイルへの変換 ① Orangeの識別子が入っていないCSVファイル ② Orangeの識別子が入っているCSVファイル {prefix}/data/x15_sin_Orange.csv {prefix}/data/original_csv/x15_sin.csv ③ ④ ③continuous=連続変数 ③class=目的変数 の2つの行が加わっただけ。
CSV変換ワークフロー ②Orangeの識別 子を含むcsvファ イルに書き出す。 ①Orangeの識別 子が入っていな いcsvファイルを 読み込む。 B_1_File_format.ows フォルダ ①で読み込む:{prefix}/data/original_csv/ --- Orangeの識別子が入っていないcsvファイル ②で書き込む:{prefix}/data --- Orange csvファイル
変数型と役割の変更 [File] window ③ yを 連続値の 目的変数と するには Type:numeric Role: target と変更する。 ① カテゴリ量 連続値 文字列 時間 ② 説明変数 目的変数 メタデータ 出力しない
変数型と役割の変更 ①設定を変更し終え たら最後に[Apply]ボ タンを押す。
引用 単元素結晶:WikipediaとPymatgen 鉄結晶:Materials Project Database, Jörg Behler and Michele Parrinello, PRL 98, 14641 (2007).
今回行ったこと Orange Data Miningを用いて • 回帰 • 次元圧縮 • 分類(classification) • クラスタリング(clustering) を物質データに対して行った。 欠損データとCSV変換について も説明した。
以上です。 お疲れ様でした。