【DataRobotデモ】~製品不良の要因分析~

# はじめに
今回は機械学習プラットフォーム「DataRobot」のデモ紹介記事として、フィルム製品製造時の不良発生に影響する要因分析についての活用事例を紹介させていただきます。

# DataRobotについて
DataRobot社は、AIに対するユニークなコラボレーション型のアプローチによってユーザーをAIサクセスに導くバリュー・ドリブン AIのリーダーです。

https://www.datarobot.com/jp/

DataRobot社の製品であるDataRobotは、10年以上にわたってユーザーの自動機械学習（AutoML）活用を支援してきたAIライフサイクル・プラットフォームであり、機械学習モデルの構築、トレーニング、評価、デプロイメントを自動化することができます。複雑なデータ分析を迅速かつ簡単に実行し、優れた予測モデルの作成と管理をサポートすることが可能です。近年では生成AI機能も強化し、予測AIとのコラボレーションによってさらなるAIサクセスの実現を加速させています。


# 本記事の想定読者
本記事では大まかに以下のような読者を想定させていただいております。
>・機械学習の基礎的な用語がわかる方
（モデリングに関する個別の用語についての詳細な説明は割愛させていただきます）
・DataRobotに関して、モデリングにあたっての最低限の操作方法を知りたい方
・機械学習を用いた要因分析の進め方、概要を知りたい方

# 要因分析とは
要因分析とは、データを用いて特定の出来事や現象に影響を与える要因を解明する分析手法になります。
要因分析を活用することで、作業効率の向上、最適な施策の検討/効果増加、これまで経験や勘で行っていた判断からデータドリブンでの意思決定を行えるようになる、といったメリット等があります。

### 活用事例
>・製造現場における不良発生原因の特定と、制御による生産性向上
>・顧客の成約率向上に影響する要因特定による、効果的な施策の検討
>・生活習慣病の発症リスク要因の特定と、対策行動の立案による疾病リスク回避






# 課題と扱うデータについて
本記事では、フィルム製品を製造する際の不良発生に影響する要因の特定を題材とさせていただきます。


### 前提知識と課題

以下のようなプロセスで製造されるフィルム製品（プラスチック等の薄い膜状の製品）において、製品の表面に添加剤や未重合のモノマーなどが折出して粉をふく「ブリードアウト」と呼ばれる現象が発生するケースがあります。

```mermaid
graph LR;
    フィルムの送り出し-->コーティング液の塗布;
    コーティング液の塗布-->高温乾燥;
    高温乾燥-->UV照射による硬化;
    UV照射による硬化-->フィルムの巻き取り;
```

ブリードアウト（ブリード現象）が発生した製品に関しては不良品となってしまうため、製造プロセスの中でブリードアウトが発生する要因となる条件を特定し、対策することが重要となります。

<img width="600" alt="image_18" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3721383/0d310626-1b48-c17d-01f5-4dd2a38672d2.png">

※引用：株式会社ジャストコーポレーション（クリアファイルEXPRESS）

 https://clearfile.just-shop.jp/page/?page=423



### 使用するデータ
今回使用したデータは、フィルム製造時の各工程の条件と、製造の結果ブリードアウトが発生したかの情報も持つ50,000件のデータになります。

　
・データのイメージ
![image_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3721383/1e40d03a-0ffa-449a-937a-def24b11324a.png)
　

