KNIME_Tutorial 2025 3回目

1.2K Views

December 16, 25

スライド概要

回帰問題の分類問題への変換
決定木回帰とその応用
推薦システム
Scaling則

profile-image

マテリアルズインフォマティクスチュートリアル

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

KNIMEによるマテリアルズ・ インフォマティクスハンズオン 第三回 2025/12/16版 木野日織 (きのひおり)

2.

教材ファイル Githubからインストールしたフォルダを{prefix}にインストールしたとす る。 {prefix}以下には {prefix}/data/ --- 観測データファイル,新規データファイル {prefix}/data_calculated/ ---観測データファイル,新規データファイ ル(便宜上data/と分けてある。) {prefix}/workflow/ --- ワークフロー保存場所 サブフォルダが存在するはず。

3.

目次 タスク1 タスク2 タスク3 タスク4 タスク5 回帰問題の分類問題への変換を行うワークフロー 説明変数の変換(関数同定問題)と回帰問題を行うワークフロー 決定木回帰とその応用を行うワークフロー 推薦システムのワークフロー Scaling則のワークフロー

4.

行うこと →回帰モデルデータを分類モデルデータに変換して予測分類モデルを作成する こと。

5.

回帰問題と分類問題 ① ② ③ 予測値 Yes ある 閾値 No No 観測値 妥当な回帰モデル 妥当な回帰モデル? ある 閾値 Ye s 妥当な分類モデル、 とできることがある。

6.

二値分類問題の評価指標 病気の検査の場合 Positive/陽性(病気), Negative/陰性(健康) 予測値 観測値 Positive Negative Positive True Positive False Negative Negative False Positive True Negative True Positive (TP:真陽性) 正しく「陽性だ」と判定できたケース False Negative (FN:偽陰性) 本当は陽性なのに見逃してしまったケース(危険) False Positive (FP:偽陽性) 健康なのに「陽性」と誤判定(不要な追加検査が必 要) True Negative (TN:真陰性) 正しく「陰性だ」と判定できたケース(問題なし)

7.

観測データ AB元素からなる二元合金の閃亜鉛鉱構造構造(Zinc Blende: ZB)とウルツ鉱構造 (Wurtzite:WZ)のエネルギー差。 どちらも組成A:B =1:1。様々なA,B元素を取る。 (閃亜鉛鉱構造:A元素のFCC構造+B元素のFCC構造 ウルツ鉱構造:A元素のHCP構造+B元素のHCP構造) Zinc Blende 説明変数 二元合金(A,B)の元素の説明変数 IP,EA, Highest_occ state energy Lowest_unocc state energy, s,pの原子半径 (rs,rp) 'IP_A', 'EA_A', 'EN_A', 'Highest_occ_A','Lowest_unocc_A', 'rs_A', 'rp_A', 'rd_A’, 'IP_B', 'EA_B', 'EN_B‘,'Highest_occ_B', 'Lowest_unocc_B', 'rs_B', 'rp_B', 'rd_B’ 目的変数 エネルギー差 dE 参考文献 Luca M. Ghiringhelli, Jan Vybiral, Sergey V. Levchenko, Claudia Draxl, and Matthias Scheffler, "Big Data of Materials Science: Critical Role of the Descriptor", Phys. Rev. Lett. 114, 105503 (2015) 可視化ソフト:Momma, K., & Izumi, F, “VESTA 3 for three-dimensional visualization of crystal, volumetric and morphology data”, Journal of Applied Crystallography, 44, 1272–1276 (2011). DOI: 10.1107/S0021889811038970. Wurtzite

8.

分類問題とするワークフロー 10_01_ZB_WZ ②Tableの表示 ⑤規格化 ⑦訓練データ での分類モデ ル学習 ⑧損失関数の表示 ⑨分類モデルの線形関数の係 数の表示 ①CSVファイ ルの読み込み ⑫混同行列表示 ⑬分類評価指標表示 ③目的変数(連続 値)をカテゴリー値 (Stable|unstable )に変換 ④Tableの表示 ⑥訓練・テスト データに分割 ⑪分類評価指標計算 ⑩テストデー タに対する分 類モデル予測 ⑭テスト予測値を加えた Tableの表示

9.

カラム値の変換 カラムdEの連続値をカテゴリー値に変換 ①data¥ZB_WZ_dE_rawdescriptor.csv ②エネルギー差dEを “stable”,“unstable”へ変 換 ③同じカラムdEで “stable”,“unstable”を出力

10.

変換後のdE値

11.

Logistic Regression Learner ①Target column: dE ④dE ⑤Prediction (dE) ③カラム名確認 ②ABをExclude側へ

12.

Logistic Regression Learner ①全選択 ②Show Row IDs

13.

行ったこと 回帰問題を分類問題にするワークフローを作成して、 予測分類評価指標値を計算した。 (加重平均しても)F1=0.98程度の妥当な分類モデルが作成できた。

14.

目次 タスク1 タスク2 タスク3 タスク4 タスク5 回帰問題の分類問題への変換を行うワークフロー 説明変数の変換と回帰問題を行うワークフロー 決定木回帰とその応用を行うワークフロー 推薦システムのワークフロー Scaling則のワークフロー

15.

