ゴム製品のメーカーが加硫成形の条件・材料のロットの受入れ検査の値・工場の気温の記録から Python でロットごとの不良の率を予測し、検査を厚くするロットと材料のロットの使い方の候補を出す
ゴム部品の成形ロットごとの成形の条件、材料のロットの受入れ検査の値、工場の朝の気温と湿度から、Python でその日のロットごとの不良の率を予測します。不良の率の高そうなロットを、検査を厚くする候補と材料の使う順の候補として出します。
- 連携・自動化
- Python
- 対象業界
- 製造
- 対象部門
- 品質管理/生産
- 対象業務
- 内容確認・チェック/集計・分析
- 主な課題
- 判断に時間がかかる/属人化している/確認ミスが多い
- AIで行う処理
- 予測
- 主な効果
- 判断支援/品質標準化/属人化解消
- 導入難易度
- ★★★★★
- 実装レベル
- 本格構成
- 費用感
- 個別開発(大)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 毎朝、品質管理課の担当が生産管理の仕組みからその日の成形ロットの計画(品番・プレス・材料のロット・数)を書き出す
- 材料のロットごとに、受入れ検査の値と練った日を確かめる
- 係長が、品番ごとの過去の不良の出方と、材料の値、その日の気温を見比べる
- 不良が出そうなロットに印を付け、抜き取りの数を増やす、初物を係長が見る、と決める
- 成形と検査が終わり、不良の数がロットごとに検査の記録に入る
- 不良の多かったロットは、翌日以降に原因を調べる
- 自動毎朝7時に、Python がその日の成形ロットの計画、材料のロットの受入れ検査の値、成形の条件の表、工場の朝の温湿度、金型の清掃の記録を読み込む
- 自動ロットごとに項目をそろえる(品番の系統・プレス・型の温度・加硫の時間・材料の値・練ってからの日数・清掃からのショットの数・気温と湿度)
- 自動学習済みのモデルで、ロットごとの不良の率を予測する
- 自動予測の高い順に並べ、上位のロットに「検査を厚く」の印を付ける
- 自動練ってから日のたった材料のロットについて、不良の率の低く出る品番への回し方の候補を出す
- 人係長が一覧を見て、抜き取りの数と初物の確認の担当を決め、検査の係に伝える
- 人材料の係と成形の係が、材料の回し方の候補を見て、その日の段取りを決める
- 自動検査が終わったら、実際の不良の数を予測と並べて記録する
各工程の詳しい説明を読む
- 毎朝、品質管理課の担当が生産管理の仕組みからその日の成形ロットの計画(品番・プレス・材料のロット・数)を書き出す
- 材料のロットごとに、受入れ検査の値と練った日を確かめる
- 係長が、品番ごとの過去の不良の出方と、材料の値、その日の気温を見比べる
- 不良が出そうなロットに印を付け、抜き取りの数を増やす、初物を係長が見る、と決める
- 成形と検査が終わり、不良の数がロットごとに検査の記録に入る
- 不良の多かったロットは、翌日以降に原因を調べる
(a)不良の多いロットに気づくのが検査の後。 4番で印を付けなかったロットで不良が多く出ると、気づくのは検査の記録が上がった後で、その間に同じ条件・同じ材料で次のロットが作られています。全数の選別に回すと、検査の係の手が一日つぶれます。
(b)係長の経験で決まる。 3番の見比べは、「この品番は粘度が上寄りのロットだと欠けが出る」「梅雨の時期はこのプレスで気泡が出る」という係長の記憶で成り立っています。台帳には残っていません。
(c)不良の率を、ロットの大きさを無視して見ている。 過去の不良の出方を見るとき、小さなロットの高い率が目に付き、大きなロットの低めの率が見過ごされます。 不良の数の多さでは、大きなロットのほうが重いことがあります。
(d)材料のロットの使い方が後追い。 練ってから日のたった材料は早めに使い切りたい一方で、不良の出やすい品番に回すと不良が増えます。 どの材料をどの品番に回すかを、不良の見込みと並べて決める材料がありません。
- 【自動】 毎朝7時に、Python がその日の成形ロットの計画、材料のロットの受入れ検査の値、成形の条件の表、工場の朝の温湿度、金型の清掃の記録を読み込む
- 【自動】 ロットごとに項目をそろえる(品番の系統・プレス・型の温度・加硫の時間・材料の値・練ってからの日数・清掃からのショットの数・気温と湿度)
- 【自動】 学習済みのモデルで、ロットごとの不良の率を予測する
- 【自動】 予測の高い順に並べ、上位のロットに「検査を厚く」の印を付ける
- 【自動】 練ってから日のたった材料のロットについて、不良の率の低く出る品番への回し方の候補を出す
- 【人】 係長が一覧を見て、抜き取りの数と初物の確認の担当を決め、検査の係に伝える
- 【人】 材料の係と成形の係が、材料の回し方の候補を見て、その日の段取りを決める
- 【自動】 検査が終わったら、実際の不良の数を予測と並べて記録する
6番目で決めるのは係長です。 一覧が出すのは過去の記録から見た不良の率で、型の傷みの見た目や、前の日のプレスの調子は記録に入っていません。 係長はそれを足して決めます。
5番目の材料の回し方は、あくまで候補です。 品番ごとに使える材料の配合は決まっていて、同じ配合のロットの中での使う順を入れ替えるだけです。配合の違う材料を回す候補は出しません。
02今回想定するシステム構成
生産管理の仕組み(成形ロットの計画と実績、材料のロット、生産の数) + 検査の記録(ロットごとの不良の数と種類) + 材料の受入れ検査の記録(粘度・加硫の速さ・練った日) + 成形の条件の表(品番・プレスごとの型の温度・加硫の時間・圧力) + 工場の温湿度計の記録 + 金型の清掃の記録 │ ▼【トリガー】毎朝7時(工場のサーバーの定時実行) Python(pandas) ├──▶ ロットごとの項目をそろえる ▼ scikit-learn の HistGradientBoostingRegressor(loss="poisson") │ 目的の値=不良の数 ÷ 生産の数、重み=生産の数 ▼ Python ── 予測の高い順に並べ、検査の印と材料の回し方の候補を作る ▼ 【人】係長が検査の厚さを決め、材料と成形の係が段取りを決める
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 実行環境 | Python(pandas・scikit-learn) | R |
| 処理エンジン | scikit-learn の HistGradientBoostingRegressor(ポアソン損失) | scikit-learn の PoissonRegressor、LightGBM のポアソン回帰 |
| 集計 | Python(並べ替え、検査の印、材料の回し方の候補、当たり方の記録) | 表計算の計算式 |
| 保管 | 工場のファイルサーバー(学習の記録、一覧、当たり方の記録) | - |
新しく足すのは、Python の処理と、成形ロットと材料のロットのひも付けをそろえる作業です。 生産管理の仕組みと検査の記録には書き込みません。この構成が出すのは、ロットごとの不良の率の見込みと、検査と材料の候補の一覧までです。
予測のエンジンにポアソン損失の HistGradientBoostingRegressor を選んだのは、数えた値の率を重み付きで学べるからです。 公式のページでは、loss に poisson があり、内部で対数のつなぎ方を使い、目的の値が0以上であることを求めるとされています。公式の保険の請求の例では、請求の件数を契約の期間で割った頻度を目的の値にし、契約の期間を sample_weight として渡しています。 本記事では、不良の数を生産の数で割った率を目的の値にし、生産の数を重みとして渡します。
同じ例では、ポアソン損失の勾配ブースティングが、線形のモデルより「危うさの順に並べる力」で大きく上回ったとされています。検査を厚くするロットを選ぶのは並べ替えの問題なので、この性質が効きます。
生成AIは使いません。 出すのは率の見込みと順位の表です。
03どうやって実装するのか
処理の起点を決める
毎朝7時に1回、その日の成形ロットの計画について予測します。 成形の始まりが8時なので、係長が一覧を見て、検査の係に抜き取りの数を伝えられる時刻にします。工場のサーバーの定時実行(Windows ならタスク スケジューラ)で Python のスクリプトを起動します。
7時に動かすのは、その日の朝の気温と湿度を使うためです。 前の日の夕方に動かすと、学習のときは成形の日の朝の値を使い、予測のときは前の日の値を使うことになり、時点がずれます。学習と予測で同じ「成形の日の朝7時の値」を使います。
計画が昼に変わったときは、担当が手で実行し直します。 材料のロットの差し替えやプレスの入れ替えで計画が変わったら、変わったロットだけを予測し直し、一覧に「計画変更」と印字します。
モデルの作り直しは3か月に1回にします。 作り直す前と後で、直近3か月の当たり方を比べ、悪くなっていれば前のモデルのまま使います。一覧には、作った日時とモデルの作成日を必ず印字します。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 成形ロットの記録 | ロット番号、品番、品番の系統、プレス番号、金型番号、成形の日、生産の数、使った材料のロット | 生産管理の仕組み |
| 検査の記録 | ロット番号、不良の数、不良の種類(欠け・バリ・気泡・流れの跡・異物) | 検査の記録 |
| 材料の受入れ検査 | 材料のロット、配合、練った日、粘度、加硫の速さ(加硫試験の値)、規格の上限と下限 | 材料の受入れ検査の記録 |
| 成形の条件 | 品番・プレスごとの型の温度、加硫の時間、圧力の設定 | 成形の条件の表 |
| 気温と湿度 | 成形の日の朝7時の工場の中の温度と湿度 | 工場の温湿度計の記録 |
| 金型の記録 | 金型ごとの前の清掃の日と、それからのショットの数 | 金型の清掃の記録 |
質を決めるのは、成形ロットと材料のロットのひも付けです。 1つの成形ロットの途中で材料のロットを継ぎ足すことがあり、記録には最初のロットしか残っていない工場があります。継ぎ足したときに2つ目のロットを記録する決まりを、導入の最初に作ります(第14章)。
材料の値は、規格の幅の中での位置にして渡します。 粘度の値そのものより、「規格の下限から上限までのどのあたりか」のほうが品番をまたいで比べやすいからです。配合が違えば規格も違うので、0から1の位置に直します。
データの取得方法を決める
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 成形ロットの計画と実績 | 生産管理の仕組みから毎朝6時半に CSV で書き出す | 予測の対象と学習の記録 |
| 不良の数と種類 | 検査の記録から毎日 CSV で書き出す | 学習の目的の値 |
| 材料の受入れ検査の値 | 受入れ検査の記録を CSV で保存する | 材料の項目 |
| 成形の条件 | 条件の表を CSV で保存する | 条件の項目 |
| 気温と湿度 | 温湿度計の記録を CSV で書き出す | 気候の項目 |
| 金型の清掃 | 清掃の記録を CSV で保存する | 型の汚れの項目 |
不良の数は、検査で「ロットの不良」と判定した数だけを使います。 検査の係が抜き取りで見つけた数を、抜き取りの数で割って率にしている工場では、抜き取りを厚くしたロットほど不良が見つかりやすくなります。 全数の外観の検査を行っている工程の数を使うか、抜き取りの数を重みにするかを、最初に決めます。
不良の種類は、最初は合計して1つのモデルにします。 欠け・バリ・気泡・流れの跡では効く条件が違うはずですが、種類ごとに分けると1つあたりの件数が少なくなり、率のばらつきが大きくなります。 合計のモデルで当たり方を確かめ、件数の多い種類(たとえば欠け)だけを別のモデルに分けるかを、半年後に決めます。異物の混入は成形の条件より作業の環境で決まるので、合計からも外して別に数えます。
成形の条件は、設定の値を使います。 プレスが型の温度の実績を残していれば精度は上がりますが、予測を作る7時の時点では、その日の実績はまだありません。 設定の値なら、学習と予測で同じものを使えます。
AIへ渡す前に整形する
- ロットごとに不良の率を作る … 不良の数 ÷ 生産の数。生産の数が0のロットは外します
- 重みを付ける … 生産の数を
sample_weightにします - 材料の値を規格の中の位置にする … (値 − 下限)÷(上限 − 下限)
- 練ってからの日数を数える … 成形の日 − 材料を練った日
- 区分の列の型をそろえる … 品番の系統・プレス・配合を pandas の Categorical の型にします
- 外れたロットを外す … 試し打ちのロット、設備の故障で途中で止めたロット、検査の方法を変えた期間のロット
- 学習と確かめの期間を時間で分ける … 成形の日の順に並べ、TimeSeriesSplit で古いロットで学習し、新しいロットで確かめます
1番目と2番目が、この構成の肝です。 率を目的の値にして重みを付けないと、生産の数が50個のロットの1個の不良と、5,000個のロットの100個の不良が、同じ2%として同じ重さで学ばれます。 小さなロットの率はばらつきが大きいので、重みが無いと、そのばらつきを学んでしまいます。
4番目の練ってからの日数は、ゴムの成形でよく効く項目の候補です。 練った配合ゴムは日がたつと少しずつ性質が変わるとされ、同じ受入れ検査の値でも、練った直後と1週間後では成形のしやすさが違うことがあります。効き方の向きは、第7章の当たり方の確かめで係長の経験と照らします。
7番目でロットを無作為に分けないのは、同じ材料で作った成形ロットが学習と確かめの両方に入るのを避けるためです。 無作為に分けると、同じ日・同じ材料で作った隣のロットの結果を見ながら当てることになり、当たり方が良く見えすぎます。
AIに処理させる
させるのは、その日の成形ロットごとの不良の率を予測することだけです。
| 出すもの | 作り方 | 使いみち |
|---|---|---|
| ロットごとの不良の率の見込み | ポアソン損失のモデルで予測 | 並べ替えの元 |
| 不良の数の見込み | 率 × 計画の生産の数 | 検査の係の手配 |
| その日の中の順位 | 率の高い順 | 検査を厚くするロットの選び方 |
| 材料の回し方の候補 | 練ってから日のたった材料のロットを、同じ配合を使う品番に回したときの率を比べる | 材料と成形の係の段取り |
| 一覧の印 | 決め方 | 係長の動き |
|---|---|---|
| 赤 | その日の上位1割、かつ見込みが品番の系統の過去の平均の2倍以上 | 抜き取りを厚くし、初物を係長が見る |
| 橙 | その日の上位1割、または見込みが過去の平均の1.5倍以上 | 抜き取りを厚くする |
| - | それ以外 | これまでどおりの検査 |
「上位1割」と「過去の平均の何倍」の両方を使うのは、日によって全体の水準が違うからです。 全部のロットが低い日でも上位1割は出てくるので、倍率の条件を重ねて、本当に高いロットだけを赤にします。 線の高さは係長と検査の係で決めます。
| させないこと | 理由 |
|---|---|
| 製品の合否・出荷の可否 | 検査と品質の規格で決める |
| 成形の条件の変更 | 条件と不良の関係は因果ではない。変えるかは生産技術が決める |
| 材料のロットの受入れの合否 | 受入れ検査の規格で決める |
| 不良の原因の特定 | 型・材料・条件・作業のどれかは、品質管理課が調べる |
2行目は、とくに気を付けてください。 モデルが言えるのは「この条件の組み合わせで、過去に不良の率が高かった」ことまでで、「型の温度を上げれば不良が減る」とは言えません。 型の温度が低めの品番が、もともと不良の出やすい形の品番なだけかもしれません。
指示内容を固定する
生成AIを使わないので、プロンプトはありません。 かわりに、学習と当たり方の確かめの中身を示します。
from sklearn.ensemble import HistGradientBoostingRegressor
from sklearn.metrics import mean_poisson_deviance
import numpy as np
CAT = ["family", "press", "compound"]
NUM = ["die_temp", "cure_sec", "pressure", "visc_pos", "cure_rate_pos",
"days_since_mix", "shots_since_clean", "temp_7am", "rh_7am"]
X_cols = CAT + NUM
lots["rate"] = lots["defects"] / lots["produced"]
m = HistGradientBoostingRegressor(loss="poisson", max_leaf_nodes=31,
learning_rate=0.05, max_iter=500)
m.fit(train[X_cols], train["rate"], sample_weight=train["produced"],
X_val=val[X_cols], y_val=val["rate"],
sample_weight_val=val["produced"]) # 1万件未満でも早期終了を効かせる
pred = m.predict(test[X_cols])
dev = mean_poisson_deviance(test["rate"], pred, sample_weight=test["produced"])
# 並べる力:予測の高い順に並べ、上位1割に実際の不良の数の何割が入ったか
order = np.argsort(-pred)
top = order[: max(1, len(order) // 10)]
share = test["defects"].values[top].sum() / test["defects"].sum()
sample_weight に生産の数を渡すのは、公式の例と同じ形です。 公式の例では、頻度(件数 ÷ 期間)を目的の値にし、期間を sample_weight として渡し、評価の mean_poisson_deviance にも同じ重みを渡しています。 学習だけ重みを付けて評価で付けないと、小さなロットの外れが評価を引っ張ります。
X_val と y_val と sample_weight_val を渡しているのは、早期終了のためです。 公式のページでは、early_stopping の既定の auto は、件数が1万を超えるか X_val と y_val を fit に渡したときに有効になるとされています。月240ロットの3年分は8,640件で、1万に届きません。
当たり方は、2つの数で見ます。 1つは重み付きのポアソンの逸脱度で、率の水準が合っているかを見ます。もう1つは「予測の上位1割のロットに、実際の不良の数の何割が入ったか」で、検査を厚くするロットの選び方として役に立つかを見ます。公式の例でも、予測の危うさで並べて実際の値の積み上がりを描く曲線(ローレンツ曲線)で、並べる力を比べています。
水準の合い方も確かめます。 公式の例では、予測の大きさで組に分け、組ごとの実際の平均と予測の平均を並べて合い方を見ています。予測が2%の組で実際も2%前後なら、一覧の「不良の数の見込み」をそのまま検査の係の手配に使えます。
出力形式を固定する
係長に渡すのは、次の一覧です。 印刷して朝の検査の打合せで使います。
【10/29 成形ロットの不良の率の見込み(07:04 作成/モデル作成 2026-10-01)】
| 印 | ロット | 品番の系統 | プレス | 材料のロット(練ってから) | 計画の数 | 不良の率の見込み | 系統の過去の平均 | 主な理由 |
|---|---|---|---|---|---|---|---|---|
| 赤 | M-1029-07 | Oリング(大径) | P-14 | C-6612(9日) | 3,000 | 3.8% | 1.6% | 粘度が規格の上寄り・練ってから日数 |
| 橙 | M-1029-12 | 防振ゴム | P-22 | C-6620(2日) | 800 | 2.1% | 1.3% | 清掃から4,200ショット |
| - | M-1029-03 | パッキン | P-05 | C-6618(3日) | 5,000 | 0.6% | 0.7% | - |
「主な理由」は、そのロットの値が品番の系統のいつもの値から大きく外れている項目を並べたものです。 モデルの中身を説明するものではなく、係長が型や材料を確かめに行く先の手がかりです。
材料の回し方の候補は、一覧の下に別の表で出します。 「C-6612 を Oリング(大径)でなくパッキンに回すと見込みが 3.8%→1.1%」のように、同じ配合を使う品番の中で比べた値だけを出します。
機械で読む用には、同じ内容を CSV でも残します。 列は、ロット、印、率の見込み、不良の数の見込み、順位、モデルの作成日です。検査が終わったら、実際の不良の数をこの CSV の横に入れます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 生産管理の仕組み | 毎朝、成形ロットの計画と実績を CSV で書き出す | 予測の対象と学習の記録 |
| 検査の記録 | 毎日、ロットごとの不良の数を CSV で書き出す | 学習の目的の値と当たり方 |
| 材料の受入れ検査の記録 | CSV で保存して読む | 材料の項目 |
| 温湿度計・金型の清掃の記録 | CSV で読む | 気候と型の項目 |
| 検査の指示・成形の計画 | 書き込まない(係長と係が決めてから入れる) | - |
検査の指示には書き込みません。 一覧の印をそのまま抜き取りの数にすると、型の見た目や前の日の調子を見ないまま検査の厚さが決まります。
人が確認する
- 作った日時とモデルの作成日を見る … 一覧の上の日付がその日の朝であることを確かめます
- 赤と橙のロットの理由を見る … 材料の値、練ってからの日数、清掃からのショットの数を確かめます
- 記録に無い事情を足す … 型の傷みの見た目、前の日のプレスの調子を足して、抜き取りの数と初物の確認の担当を決めます
- 材料の回し方の候補を係と話す … 回すかどうかは材料と成形の係が決めます
3番目で一覧と違う判断をしたら、理由を一言残します。 「P-14 の型は先週から傷が出ている」が何度も出るなら、金型の点検の記録を項目に足す材料になります。
目標は、240件をならして1件2分です。 印の無いロットは流し見るだけで、時間を使うのは赤と橙のロットの理由を確かめるところです。
例外に対処する
| 起きること | 対応 |
|---|---|
| 材料のロットの受入れ検査の値が無い | 欠けた値のまま予測し、「材料の値なし」と出す |
| 新しい品番・新しい配合 | 予測は出すが「前例少」と出し、係長が自分で見立てる |
| 成形ロットの途中で材料のロットを継ぎ足した | 生産の数の多いほうの材料で予測し、「材料継ぎ足し」と出す |
| 温湿度計の記録が欠けた | 前の日の同じ時刻の値で補い、「気温補完」と出す |
| 計画が昼に変わった | 変わったロットだけ予測し直し、「計画変更」と出す |
| 検査の方法が変わった | 変わった日から別の扱いにし、作り直しまでは「検査変更」と出す |
| 作り直したモデルが前より外れる | 前のモデルのまま使い、作り直しの記録を残す |
| 朝の定時の実行が動かなかった | 担当が手で実行する。日付の古い一覧は使わない |
2行目は、とくに大事です。 学習の記録に前例の少ない品番や配合では、モデルは似た品番から推しはかった率しか出せません。 品番の系統と配合ごとに学習の記録の件数を数え、一定の件数に満たないロットに印を付けます。
記録を残す
- 実行の日時、使ったモデルの作成日、学習に使ったロットの期間と件数、外したロットと理由
- ロットごとの率の見込み、不良の数の見込み、順位、印、主な理由
- 係長が一覧と違う判断をしたロットと、その理由
- 実際の不良の数と種類
- 月ごとの当たり方(重み付きのポアソンの逸脱度、上位1割に入った不良の数の割合、見込みの組ごとの実際の平均)
「上位1割に入った不良の数の割合」が、この構成の健康診断です。 でたらめに選べば1割しか入らないところ、3割、4割と入っていれば、検査を厚くするロットの選び方として役に立っています。 下がり続ければ、材料や工程の変化をモデルが追えていません。
04実装レベルの3段階
本格構成の先には、プレスが残す型の温度の実績を使う形も考えられます。 ただし、予測を作る朝の時点ではその日の実績は無いので、使えるのは前のロットの実績や、設定からのずれの傾向までです。成形の途中で見込みを出し直す仕組みは、毎朝の一覧が定着してから検討します。 本記事の想定は本格構成です。 半自動化では率と順位は出ますが、係長はまだ材料の値と過去の平均を自分で見比べて、印を付けています。 半自動化で1件5分が3分ほどに、本格構成で2分になります。 差が大きいのは、理由の書き出しと材料の回し方の比べ方が、記録があれば機械で出せる作業だからです。 段階を飛ばさないでください。 半自動化を3か月使うと、どの系統で上位1割に不良が集まり、どこで集まらないかが分かります。集まらない系統の記録を直してから、材料の回し方の候補を足します。
05工数削減シミュレーション
導入後 240件 × 2分 ÷ 60 = 8 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- Oリング・パッキン・防振ゴム・ブーツなどのゴム部品を、圧縮成形・射出成形の加硫プレスで量産している工場。成形ロットごとに、使った材料のロット、型の温度と加硫の時間、生産の数と検査で見つかった不良の数が2年分以上記録に残っている場合。材料のロットの受入れ検査で粘度や加硫の速さを測っている場合。夏場や材料のロットの替わり目に不良が増え、どのロットの検査を厚くするかを品質管理課の係長の経験で決めている場合。
- 成形ロットと材料のロットのひも付けが記録に無く、どの材料で作ったかが後から分からない場合。不良の数を日ごとの合計でしか記録しておらず、ロットごとに分けられない場合。品番が少なく、毎日同じ条件・同じ材料で作っていて、不良の率がほとんど動かない場合。なお、製品の合否の判定、出荷の可否、成形の条件の変更、材料のロットの受入れの合否は、この構成では代替できません。
07最小構成で試す方法
- 不良の多い品番の系統を1つ選び、直近2年の成形ロットの記録を書き出す
- 成形ロットごとに、使った材料のロットの受入れ検査の値と練った日、成形の日の朝の気温を付ける
- 第7章の前処理で項目をそろえ、古い1年半で学習し、新しい半年で予測させる
- 予測の上位1割のロットに、実際の不良の数の何割が入ったかを数える
- 同じ半年で、当時の係長が印を付けたロットにも何割が入ったかを数え、並べる
最初は1つの系統で始めます。 ひも付けの整った系統で、材料の値と練ってからの日数がどれだけ効くかをまず見ます。
| 出てきた内容 | 判断 |
|---|---|
| 上位1割に、係長の印と同じかそれ以上の不良が入る | 系統を広げ、毎朝の一覧を出す段階に進む |
| 効き方の向きが現場の経験と逆 | 材料のロットのひも付けと、重みの付け方を確かめる |
| 学習の当たりが良すぎて、新しい半年で外れる | 無作為に分けていないか、検査の後の値を項目に使っていないかを確かめる |
2行目は、ほとんどの場合、記録の問題です。 継ぎ足した材料のロットが記録に無いと、別の材料で作ったロットの不良が、記録上の材料のせいになります。
3行目でよくあるのは、検査の後に分かる値を項目に入れていることです。 たとえば「その日のプレスの不良の累計」や「同じ材料のロットのほかの成形ロットの不良の率」は、学習の記録にはそろっていても、朝7時の時点では分かりません。 項目の一覧を作るとき、1つずつ「朝7時に分かるか」を書き添えておくと、この誤りを防げます。
重みを外して同じ確かめをしてみるのも役に立ちます。 重みの有無で上位1割の顔ぶれが大きく変わるなら、小さなロットの率のばらつきに引っ張られていたことが分かり、重みを付ける理由を現場に説明する材料になります。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 率を重みなしで学ぶ | 生産の数を sample_weight に渡す。 評価にも同じ重みを渡す |
| 小さなロットの率で上位が埋まる | 印に「過去の平均の何倍」の条件を重ねる |
| 継ぎ足した材料のロットが記録に無い | 継ぎ足しの記録の決まりを作る |
| 抜き取りの厚さで不良の見つかり方が変わる | 不良の数の数え方をそろえる |
| 前の日の気温で予測する | 学習と予測で同じ「成形の日の朝7時の値」を使う |
| ロットを無作為に分けて確かめる | TimeSeriesSplit で時間の順に分ける |
| 1万件未満で早期終了が効かない | X_val・y_val・sample_weight_val を渡す |
| 見込みを条件の変え方として読む | 関係は因果ではない。 条件を変えるかは生産技術が決める |
上の4行が、この構成の失敗のほとんどです。 どれも「何個作って何個不良だったか」を正しく数えることから起きます。ここを押さえれば、残りは時点の扱いの注意で足ります。
5行目と6行目は、作ってすぐには気づけません。 どちらも学習の当たり方を良く見せる方向に働くので、第8章の新しい半年での確かめを省くと、本番の最初の月で外れて初めて分かります。
最後の行は、運用に乗ってから出てくる問題です。 一覧の「主な理由」に型の温度が並ぶと、型の温度を上げたくなります。理由は確かめに行く先で、変える条件ではありません。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 成形の条件、材料の配合と受入れ検査の値、不良の数と種類、生産の数です。配合と成形の条件は、ゴム部品の工場の技術の中心で、客先の部品の量産にも関わります。
- データを外に出さない … 予測は工場のサーバーの中で動き、生成AIや外部のサービスに記録を送りません
- 配合の中身を一覧に載せない … 一覧に載せるのは配合の記号と材料のロットまでにし、配合の成分と比率は載せません
- 合否と出荷の判断は人が行う … 見込みの率が低いことを、検査を省く理由にしません。 自動車の部品では、客先と取り決めた検査の方法が優先します
- 作業者の評価に使わない … ロットごとの不良の率は、成形の担当者を評価するための値ではありません。 一覧に作業者の名前を載せません
- 客先との取り決めを先に確かめる … 検査の方法や抜き取りの数が客先との取り決めで決まっている品番は、取り決めより少ない検査に変えないことを一覧の決まりに書きます
誤りが起きた場合のリスクは、不良の多いロットを見逃すことと、不良の少ないロットに検査の手をかけすぎることの2つです。 前者は時点のずれで当たりが良く見えていると起き、後者は重みの付け忘れで小さなロットが上位を埋めると起きます。どちらも前処理から出ているので、そこだけは設計で守ります。
10まず何から始めるか
1週目:数え方を決める
「不良の数」を何で数えるか(全数の外観の検査か、抜き取りか)、材料のロットを継ぎ足したときにどう記録するかを、品質管理課と成形の係で決めます。
2〜3週目:1つの系統の記録をそろえる
不良の多い品番の系統を1つ選び、直近2年の成形ロットに、材料のロットの受入れ検査の値と練った日、朝の気温と湿度をひも付けます。継ぎ足しの記録が無いロットには印を付けます。
4週目:上位1割で比べる
第8章のとおり、古い1年半で学習し、新しい半年で、予測の上位1割と当時の係長の印のそれぞれに、実際の不良の数の何割が入ったかを比べます。
2か月目: 全部の系統で毎朝の一覧を出す半自動化を始めます。係長はこれまでどおり自分で印を付けながら、一覧と見比べます。3か月目以降: 赤・橙の印と主な理由、材料の回し方の候補を足します。上位1割に入る不良の割合が係長の印と同じかそれ以上の月が続き、係長が休みの日でも担当が一覧で検査の厚さを決められるようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
HistGradientBoostingRegressor の loss に poisson があり(0.23で追加)、内部で対数のつなぎ方を使い、目的の値が0以上であることを求めること。fit(X, y, sample_weight=None, *, X_val=None, y_val=None, sample_weight_val=None) の形であること。early_stopping の既定 auto は件数が1万を超えるか X_val・y_val を渡したときに有効になること。categorical_features の既定が from_dtype であること。欠けた値(NaN)を扱えること(scikit-learn 1.9.1) | scikit-learn: HistGradientBoostingRegressor | 2026-10-29 |
請求の件数を契約の期間で割った頻度を目的の値にし、期間を sample_weight として渡すこと。HistGradientBoostingRegressor(loss="poisson", max_leaf_nodes=128) を比べていること。mean_poisson_deviance に期間を重みとして渡して評価すること。予測の大きさで組に分けて実際の平均と予測の平均を比べること。ローレンツ曲線で並べる力を比べ、木のモデルが線形のモデルより大きく上回ったとしていること | scikit-learn: Poisson regression and non-normal loss | 2026-10-29 |
| TimeSeriesSplit が時間の順に並んだ記録を分けるためのもので、ほかの分け方では未来の記録で学習して過去で確かめることになること | scikit-learn: TimeSeriesSplit | 2026-10-29 |
製品の合否、出荷の可否、成形の条件の変更、材料の受入れの合否は、工場の品質の決まりと客先との取り決めで決めてください。 本記事は上記の公開情報で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-2384)についてのご相談はこちらから。