・具体的なデータ項目は以下の通りです。
|項目名|内容|入力値の例|
|:---|:---:|--:|
|ブリードアウト|フィルムに練りこまれたスリップ剤や酸化防止剤等の添加剤が時間の経過によりフィルムの表面に浮き出てくる現象（ブリードアウト発生時にTRUE）|FALSE|
|塗布長|コーティング液を塗布する長さ（製品の長さ）|500m|
|種別|試作なのか、本番（製造品）なのか等の製造目的を表すラベル|製造|
|号機|作成した機器の識別番号|YC-08|
|コーター部温度|塗布部分の温度|27.47
|コーター部相対湿度|塗布部分の湿度|50.2
|ポンプ圧力|コーティング液を送液する圧力|0.9
|乾燥ゾーン1温度|乾燥ゾーン1の温度|120.09
|乾燥ゾーン2温度|乾燥ゾーン2の温度|122.01
|UV照度|コーティング層を硬化させる際のUVランプの照度|1020.1
|ランプ点灯時間|UVランプの点灯時間|358
|チャンバー内O2濃度|UVを照射するチャンバー内の酸素濃度|0.01029
|UVロール温度|UVを照射する際にフィルムが接するロールの温度|89.03
|テンション_1|とある部分におけるフィルムのテンション|3.478
|テンション_2|とある部分におけるフィルムのテンション|2.781
|テンション_巻き取り|巻き取り部分のフィルムのテンション|3.116
|epc_diff_1|フィルムの水平方向の位置ずれ|0.06741711143
|epc_diff_2|フィルムの水平方向の位置ずれ|0.07304249561



上記のようなフィルム製品を製造する際の各種条件に関する情報を用いて、ブリードアウトが発生するかどうかを予測する二値分類モデルを作成し、予測に影響を与えている特徴量を明らかにすることで、ブリードアウトの発生に影響する要因を探索します。

### 要因分析におけるポイント

要因分析においては、予測に用いるデータ（説明変数）の網羅性が重要となります。
今回のケースで言うと、そもそもブリードアウトの発生に影響を与える項目に関するデータがない場合、どのようにモデリングを行ったとしても、重要な因子に関する知見を得ることは困難です。

そのため、実際に要因分析を行う際には、現場の方やデータの有識者と連携すること、また特性要因図等を活用することでドメイン知識を整理し、要因となり得るデータを網羅的に準備することが重要となります。

DataRobot社の公式ブログにおいても、要因分析におけるドメイン知識の重要性について述べられております。

https://www.datarobot.com/jp/blog/importance-of-domain-knowledge-organization-in-factor-analysis/
          

# DataRobotへのデータインポート
　
今回は、上記で紹介させていただいたデータセットをDataRobotにインポートします。

![image_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3721383/4e9426d1-1cf6-c9a5-879f-d7aa06a9f7b2.png)




:::note warn
データのインポートの注意点
レコード数が20件を超えていないとプロジェクト作成できないエラーになります。二値分類ではレコード数が100件以上でかつ、二値のうち少ない方のクラスが20件必要となります。
:::
https://docs.datarobot.com/ja/docs/data/file-types.html

      

　
アップロードが完了すると以下の画面になります。
  
![image_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3721383/16d07e71-167d-70bb-1918-86455585b579.png)



# データの確認
DataRobotでは、データのアップロードが完了すると、以下のように各項目ごとに、ユニーク数や欠損値の数、平均値、最大値、最小値といった基礎統計量を自動で算出してくれます。
![スクリーンショット 2024-10-14 180434.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3721383/4009f5ff-7258-d4e5-7342-8ba443701f77.png)


試しに`「塗布長」`の項目をクリックすると、以下のように今回用いるデータセットにおいて、どの塗布長で製造された際のデータが多いか確認することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3721383/16ab6984-520e-2565-d0c3-fa6888aa3f5f.png)


# モデルの作成

次に、モデリングを行うための設定をしていきます。
今回は、ブリードアウト発生の要因を探索するため、予測ターゲットに`「ブリードアウト」`を設定します。



予測ターゲットの設定ができたら「開始」ボタンを押すことで、自動でモデルが作成されます。

![スクリーンショット 2024-10-14 180315.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3721383/4e1f0dd3-06d8-a5e1-4e33-fc5fa2ebe6f9.png)


また、DataRobotでは高度なオプションとして、パーティションの設定やダウンサンプリングなどの詳細な設定を行うことも可能です。

こちらはモデリングの目的やデータの特性に応じて工夫することで、モデリングの精度向上が見込めます。