関数同定問題( symbolic regression) 未知の関数 𝑓をデータから推定する問題の総称 マテリアルズインフォマティクスでも関数同定問題 が行われています。 例)地上の物体の落下データから、上向きを正、 初期速度𝑣0 ,初期高さ𝑥0 として時間𝑡の高さ𝑥(𝑡) に対して以下の形を導き出すこと。 1 2 𝑥 𝑡 = 𝑥0 + 𝑣0 𝑡 – 𝑔𝑡 2 二元合金の閃亜鉛鉱構造(Zinc Blende: ZB)とウル ツ鉱構造(Wurtzite:WZ)のエネルギー差データに対 して、参考文献では関数同定問題を行い生説明変数 から3つの非線形な説明変数を作成しています。 |𝐼𝑃 𝐵 −𝐸𝐴(𝐵)| 1. 2. 3. 𝑟𝑝2 (𝐴) |𝑟𝑠 𝐴 −𝑅𝑝 𝐵 | exp(𝑟𝑠 (𝐴)) 𝑟𝑝 𝐵 −𝑟𝑠 𝐵 exp(𝑟𝑑 𝐴 ) ワークフローでこれを行い回帰性能の向上具合を確 認します。

16.

説明変数の変換と回帰問題を行うワーク フロー Step1. (説明変数の変換を行わずに)Lassoモデルの最適hyperparameterを求める。 Step2. 説明変数の変換を行いHyperparamterを最適化されたLassoモデルを学習する。

17.

Lassoモデルの最適hyperparameterを求め るワークフロー概要 10_02_ZB_WZ_regression ①Hyperparameterの 繰り返し定義 ②Hyperparameterの 繰り返しスタート ⑥Hyperparameter繰 り返しの結果まとめ ⑤flow variable alphaをTableに追加 ⑦結果のline plot での図示 ⑧結果のscatter plotでの図示 ⑩結果のTable 表示 ⑨評価指標でソート ③評価「行」作成 ④評価「行」を 「列」に変換

18.

(説明変数の変換を行わずに)Lassoモデ ルの最適hyperparameterを求める ②最終目的:R2で降順ソートされた各alphaに対 して、評価指標の行を持つ表をつくること ①data¥ZB_WZ_dE_rawdescriptor.csv

19.

(説明変数の変換を行わずに)Lassoモデ ルの最適hyperparameterを求める ④flow variable alpha を用いるように設定 ①alphaのとる値 の設定。 log mesh ②alpha でloopを 回す。 ③押す ⑤R2カラムで、 Descendingソート

20.

(説明変数の変換を行わずに)Lassoモデ ルの最適hyperparameterを求める →最大値R2=0.835, RMSE=0.24

21.

説明変数の変換と回帰問題を行うワーク フロー Step1. (説明変数の変換を行わずに)Lassoモデルの最適hyperparameterを求める。 Step2. 説明変数の変換を行いHyperparamterを最適化されたLassoモデルを学習する。

22.

変数変換後Hyperparameterを最適化して Lassoモデルを学習するワークフロー 更に、 ①説明変数の変換を行う。 ②最適なhyperparameterでモデルを作り直す。

23.

変数変換後Hyperparameterを最適化して Lassoモデルを学習するワークフロー 10_03_conversion_regression ②最適なhyperparameter でモデルを作り直す。 ①説明変数の変換を行う。

24.

変数変換後Hyperparameterを最適化して Lassoモデルを学習するワークフロー ①flow variable部 分の設定変 更なし ②最初の行=R2が最も大きい行を選択 ③その行をFlow variableにして Lassoのhyperparameterにする。

25.

変数変換後Hyperparameterを最適化して Lassoモデルを学習するワークフロー ①Expressionを書く ④Expressionを書く ⑤disp1 ②カラム名を書く ⑥Expressionを書く ③数式を追加する場合 ⑦disp2 ⑧Expressionを書く ⑨disp3 ⑩Apply

26.

最適なhyperparameterのflow variableへの変換 ① “Row number” “equals” 1 ②Includesに alpha

27.

変数変換後Hyperparamterを最適化して Lassoモデルを学習するワークフロー 元の16変数から 3変数に減らした が、 𝑅2が0.835から 0.979へ向上した。

28.

行ったこと 16の生の特徴量 'IP_A', 'EA_A', 'EN_A', 'Highest_occ_A’, 'Lowest_unocc_A', 'rs_A', 'rp_A', 'rd_A’, 'IP_B', 'EA_B', 'EN_B‘,'Highest_occ_B’, 'Lowest_unocc_B', 'rs_B', 'rp_B', 'rd_B’ 物理的な意味は? (そこまでは行えていないが、)物理的に正 しい特徴をとらえているとすると妥当な外挿 問題を行えるはず。 文献では最後に3つの説明変数で目的変数の 外挿領域(A=C, B=C, dE=2.68)の予測ができ ることを示している。 関数同定 1. 2. 3. |𝐼𝑃 𝐵 −𝐸𝐴(𝐵)| 𝑟𝑝2 (𝐴) |𝑟𝑠 𝐴 −𝑅𝑝 𝐵 | 外挿領域 exp(𝑟𝑠 (𝐴)) 𝑟𝑝 𝐵 −𝑟𝑠 𝐵 exp(𝑟𝑑 𝐴 ) 結果: 予測「線形」回帰モデルの性能が向上 参考文献 Luca M. Ghiringhelli, Jan Vybiral, Sergey V. Levchenko, Claudia Draxl, and Matthias Scheffler, "Big Data of Materials Science: Critical Role of the Descriptor", Phys. Rev. Lett. 114, 105503 (2015)

29.

目次 タスク1 タスク2 タスク3 タスク4 タスク5 回帰問題の分類問題への変換を行うワークフロー 説明変数の変換(関数同定問題)と回帰問題を行うワークフロー 決定木回帰とその応用を行うワークフロー 推薦システムのワークフロー Scaling則のワークフロー

30.

