SFI正式版への道#3 回帰でダメなら、区切ってみる

クレンジングは、データを「整える」もの。新規分析列は、元の列を残したまま、分析の「軸を増やす」もの。SFI正式版では、この新しいブロックとビニング処理を追加しました。本記事は全6回の連載「SFI正式版への道」の第3回となります。
みなさん、こんにちは。Vertysの山本です。
今日は、データを 「加工する」 側の話です。
「整える」と「増やす」は、別の仕事
PoCで、こんな声をいただきました。
「移動平均を取りたい。でも、元の値も残しておきたい」
「電圧と電流を掛けて、電力の列を作りたい」
SFIのクレンジングは、欠損や外れ値を処理して、既存の列を上書きするブロックです。ここに移動平均を入れると、生の値と比べられなくなります。
そこで、元の列を残して、新しい列を追加するブロックを別に作りました。それが新規分析列生成です。
| 演算 | 中身 | 現場での使いどころ |
|---|---|---|
| 移動平均 | 直近N点の平均 | ノイズを抑えて、 傾向だけを見たい |
| 単純平均 | 列全体の平均を全行に | 基準との差を取りたい |
| 差分 | N行前との差・ 比率・変化率 | 前ロットから どれだけ動いたか |
| 累積和 | 先頭からの累計 | 生産数や積算量を追いたい |
| 四則演算 | 列×列、列×定数 | 電圧×電流で電力、 などの物理量を作る |
| ローパス/ハイパスフィルタ | 高い/低い周波数成分を除去 | ゆっくりした変化だけ、 細かい変動だけを見たい |
| ビニング | 連続値を区間に 区切ってラベル化 | 「良・中・悪」のように、 現場の判断の単位で見たい |
生成した列は「温度_MA10」「電圧_mul_電流」のように、何をした列かが名前で分かるよう自動で命名します。3日後に自分で作った列の意味が分からなくなる、という現場あるあるを防ぐためです。
回帰では見えないのに、区切ると見える
PoCで一番多用されたのが、ビニングでした。
品質スコアで回帰分析をかけると、精度がまったく出ない。
ところが「良・中・悪」に区切って分類分析にすると、傾向がはっきり見える。

図:ビニングの効果
左は回帰で見たもの。点がばらつき、決定係数は低いままです。右は同じデータを区切ったもの。約182℃を境に「悪」が急増する段差が見えます。
なぜ、こういうことが起きるのか。理由は3つあると考えています。
| 理由 | 中身 |
|---|---|
| ① 細かい差は、ほぼノイズ | 85.2と85.6の差は、測定のばらつきに埋もれていることが多い。区切れば、意味のある大きな違いだけが残る |
| ② 現場の現象は、なめらかな直線ではない | 「ある温度を超えた瞬間に不良が出る」ような段差は、回帰より分類の方が素直に捉えられる |
| ③ 現場の判断は、もともと区切りでできている | 合格か不合格か、規格内か規格外か。区切って分析すれば、結果がそのまま現場の言葉になる |
回帰で精度が出ないのは、データが悪いからとは限らない。
問いの立て方が、現場の判断の単位と合っていないだけかもしれない。
波形・ロット特徴抽出とは、何が違うのか
よく聞かれるのが、「波形・ロット特徴抽出も新しい列を作るのでは?」という質問です。
違いは、データの「形」を変えるかどうかです。
| クレンジング | 新規分析列生成 | 波形・ロット特徴抽出 | |
|---|---|---|---|
| 目的 | データを整える | 分析の軸を増やす | 波形を、学習できる形に 畳み込む |
| 行の数 | 変わらない | 変わらない | 変わる(波形1本=1行に) |
| 列の数 | 基本的に変わらない | 増える | 特徴量の数だけ並ぶ |
| 元の列 | 上書きする | 残す | 特徴量に置き換わる |
たとえば、溶接1打点ごとに電流波形を1万点取っているとします。移動平均をかけても、1万行は1万行のままです。
波形・ロット特徴抽出は、その1万点から最大値・立ち上がり時間・主周波数などを計算して、「1打点=1行」に変換します。これで初めて、波形の特徴と溶接強度を同じ行で突き合わせ、機械学習にかけられる形になるわけです。
PoCでは、「特徴量の出力が縦持ちだと後工程で使えない。ロットごとに1行の横持ちにしてほしい」というご指摘もいただきました。次のブロックがそのまま受け取れる形で出すところまでが、このブロックの仕事です。
今日のまとめ
- クレンジングは「整える」、新規分析列生成は「軸を増やす」。元の列を残すために、ブロックを分けた
- ビニングで、回帰では見えない傾向が、分類で見えるようになる
- 波形・ロット特徴抽出は、データの形そのものを変えるブロック
どんな問いを立てられるかは、前処理で決まります。
次回は、多目的最適化の話です。最適化の答えを「計算上の最適」で終わらせず、明日の現場で試せる条件にするために、何を積み上げたのかを書きます。
それでは、また次回。






この記事へのコメントはありません。