高度なオプションで設定可能な機能のひとつであるパーティションの設定方法については、以下の記事で詳細を確認することができます！

https://qiita.com/nttd-okadak/items/c366fd1dc3ff034a60e2

　

「開始」ボタンを押下するとモデルが作成されます。

DataRobotでは、XGBoostやLightGBMのようなツリー型のアルゴリズムや、logistic回帰のように数式で表現されるアルゴリズム等から、データに適したモデルを複数作成してくれます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3721383/45de9069-fa6e-393f-6a19-3f9bcaecbd2c.png)


# モデルの解釈

作成されたモデルは精度の高いものから順に表示されます。
今回は、二値分類問題において一般的に使用される指標である`「AUC」`における精度が高い
`「Elastic-Net Classifier (L2 / Binomial Deviance)」`の詳細を確認していきましょう。

`「説明」`⇒`「ブループリント」`から、このモデルがどのように作成されているかの詳細が確認できます。

ブループリントを見ると、カテゴリ変数については`「One-Hot Encoding」`によって数値化されており、数値変数については、`「欠損値補完」`や`「標準化」`といった前処理の後、`「Elastic-Net」`モデルが作成されている、といった情報が確認できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3721383/db3fcadf-c5e2-aa33-c89b-fbca9c125832.png)
　
### 特徴量のインパクト

次に、`「解釈」`⇒`「特徴量のインパクト」`から、ブリードアウトの発生にどの特徴量が大きく影響しているかを確認します。

`「特徴量のインパクト」`は、予測値に与える影響度を相対的に示す値になります。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3721383/a69cab19-9df4-c1e0-f267-1d3a5de875ef.png)

特徴量のインパクトを確認すると、`「塗布長」` `「UVロール温度」` `「チャンバー内O2濃度」` `「UV照度」`  `「テンション_巻き取り」`の順に並んでおり、これらがブリードアウトの発生に影響を与えている可能性が示唆されました。

 `「UVロール温度」` `「チャンバー内O2濃度」` `「UV照度」`については、総じてUV硬化に関する特徴量であり、硬化不足の場合、残存モノマーが析出してくること等が考えられそうです。

　

### 特徴量ごとの作用

では、上記の各項目は、どのようにブリードアウトの発生に影響しているのでしょうか。
`「解釈」`⇒`「特徴量ごとの作用」`から、各項目の変化がブリードアウトの発生にどう影響しているか確認することができます。

例えば特徴量のインパクトが最も大きかった`「塗布長」`の特徴量ごとの作用を確認すると、**塗布長が短いほどブリードアウトの発生確率が高い**ことが確認できます。

この結果から、塗布長を長く（まとめて製造）した方が品質が安定するという可能性が考えられそうです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3721383/a4bb10a5-a523-5c13-2477-b310f611e9ab.png)


次に、`「UVロール温度」`の特徴量ごとの作用を確認すると、UVロール温度が高くなればなるほど、ブリードアウトの発生確率が低くなる傾向が確認できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3721383/22d53dae-d43e-4ffb-c973-f71d4dc8fcee.png)



また、`「テンション_巻き取り」`の特徴量ごとの作用を確認すると、ある閾値で大きくブリードアウトが悪化していることが確認できており、この閾値を超えないことが重要となりそうです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3721383/9bde0ba6-0a68-a065-1620-5b06126d8202.png)


　
このようなモデルから解釈できる結果を、ドメイン知識と照らし合わせることで、特定したい要因を探索していくことが可能となります。

### データへの介入について

また、要因分析を行う際には、**各項目（変数）に対して介入できるかどうか**、という点に注意する必要があります。

例えば、上記の結果から`「UVロール温度」`を調整し、ブリードアウトの発生を抑制しようとした際に、今回モデリングに用いたデータの粒度である「0.02℃」ごとの調整が実際に可能か、という点を考慮する必要があります。