決定木回帰 =条件分岐を用いた回帰モデル Level=1(if文の階層が1)まで x1<3.2 yes no 観測データ:赤 予測値:緑 y=0.611 (x1,y)のデータ y=-0.722

31.

決定木回帰 Level=2 x1<3.2 yes no x1<3.8 x1<2.7 観測データ:赤 予測値:緑 yes y=0.691 no y=0.180 yes no y=-0.364 y=-0.904

32.

決定木回帰 Level=10まで … … 観測データ:赤 予測値:緑 … ①離散プロットではほぼ点 が重なる。 ②(x1,x2, …, y)のデータに適用可能か? 複数の説明変数がある場合も、 条件分岐に使用する説明変数を選択しながら、 この木を作成する。

33.

Random forest 回帰 観測データ(N) ①訓練データをランダムに「重複あり」でNデータ取り出し」 ④ランダムフォレストの最終予測値は: 𝑇 Nデータイ ンスタンス Nデータイ ンスタンス 異なるサンプル Nデータイ ンスタンス 𝑦ො = 1 ෍ 𝑦ො𝑡 𝑇 𝑡=1 •𝑇 :決定木の本数(左図の場合は100) •𝑦ො𝑡 :t 番目の木の予測値 ②使用する説明変数をいくつか選択して(scikitではdefaultで全部) ③それぞれに分解木モデルを作成する 決定木 モデル1 決定木 モデル2 決定木 モデル100 コメント:同じrandom forest 回帰と呼 んでも、詳細に変種がある。

34.

観測データ MAX相 Mn+1 A Xnの組成式を持つ。 • M: early transition metal • A: カラム13 or 14の元素 • X: C or N とても硬く、かつ電気伝導度が高いことで知られている。 n=2,3,4,... が知られている。n≥3では同じ組成式 でalpha構造とbeta構造がある。 説明変数 - 構成元素M, A, Xの特徴量、組成式としての特徴量(組成比で最大、最 小、平均、標準偏差)を加えている。 - n≥3に対してはalpha, betaに対してdummy変数(adirection, bdirection)を加えている。 目的変数 文献には • 𝜌0 𝜆𝜆 (rho0 lambda lambda): bulk resistivity x mean free path, no kdependent mean free path approximation が2つの近似で計算されている。 𝜌0 𝜆 は細線で線幅が小さくなったとき の抵抗増加のしにくさの指標であり、これは小さい方が良い。 データ取得文献: Kiroubanand Sankaran , Kristof Moors, Zsolt T˝okei,1 Christoph Adelmann, and Geoffrey Pourtois, " Ab initio screening of metallic MAX ceramics for advanced interconnect applications", PHYSICAL REVIEW MATERIALS 5,056002(2021), DOI: 10.1103/PhysRevMaterials.5.056002 alpha-Ti4CdC3 beta-Ti4CdC3 n=3の結晶構造例

35.

Random forest回帰でhyperparameterを自 動決定するワークフロー 1. 全データで回帰モデル作成、性能評価 2. 訓練・テストセット分割して回帰モデル作成、性能評価 目的:両者の評価指標値を比較するため

36.

Random forest回帰でhyperparameterを自動決定す るワークフロー 11_01_randomforest_maxphase ③外れ値の削除 ④(上側)全データで回 帰モデル作成、性能評価 ①(解析時に混乱し ないように)不要な ②目的変数の分布 カラムを削除 確認 ⑤(下側)訓練・テス トセット分割して回帰 モデル作成、性能評価

37.

Random forest回帰でhyperparameterを自動決定す るワークフロー 全データで回帰モデル作成、性能評価 ①すべてのhyperparameter で性能評価 ②最良のhyperparameter を用いた予測と性能評価

38.

Random forest回帰でhyperparameterを自動決定す るワークフロー ②Hyperparameterのループを回す ⑥最適パラメタのflow variableへの出力 ①使用する Hyperparameterの 定義 ⑦最適パラメタを用いたランダム フォレスト回帰モデルを使った学習 ⑧学習されたモデルを使った予測 ⑨回帰評価指標値の出力 ③ランダムフォ レスト回帰モデ ルを使った学習 ④学習されたモデ ルを使った予測 ⑤予測値の可視化(ただし、 最後のhyperparameter) ⑩予測値の可視化

39.

Random forest回帰でhyperparameterを自動決定す るワークフロー 訓練・テストセット分割して回帰モデル作成、性能評価 ①すべてのhyperparameter で性能評価 ③最良のhyperparameter を用いた予測と性能評価 ②訓練・テストデータ セットを作成

40.

データ読み込み、前処理 ②利用しない カラムを除く。 ⑥目的変数<30 ③Includes側の(この図 では見えないが)rho0 lambda lambdaを目的変 数として使用する。 ④一件だけ桁が異なる 値のデータがある。 ①data¥maxphase_property.csv を読み込む。 ⑤誤りではないがRow filter これを除く。 ⑦説明変数をZ-score normalization

41.

回帰モデル訓練と予測、回帰性能評価 ①Materialを除く ②指定しないと ’Prediction (予測値名)‘ となる。 ③rho0 lambda lambda ④Prediction( rho0 lambda lambda)

42.

Hyperparameter最適化(1) ②Param, Start, Stop Type がTable Creatorのカラム名 と対応させる ①使用する Random forest regressionのパラメタを記載 ③Brute Force ④flow variableとTable Creator で定義した名前の対応 seed: randomseed maxLevels: levels minNodeSize: minnodesize nrModels: nmodels コメント:seedは機能し ていないかもしれない。

43.