実際の製造時に、0.02℃ごとに温度を制御できるのであれば問題ありませんが、細かい設定が実は困難で、89℃に統一して設定をした際に、実際の製造時においては今回のデータのように温度のばらつきが生じていたのであれば、今回得られた知見を実際の製造条件の改善に生かすことができません。

従って、詳細な要因分析を行う前に、用いるデータが介入できるものなのか把握したうえで、データ準備を行うことが重要となります。



# まとめ
今回は、DataRobotの基本機能を使って、要因分析のデモを行ってみました。

要因分析においては、モデリングに用いるデータの準備が非常に重要であることをお伝えさせていただきましたが、データの準備ができれば、Datarobot を用いることでモデルの作成が簡単に可能となります！

NTTデータでは、要因分析以外にも様々な課題を想定したデモ記事や、機能紹介記事を紹介させていただいております！
　
ぜひ他の記事についても、ご参考いただければと思います！

https://qiita.com/organizations/nttdata/items


# 仲間募集
NTTデータ テクノロジーコンサルティング事業本部 では、以下の職種を募集しています。

<details><summary>1. クラウド技術を活用したデータ分析プラットフォームの開発・構築(ITアーキテクト/クラウドエンジニア)</summary>
クラウド／プラットフォーム技術の知見に基づき、DWH、BI、ETL領域におけるソリューション開発を推進します。

https://enterprise-aiiot.nttdata.com/recruitment/career_sp/cloud_engineer
</details>


<details><summary>2. データサイエンス領域（データサイエンティスト／データアナリスト）
</summary>
データ活用／情報処理／AI／BI／統計学などの情報科学を活用し、よりデータサイエンスの観点から、データ分析プロジェクトのリーダーとしてお客様のDX／デジタルサクセスを推進します。

https://enterprise-aiiot.nttdata.com/recruitment/career_sp/datascientist　
</details>

<details><summary>
3.お客様のAI活用の成功を推進するAIサクセスマネージャー
</summary>
DataRobotをはじめとしたAIソリューションやサービスを使って、
お客様のAIプロジェクトを成功させ、ビジネス価値を創出するための活動を実施し、
お客様内でのAI活用を拡大、NTTデータが提供するAIソリューションの利用継続を推進していただく人材を募集しています

https://nttdata.jposting.net/u/job.phtml?job_code=804
</details>

<details><summary>
4.DX／デジタルサクセスを推進するデータサイエンティスト《管理職/管理職候補》
</summary>
データ分析プロジェクトのリーダとして、正確な課題の把握、適切な評価指標の設定、分析計画策定や適切な分析手法や技術の評価・選定といったデータ活用の具現化、高度化を行い分析結果の見える化・お客様の納得感醸成を行うことで、ビジネス成果・価値を出すアクションへとつなげることができるデータサイエンティスト人材を募集しています。

https://nttdata.jposting.net/u/job.phtml?job_code=898
</details>

# ソリューション紹介

<details><summary>
Trusted Data Foundationについて
</summary>
～データ資産を分析活用するための環境をオールインワンで提供するソリューション～

https://www.nttdata.com/jp/ja/lineup/tdf/

最新のクラウド技術を採用して弊社が独自に設計したリファレンスアーキテクチャ（Datalake+DWH+AI/BI）を顧客要件に合わせてカスタマイズして提供します。
可視化、機械学習、DeepLearningなどデータ資産を分析活用するための環境がオールインワンで用意されており、これまでとは別次元の量と質のデータを用いてアジリティ高くDX推進を実現できます。
</details>


<details><summary>
TDFⓇ-AM（Trusted Data Foundation - Analytics Managed Service）について
</summary>

～データ活用基盤の段階的な拡張支援（Quick Start) と保守運用のマネジメント（Analytics Managed）をご提供することでお客様のDXを成功に導く、データ活用プラットフォームサービス～

https://www.nttdata.com/jp/ja/lineup/tdf_am/