Random Forest回帰モデルのhyperparemeter 観測データ(N) Nデータイ ンスタン ス Nデータイ ンスタン ス Nデータイ ンスタン ス … ③あるノードのサンプル数 がminNodeSize未満の場合 はmaxLevels未満でも、そ れ以上葉を分割しない。 決定木 モデル1 決定木 モデル2 ①T = nrModels 決定木 モデルT ②条件分岐の 最大深さ: maxLevels …

44.

Hyperparameter最適化(2) [Node Monitor] ①Mean absolute error Minimizedを選択 ②ワークローを実行するとMAEの最小値を与えるパラメタとその時 のMAE値がNode monitorに出力される。 ③全ての変数をflow variableとして使用す るよう設定。

45.

最適なhyperparameterを用いた回帰モデル ①回帰モデル は同じ設定 予測値 観測値

46.

訓練・テストデータに分割した場合 予測値 観測値

47.

回帰評価指標値の比較 全データを用いて回帰して、全データ を用いて性能評価した場合 訓練データを用いて回帰して、テスト データを用いて性能評価した場合 ①𝑅2 = 0.162。大きく 悪化する。 ①𝑅2 = 0.716 ③全データを 用いた場合は、 悪くはないfit ができるが、 予測値 観測値 ④妥当な予測 回帰モデルで はないと思う。 予測値 観測値

48.

行ったこと ハイパーパラメタを最適化するランダムフォレスト回帰モデルワークフローを作成し、 物性データで回帰評価指標を評価した。 全データを用いた場合、 訓練データを用いて回帰して、テストデータで性能評価した場合、 性能評価指標値が大きく異なる場合があります。

49.

目次 タスク1 タスク2 タスク3 タスク4 タスク5 回帰問題の分類問題への変換を行うワークフロー 説明変数の変換(関数同定問題)と回帰問題を行うワークフロー 決定木回帰とその応用を行うワークフロー 推薦システムのワークフロー Scaling則のワークフロー

50.

推薦システム 回帰、次元圧縮、分類、クラスタリングではない。 一般的には、それらを組み合わせた手法 他者の購入履歴から次の購買品の推薦によく用いられる。 (1) 協調フィルタリング(Collaborative Filtering) ユーザーの行動履歴(閲覧・購入・評価)から似たユーザー・似たアイテムを見つけて推薦する方式。 •ユーザー×アイテム行列(例:ユーザーが映画に付けた★評価) •典型的には 行列が疎(sparse)であり、空欄を予測することが目的。 (2) 内容ベースフィルタリング(Content-based Filtering) アイテムの特徴(ジャンル、価格、説明文の embedding など)をもとに似たアイテムを推薦。

51.

協調フィルタリングの問題設定 文献からX a Y1−𝑎 の存在(yes)/非存在(no)を調べた結果。 0.1 0.2 0.3 0.4 0.5 0.6 Na-Y yes yes yes no no no K-Y yes yes ? ? ? ? 物理的知識があると、NaとKはどちらもアルカリ元素なので似ている。した がって、 0.1 0.2 0.3 0.4 0.5 0.6 Na-Y yes yes yes no no no K-Y yes yes yes no no no を予想する。 問題: 数学的に どうやる のか?

52.

低ランク行列による推薦 𝑅の𝑖𝑗成分は Singular value decomposition (SVD): 任意の行列 𝑅を 𝑅 = 𝑈S𝑉 ⊤ に分解できる。 •𝑈:ユーザー固有ベクトル •𝑆:特異値(重要度) •𝑉:アイテム固有ベクトル 𝑆は対角行列、対角項(𝑠𝑖 )は非負値に できる。 つまり、𝑖𝑗成分は 𝑆𝑖𝑗 = 𝑠𝑖 𝛿𝑖𝑗 一般的に𝑠𝑖 は降順(𝑠1 ≥ 𝑠2 ≥ ⋯ ≥ 0)に 並べることができる。 𝑅𝑖𝑗 = ෍ 𝑠𝑘 (𝑈𝑖𝑘 𝑉𝑗𝑘 ) ① 𝑘 行列で書くと 𝑅 = ෍ 𝑠𝑘 𝑊 (𝑘) ② 𝑘 Rを𝑠𝑘 を用いて𝑊 (𝑘) で展開していく形を持つ。 これをKまでで打ち切る。 𝐾 𝑅(𝑘) = ෍ 𝑠𝑘 (𝑈𝑖𝑘 𝑉𝑗𝑘 ) ③ 𝑘=1 = 𝑈𝑆’𝑉 𝑇 𝑅𝑘 を低ランク行列、低ランク近似行列と呼ぶ。

53.

協調フィルタリングを行うワークフロー Step 1. Toyデータを用いた協調フィルタリングを行う Step 2. 物質科学データを用いた協調フィルタリングを行う

54.

観測データ(R) ①0,1を持つ長方形の行列。 0=存在しない、もしくは観測データがない。 1=存在する。 ② 部分は「存在」するではないのだろうか?

55.

KNIMEの行列演算 行列の掛け算A Bの例 KNIME 5.xのWorkflowではunpivotingすること で行列演算が可能ですが、かなり冗長なことを 行います。 そのため、今回、行列演算はPython scriptを用 います。 # 2 つのテーブルを数値行列として扱い # NumPy による高速な行列積を計算し # 結果を KNIME テーブルとして返す import knime.scripting.io as knio import pandas as pd dfA = knio.input_tables[0].to_pandas() dfB = knio.input_tables[1].to_pandas() # --- 行列(NumPy 配列)に変換 --A = dfA.to_numpy() B = dfB.to_numpy() # --- SVD の再構成 --C = A @ B # --- 出力 DataFrame を構成 --dfC = pd.DataFrame( C ) 入出力ポート数は自由に増減できます。 knio.output_tables[0] = knio.Table.from_pandas(dfC)

56.

用語説明 Pivoting/unpivoting wide 形式 long 形式 Name Feature Value A x 1 A y B B Feature Name x y 2 A 1 2 x 3 B 3 4 y 4 pivoting unpivoting KNIME Modern UIではlong形式を計算 に用いる仕様。 今回、行列計算には Python(Numpy)を利用してwide 形式を用いる。

57.

SVDを利用した協調フィルタリングワークフロー ②Sの対角項のみのTable から対角行列を作る。 12_01_SVD_toymodel 𝑆′ 𝑈𝑆’𝑉 − 𝑅 𝑅 S𝑑𝑖𝑎𝑔 𝑉 𝑈 ①SVD分解 K次まで出力 𝑈𝑆′ 𝑉𝑇 𝑈𝑆′𝑉 𝑇

58.

𝑆𝑑𝑖𝑎𝑔 から𝑆’へ変換 (K,1) (K*K,4) (K, K+1) (row, column)=0 for row ≠ column 𝑆𝑑𝑖𝑎𝑔 𝑆′ 非対角row,column のSingular Valueを 0に ↑不要なカラムが入る。 ’row‘,’column‘カラムを作成 (K, K)

59.

SVDを利用した協調フィルタリングワークフロー ④𝑈𝑆′𝑉 𝑇 − 𝑅の降 順でのソート ①Rの可視化 𝑅 𝑈𝑆’𝑉 − 𝑅 ③𝑈𝑆′𝑉 𝑇 − 𝑅 の可視化 𝑈𝑆′𝑉 𝑇 ②𝑈𝑆′𝑉 𝑇 の可視化

60.

ファイル読み込み ①data¥simple_existence.csv ②Has RowIDはチェックしない。

61.

Spark SVDの設定 ① Kの値 ②チェック ③全部選択

62.

存在有無の行列表示 ① ③ ② 元の存在有無を行列形式で表した 低ランク行列 赤部分の存在が推薦され る。 低ランク行列ー元の行列 見やすくするために元画 像との差を取る。

63.

差が大きなセルの行と列の名前を出力 目的:図から読み取るのではなく、具体的にrow, column名を読 み取る。 ②ColumnValuesを降 順(↓)で並び替え ①全部選択 ③値が大きいセル (二次元図では黄 色い部分)を上か ら表示。

64.

低ランク行列と元画像の差 元画像 K=1 K=2 Kを増やすにつれ、低ランク行列が次第に細かい構造を再構成する。 ✓ 観測の初期はK=1で図の大まかな構造を推薦。 ✓ 観測データが集まるにつれKを大きくして細部の構造に対応した物質の推薦をする という戦略をとると良いだろうこともわかる。 K=3

65.

協調フィルタリングを行うワークフロー Step 1. Toyデータを用いた協調フィルタリングを行う Step 2. 物質科学データを用いた協調フィルタリングを行う

66.

物質データ 構造データベースから 例えば、InとPからなる二 元物質を検索すると •InP, F-43m •InP2, R-3m などの構造が見つかったとします。 これは、構成元素、その比率、空間群で分けると formula element1 element2 ratio1 ratio2 spacegro up InP In P 1 1 F-43m InP3 In P 1 2 R-3m {Al, Si, P, Ga, Ge, As, In, Sn, Sb}から成る 二元物質を Crystallography Open Database (http://www.crystallography.net/cod/) から得たデータをまと まます。 次元圧縮をSVDを用いて行うために更に二次元行列に変換します。 行を“element1^element2”、列を“ratio1^ratio2^spacegroup”と いう表記を用いて、該当物質がデータベースに存在したら=1、 存在し無い場合は=0とします。 (観測データが存在しない場合と、観測したが存在しない場合は どちらも0です。) element1, element2, ratio1, ratio2, spacegroupと いう5次元のデータ。比率は更に和が10の整数 比のヒストグラムに変換する。 5次元空間で InP F-43m→セル(In, P, 5, 5, F-43m)=1 InP2 R-3m→セル(In, P, 3, 7, R-3m)=1 となる。 存在・非存在を表示する行列

67.

ファイルの読み込み 12_02_SVD_material ①data¥group131415_div1.csv ②Has RowIDをチェック ③RowIDがelement1^element2 で意味を持つ。

68.

画像の差 元画像 K=10、低ランク行列 低ランク行列ー元の行列

69.

物質存在推薦 ①CODよりデータ数が多いと思われる Atomwork databaseで、 ColumnValuesが大きい推薦物質のうち似た 物質を探す。 差 0.308 0.190 0.122 0.024 推薦物質 Sn0.5As0.5 In0.5Sb0.5 In0.6Sb0.4 In0.2Sb0.8 推薦空間群 R-3m P6/mmm I41/amd R-3m 観測物質 Sn3.6As3 In0.7Sb0.3 In0.5Sb0.5 In0.4Sb0.6 観測空間群 R-3m P6/mmm I41/amd R-3m ✓ 代数的な構造のみからの推薦なので、新規物質を発見で きないかもしれない。 ✓ K=10のみでしたが、Kをtuningした方がよい。 ✓ 五次元から二次元への別の変換の仕方も試すべき。 簡単なので最初にやってみる価値はあるだろう。

70.

参考文献 element1, element2, ratio1, ratio2, spacegroupを、行element1^element2”、列を “ratio1^ratio2^spacegroup”と二次元に分解しましたが、多次元のままテンソル分解するした方 がより妥当な推薦が可能であることを文献1では示しています。 1. “Matrix- and tensor-based recommender systems for the discovery of currently unknown inorganic compounds”, Atsuto Seko, Hiroyuki Hayashi, Hisashi Kashima, Isao Tanaka, Phys. Rev. Materials 2, 013805 (2018), DOI: https://doi.org/10.1103/PhysRevMaterials.2.013805 2. COD http://www.crystallography.net/cod/ 3. atomwork https://crystdb.nims.go.jp/

71.

行ったこと Collaborative filteringを材料データに対して適用するワークフローを作成し、 推薦を行った。

72.

目次 タスク1 タスク2 タスク3 タスク4 タスク5 回帰問題の分類問題への変換を行うワークフロー 説明変数の変換(関数同定問題)と回帰問題を行うワークフロー 決定木回帰とその応用を行うワークフロー 推薦システムのワークフロー Scaling則のワークフロー

73.

Scaling則のワークフロー 1.大規模言語モデルのScaling則 2.SMILES 3.QM9 Dataset 4.問題設定 5.KNIMEでのScaling則評価

74.

大規模言語モデルのscaling則 ①ニューラルネットワークパラメタ数~計算量 GPU コスト・電力消費が高いため、「無 駄に大きなモデル」は非効率 ②データ数が決まっている→パラメタ数を増や しすぎても性能が向上しない。 𝐿(𝑁) 𝑝≫𝑁 効率が良い:20𝑝~𝑁 ③𝑝 ≫ 𝑁:LLMなどの領域では、綺麗なscaling lawに従い、性能向上が見込める。 𝑝≪𝑁 ④𝑝 ≪ 𝑁はNを増やすと、一定値になるのが見 えることが多い。 𝑁 図:大規模言語モデルのニューラルネットワークモデルのパラ メタ数𝑝とTOKEN数N(~データ数)の関係。(文献2)

75.

Scaling則のワークフロー 1.大規模言語モデルのScaling則 2.SMILES 3.QM9 Dataset 4.問題設定 5.KNIMEでのScaling則評価

76.

SMILES 分子例)エタノール CH3-CH2-OH, • 分子を直線状に記述する。 • 分岐を括弧で表す。 • 必要の無いHは書かない。 CH2 CH3 SMILES: CCO