TDFⓇ-AMは、データ活用をQuickに始めることができ、データ活用の成熟度に応じて段階的に環境を拡張します。プラットフォームの保守運用はNTTデータが一括で実施し、お客様は成果創出に専念することが可能です。また、日々最新のテクノロジーをキャッチアップし、常に活用しやすい環境を提供します。なお、ご要望に応じて上流のコンサルティングフェーズからAI/BIなどのデータ活用支援に至るまで、End to Endで課題解決に向けて伴走することも可能です。

</details>

<details><summary>
NTTデータとDatabricksについて
</summary>

NTTデータは、お客様企業のデジタル変革・DXの成功に向けて、「databricks」のソリューションの提供に加え、情報活用戦略の立案から、AI技術の活用も含めたアナリティクス、分析基盤構築・運用、分析業務のアウトソースまで、ワンストップの支援を提供いたします。

https://www.nttdata.com/jp/ja/lineup/databricks/

</details>

<details><summary>
NTTデータとTableauについて
</summary>
ビジュアル分析プラットフォームのTableauと2014年にパートナー契約を締結し、自社の経営ダッシュボード基盤への採用や独自のコンピテンシーセンターの設置などの取り組みを進めてきました。さらに2019年度にはSalesforceとワンストップでのサービスを提供開始するなど、積極的にビジネスを展開しています。
これまでPartner of the Year, Japanを4年連続で受賞しており、2021年にはアジア太平洋地域で最もビジネスに貢献したパートナーとして表彰されました。
また、2020年度からは、Tableauを活用したデータ活用促進のコンサルティングや導入サービスの他、AI活用やデータマネジメント整備など、お客さまの企業全体のデータ活用民主化を成功させるためのノウハウ・方法論を体系化した「デジタルサクセス」プログラムを提供開始しています。

https://www.nttdata.com/jp/ja/lineup/tableau/

</details>


<details><summary>
NTTデータとAlteryxについて
</summary>
Alteryxは、業務ユーザーからIT部門まで誰でも使えるセルフサービス分析プラットフォームです。
Alteryx導入の豊富な実績を持つNTTデータは、最高位にあたるAlteryx Premiumパートナーとしてお客さまをご支援します。

導入時のプロフェッショナル支援など独自メニューを整備し、特定の業種によらない多くのお客さまに、Alteryxを活用したサービスの強化・拡充を提供します。

https://www.nttdata.com/jp/ja/lineup/alteryx/

</details>

<details><summary>
NTTデータとDataRobotについて
</summary>
DataRobotは、包括的なAIライフサイクルプラットフォームです。
NTTデータはDataRobot社と戦略的資本業務提携を行い、経験豊富なデータサイエンティストがAI・データ活用を起点にお客様のビジネスにおける価値創出をご支援します。

https://www.nttdata.com/jp/ja/lineup/datarobot/

</details>

<details><summary>
NTTデータとInformaticaについて
</summary>
データ連携や処理方式を専門領域として10年以上取り組んできたプロ集団であるNTTデータは、データマネジメント領域でグローバルでの高い評価を得ているInformatica社とパートナーシップを結び、サービス強化を推進しています。

https://www.nttdata.com/jp/ja/lineup/informatica/

</details>

<details><summary>
NTTデータとSnowflakeについて
</summary>
NTTデータでは、Snowflake Inc.とソリューションパートナー契約を締結し、クラウド・データプラットフォーム「Snowflake」の導入・構築、および活用支援を開始しています。
NTTデータではこれまでも、独自ノウハウに基づき、ビッグデータ・AIなど領域に係る市場競争力のあるさまざまなソリューションパートナーとともにエコシステムを形成し、お客さまのビジネス変革を導いてきました。
Snowflakeは、これら先端テクノロジーとのエコシステムの形成に強みがあり、NTTデータはこれらを組み合わせることでお客さまに最適なインテグレーションをご提供いたします。

https://www.nttdata.com/jp/ja/lineup/snowflake/

</details>