77.

SMILES トルエン • 芳香炭素族を小文字 • 直線にするために切断した炭 素をc1 • (閉じる配置を表すために番 号を1からつける) 最後につ なげる ⑦ SMILES: Cc1ccccc1 C① c1 ② c1 c ③ c ⑥ c ④ c ⑤

78.

SMILES cis-1,2-ジクロロエテン trans-1,2-ジクロロエテン Cl/C=C Cl Cl/C=C/Cl • 二重結合は= • cisとtransを区別できる。

79.

SMILES表記とfingerprint Fingerprint :分子の固定長特徴量 SMILESから変換可能 分子例)エタノール CH3-CH2-OH, 半径0:中心原子の特徴 半径1:隣との原子の関係 半径2:2つ隣との原子の関係 から作成される。 以下、簡単なFingerprint作成例を考える。 SMILES: CCO

80.

SMILES表記とfingerprint:半径0 半径0(中心原子の特徴) エタノール CH3-CH2-OH, SMILES: CCO 図は https://ja.wikipedia.org/wiki/%E3%82%A8%E3%82%B F%E3%83%8E%E3%83%BC%E3%83%AB から取得 Nov. 26, 2025 半径0:中心原子 半径1:隣との原子の関係 半径2:2つ隣との原子の関係 CCO CCO CCO C 1 1 0 N 0 0 0 O 0 0 1 形式電荷0 1 1 1 芳香性フラグ 0 0 0 付加水素数1 0 0 1 付加水素数2 0 1 0 付加水素数3 1 0 0 8 bitsで表すことが可能。つまり CCO = 10010001 CCO = 10010010 CCO = 00110100

81.

SMILES表記とfingerprint:半径1 半径1(中心の隣との原子の関係) CCO CCO CCO 隣がCH3 0 1 0 隣がCH2 1 0 1 隣がCH 0 0 0 隣がOH 0 1 0 隣が芳香環の 側鎖 0 0 0 エタノール CH3-CH2-OH, SMILES: CCO 図は https://ja.wikipedia.org/wiki/%E3%82%A8%E3%82%B F%E3%83%8E%E3%83%BC%E3%83%AB から取得 Nov. 26, 2025 半径0:中心原子 半径1:隣との原子の関係 半径2:2つ隣との原子の関係 5 bitsで表すことが可能。つまり CCO = 01000 CCO = 10010 CCO = 01000

82.

SMILES表記とfingerprint:半径2 半径2 ( 中心の2つ隣との原子の関係) エタノール CH3-CH2-OH, SMILES: CCO 図は https://ja.wikipedia.org/wiki/%E3%82%A8%E3%82%B F%E3%83%8E%E3%83%BC%E3%83%AB から取得 Nov. 26, 2025 半径0:中心原子 半径1:隣との原子の関係 半径2:2つ隣との原子の関係 CCO CCO CCO 2 step先がC 0 0 1 2 step先がO 1 0 0 2 step先がN 0 0 0 3 bitsで表すことが可能。つまり CCO = 010 CCO = 000 CCO = 100

83.

SMILES表記とfingerprint ①半径0, 1, 2のbitsをつなげて書くと全部書くと、 エタノール CH3-CH2-OH, SMILES: CCO ②Bitsの文字表現 図は https://ja.wikipedia.org/wiki/%E3%82%A8%E3%82%B F%E3%83%8E%E3%83%BC%E3%83%AB から取得 Nov. 26, 2025 半径0:中心原子 半径1:隣との原子の関係 半径2:2つ隣との原子の関係 CCO = 010 01000 10010001 CH3、隣がCH2、2つ隣がO CCO = 000 10010 10010010 CH2、隣がCH3とOH CCO = 100 01000 00110100 OH、隣がCH2、2つ隣がC 半径2 半径1 半径0

84.

SMILES表記とfingerprint ①分子のfingerprintは構成原子のbit ORを取る。 CCO = 010 10010 00101000 CCO = 000 10010 01010010 CCO = 100 00110 10001000 -----------------------CCO = 110 10110 11111010 ②この場合16 bitで分子を表現している。 ③細かい特徴を入れればいくらでもbits数は増 える。 ④分子により長さが異なると使いにくいので、 固定長にする。→次ページ

85.

SMILES表記とfingerprint ①固定長の仕方=上位bitsを無視する。 右側の11bits使う CCO = 110 10110 11111010 右側の14bits使う CCO = 110 10110 11111010 ②固定長のbitsにすることをハッシュ化するという。 ハッシュ化すると…  11bitsの場合: 隣がCH,CH2,CH3かの区別がなくなり、2つ隣 の区別がなくなる。(それらが同じ表現にな る。)  14bitsの場合: 2つ隣の区別がなくなる。 →一つのfingerprintで複数の構造を表すことになる。 ③右側のbitほど重要な特徴を入れるように特 徴量を配置する。 分子のSMILESから作るfingerprintは多種 ある。 Morgan fingerprint(FP): Functional Class FP, Extended Connectivity FP, Topological FP, Atom Pair FP, Topological Torsion FP, MACCS Keys, Avalon FP, … ④1024, 2049 bitsなど多くの特徴を用いる。

86.

Scaling則のワークフロー 1.大規模言語モデルのScaling則 2.SMILES 3.QM9 Dataset 4.問題設定 5.KNIMEでのScaling則評価

87.

QM9データセット 機械学習(とくに分子表現学習・GNN・回帰タ スク)のベンチマークとして広く使われている量 子化学計算小分子データセット。 130,000の分子データ。 以下の物性値が含まれる。  双極子モーメント  等方分極率  HOMO/LUMO エネルギー  HOMO–LUMO ギャップ  内部エネルギー  エンタルピー  自由エネルギー  定容熱容量  零点振動エネルギー  電子の空間広がり 例えばPythonでdownload可能。 $ pip install torch $ pip install torch_geometric from torch_geometric.datasets import QM9 root = "./data/QM9" # ダウンロード先 dataset = QM9(root) print(dataset) print(len(dataset)) print(dataset[0]) →./data/QM9/qm9.csv が保存されます。

88.

Scaling則 1.大規模言語モデルのScaling則 2.SMILES 3.QM9 Dataset 4.問題設定 5.KNIMEでのScaling則評価

89.

問題設定 Morgan fingerprint使用:説明変数サイズ(P)が 1024とする。 データサイズ(N)は? N最大 ~130,000 線形モデルを用います。 ① N<Pでは解が一意にも止まらないので penalty termがある線形回帰モデルを用いる。 ②ただし、KNIMEのSpark Ridge回帰にNの大 きさの強い制限あるのでSklearn Lassoを用い る。αは固定する。 問題: 線形回帰モデルで 1. Nを変えると回帰性能は向上するか? 2. どこまで向上するか? そのため、𝑁 ≫ 𝑝の領域で、RMSEやMAEを 𝐿(𝑁) = 𝐿0 + 𝑎 𝑁 −𝑏 でフィットする。 (ニューラルネットワークモデルの𝑁 ≪ 𝑝の領域で はない。)

90.

Scaling則のワークフロー 1.大規模言語モデルのScaling則 2.SMILES 3.QM9 Dataset 4.問題設定 5.KNIMEでのScaling則評価

91.

Scaling則評価ワークフロー 1. データインスタンス数Nを変えて、回帰性能評価指標を得るワークフロー部分 2. べき乗則をfitするワークフロー部分

92.

Scaling則評価ワークフロー 13_01_SMILES_RDkit ②べき乗則をfitする ワークフロー部分 ①Nを変えて、回帰性能評価指標を得るワークフロー部分

93.

Scaling則評価ワークフロー ⑥Loopのパラメ タ作成 ⑦Loopの終了 ⑤結果のファイ ルへの書き出し、 読み込み。 ①データ読み込 み、説明変数作 成 ②サンプル取 得、訓練・テ ストデータ分 割 ③Lassoで訓 練データを用 いた学習、テ ストデータを 用いた予測 ④評価スコ アまとめ 後で結果だけ見 れるようにファ イル保存。

94.

Scaling則評価ワークフロー ④Morgan ⑤ SMILES ⑥Smiles (Fingerprint) ①{QM9をダウンロードした フォルダ}/qm9.csv ②SMILES ③Smiles ⑦1024 ⑧2

95.

データ欠損、bit vector変換 ① smiles (Fingerprint) ② 元のカラムは不要なの で削除する。 ③ bitvectorと書くと bitvector{数字} という複数 のカラムが作成される。 ①全て”Remove Row*” (SMILESに方言かあるか らか)変換できていない行 を削除する。

96.

Loopのパラメタ作成 ③出来上がった Tableを各自確認 ① Seed 1,2,3,4 N毎の回数を増やすため に使用。 (→Row Sampler参照) ④ seed, N ② N 100, 200, … 50000

97.

サンプリング、訓練・テストデータ分割 ③ Relative ④ 70% ①Flow variable からNを選択 ② Samplingが毎回変 わるように Flow variable から currentIteration(もし くはseed)を選択 ⑤ 乱数固定した方が良い。 (値は何でもよい)

98.

回帰モデル・性能評価 ③ 予測値カラム名を確認 ④ GAP ⑤ Prediction (GAP) ① bitvector{N}をす べて選択 ②Lasso hyperparameter: α=0.0001 (p>Nのモデルを一意にするため)

99.

自動パラメタ変更とファイル出力 ⑤ Create Varible:filename (filenameをflow variableと出力するため) ② Generate new RowIDs ③Add iteration column ③ ファイル名選択 ④ Write column header ① seed, N

100.

ファイル読み込み、結果図示 ①Flow variableから filenameを選択 ③N ④ mean absolute error ② Has column header

101.

N vs MAE N vs mean absolute error ① 𝑁~𝑃(= 1024 )でMAEが大きくなる。 ② Nを増やすと下がる領域がある。 これを選択してfitしたい。

102.

自動パラメタ変更性能評価ワークフロー 1. データインスタンス数Nを変えて、回帰性能評価指標を得るワークフロー部分 2. べき乗則をfitするワークフロー部分

103.

スケーリング則fit ③データとfit結果を表示するPython script(scriptは表示しない) ① N >= 2200 ②𝐿 𝑁 = 𝐿0 + 𝑎 𝑁 −𝑏 をfitする𝑃𝑦𝑡ℎ𝑜𝑛スクリプト (scriptは表示しない)

104.

HOMO-LUMO GAP, Scaling law結果 ①より正確なfittingとしてPythonのScikit Ridge回帰で hyperparameterを最適化して回帰性能を評価し、Bayesian fitを実行。(データもPythonで取得している。) MAP 例えば、94% Highest Density Interval (大体±2σ相当)は b: [0.084, 0.42] L0: [0.20,0.46] ②MAEは右図。 R2(N=103 )=0.4 から R2(N=2 × 104 )=0.77へ性能向上。 𝑝 ③理想的には𝐿 𝑁 ~𝐿0 + 𝑂 , 𝑅𝑀𝑆𝐸, 𝑀𝐴𝐸は 𝑁 ~最低値+𝑂(1/𝑁 0.5 )。しかし、あまりそうはならない。 ④右図のデータでは、値のばらつきが多きすぎる。さらに、 がたがたしたカーブになり、データを増やしても、うまく scaling則に従うとも限らない。 𝑁 注意:ある乱数の場合の例です。

105.

HOMO-LUMO GAP, Scaling law結果 問題: 線形回帰モデルで 1. Nを変えると回帰性能は向上するか? 2. どこまで向上するか? 答え: Lassoを用いると MAE(𝑁) = 0.386 + 1.045 𝑁 −0.252 MAE最小値 減衰の様子 注意:ある乱数の場合の例です。 予測回帰性能が悪い。  データ数が足りない?  モデルが悪い? 𝐿0 =データ数が無限大時の値。 Q. 𝐿0 よりMAE最小値を小さくするには? A. 記述子や、モデルを変える。

106.

データを増やすとなぜ予測回帰性能が向上する? 回帰モデルは既存データを用いて、未知データ領域を予測する。 回帰性能が向上する場合は、 ①データが稠密になり、局所的な関数形状をより正確に捉えられる。 (データが少ない場合は高次元の局所的な関数形状が捉えきれなかった。) ②テスト点が訓練データ分布の支持領域内に含まれやすくなり、外挿に依存する割合が減少する。

107.

参考文献 1と2.大規模言語モデルの例がよく知られている。TOKENがデータインスタンス数に対応する。 3.人工合成した画像 データ(化学合成データではない)の例。 4.転移学習の例 1. Scaling Laws for Neural Language Models, Jared Kaplan, Sam McCandlish, Tom Henighan, Tom B. Brown, Benjamin Chess, Rewon Child, Scott Gray, Alec Radford, Jeffrey Wu, Dario Amodei, https://arxiv.org/abs/2001.08361 2. Training Compute-Optimal Large Language Model, Hoffmann, J., Borgeaud, S., Mensch, A., Buchatskaya, E., Cai, T., Rutherford, E., … Sifre, L. (2022). arXiv preprint arXiv:2203.15556. 3. Mikami, H. et al. (2023). A Scaling Law for Syn2real Transfer: How Much Is Your Pre-training Effective?. In: Amini, MR., Canu, S., Fischer, A., Guns, T., Kralj Novak, P., Tsoumakas, G. (eds) Machine Learning and Knowledge Discovery in Databases. ECML PKDD 2022. Lecture Notes in Computer Science(), vol 13715. Springer, Cham. https://doi.org/10.1007/978-3-031-26409-2_29, also https://arxiv.org/abs/2108.11018 4. Scaling law of Sim2Real transfer learning in expanding computational materials databases for real-world predictions, Mikami et al., https://www.nature.com/articles/s41524-025-01606-5

108.

今回行ったこと KNIMEを用いて タスク1 回帰問題の分類問題への変換を行うワークフロー タスク2 説明変数の変換(関数同定問題)と回帰問題を行うワークフロー タスク3 決定木回帰とその応用を行うワークフロー タスク4 推薦システムのワークフロー タスク5 Scaling則のワークフロー を物質データに対して行った。

109.

以上です。 お疲れ様でした。