만약 여러분이 프로그래머가 아니라면 예측 분석을 사용하여 공정에서 실패를 일으키는 원인을 파악하는 것이 어려워 보일 수 있습니다.
하지만전혀 어렵게 생각할 필요가 없다는 걸 지금부터 보여드리겠습니다. Minitab과 R 및 Python의 통합을 통해 프로그래밍 언어를 보다 쉽게 사용하는 방법을 안내하는 저희에 두 번째 블로그 게시물입니다. 첫 번째 사례인 Python 기반 시각화 생성에 대해서는 여기를 참조하세요.
이번 블로그 게시물에서는 Minitab에서 R을 사용해 신경망을 구축하여 예측 분석 모듈에서 도출된 결과를 보완하고 비교하는 방법을 알아봅니다.
R이란 무엇일까요?
R이란 데이터 변환, 모델링 및 시각화와 같은 여러 데이터 관련 작업을 실행하는 데 사용할 수 있는 오픈 소스 프로그래밍 언어입니다. R은 데이터 및 통계 분석 뿐만 아니라 머신러닝 알고리즘을 위한 라이브러리 카탈로그를 가지고 있습니다(사용자의 구문 이해 능력에 따라 다름).
Minitab과 R을 통합하는 이유는 무엇인가요?
Minitab Statistical Software는 결함을 줄이고자 하는 전문가들에게 유용한 도구로서 사용하기 쉬운 인터페이스로 통계 및 예측 분석을 제공합니다.
여러분은 Minitab Statistical Software 통합을 통해 매우 강력한 R 스크립트를 사용할 수 있습니다. 이는 R을 사용하지 않는 프로그래머들에게 배포하기 어려운 공정을 단순화합니다. 이러한 통합을 통해 다양한 사람들이 R 스크립트에 액세스할 수 있으며 이들이 얻을 수 있는 이점이 배가됩니다.
Minitab Statistical Software의 데스크탑 애플리케이션은 mtbr이라는 R 통합을 위한 맞춤형 패키지를 제공합니다. 자세한 내용은 https://support.minitab.com/en-us/minitab/21/integration/을 참조하세요.
R 프로그래밍 언어를 사용해 Minitab에서 신경망을 구축하는 방법
상황:
수잔은 부품 제조 회사에서 일하는 품질 엔지니어입니다. 이 회사는 최근 자신들의 제품 중 하나에서 품질 문제를 겪었는데요.. 여러 배치에서 불량품이 많이 나와 비용이 증가하고 주문이 밀리게 되었습니다.
과제:
수잔의 임무는 공정의 결함률을 줄일 수 있는 방법을 찾는 것입니다. 다행히도 수잔은 생산 매개변수와 각 배치의 합격/불합격 여부에 대한 데이터를 가지고 있습니다.
수잔의 생각은 예측 분석을 사용하여 다음 사항을 이해하는 것입니다.
수잔은 다양한 예측 분석 모델을 사용해 보고 자신의 데이터에 가장 적합한 것을 찾으려고 합니다.
다행히 수잔은 Minitab Statistical Software의 회귀 모델 및 CART®와 예측 분석 추가 기능으로 제공되는 Random Forests® 및 TreeNet® 모델을 선택할 수 있습니다.
예기치 못한 난관
하지만 문제가 있습니다. 수잔의 상사는 신경망에 대해 들어본 적이 있었고 이를 사용해 보고 싶어 하지만, Minitab에서 제공되는 것이 아닙니다. 다행히 R을 사용하면 신경망을 구축할 수 있습니다.
수잔은 R에 관해 경험 많은 사용자가 아니므로 Minitab의 R 통합 내에서 R 스크립트를 실행할 수 있습니다. 이는 여러 가지 이점을 제공합니다.
Minitab의 R 통합은 Minitab의 모든 데이터와 출력을 유지하여 전체 공정을 보다 쉽게 만들어줍니다.
수잔은 분석을 두 개의다른 프로그램에서 별도로 실행하는 대신 Minitab에서 모든 분석을 실행하여 여러 모델의 성과와 결과를 쉽게 비교할 수 있습니다.
이제 수잔은 모든 Minitab 출력(테이블, 그래프 등)을 PowerPoint 프레젠테이션으로 내보내 관리자를 위한 프레젠테이션을 쉽게 준비할 수 있습니다.
튜토리얼: 분석 수행
그렇다면 수잔은 Minitab의 예측 분석과 R 통합을 통해 분석을 어떻게 수행할까요?
가장 먼저 데이터를 Minitab에 로드합니다. 수잔의 회사에서는 Minitab Connect를 사용하여 다양한 데이터 소스에서 생산 데이터를 자동으로 수집하므로 이 데이터를 Minitab에 쉽게 로드할 수 있습니다.
Minitab에 데이터가 로드되면 모든 준비 완료입니다! 우선 데이터를 살펴보겠습니다.
아이디어는 C1~C8 열의 데이터를 사용하여 배치의 불량 여부를 파악하는 것입니다(결함 열 = 1). 수잔은 Minitab에서 제공되는 모델을 사용할 것입니다.
그러기 위해 수잔은 Minitab®의 자동화된 머신러닝을 선택합니다. 이렇게 하면 데이터 집합에서 Minitab의 모든 모델이 사용되고 성과가 가장 우수한 모델을 선택하여 시간을 크게 절약할 수 있습니다.
Minitab에서 제공되는 가장 우수한 모델은 Random Forests 및 TreeNet 모델입니다. TreeNet 모델의 오분류 비율은 0.8%(0.008)로 가장 우수합니다. 즉, 배치의 합격 또는 불합격 여부에 대한 예측에서 0.8%만 틀리다는 의미입니다. 수잔은 Random Forests보다 유용하고 유익한 결과를 제공하는 TreeNet 모델을 선택합니다.
다음은 Minitab의 R 통합을 사용하여 R에 신경망을 적용할 차례입니다. 아래는 샘플 스크립트입니다.
출력의 일부로 신경망을 시각화할 수 있습니다.
왼쪽의 입력 계층(노드의 첫 번째 행)은 각 8개의 입력 변수로부터 정보를 수신합니다. 각각의 선 위에는 시냅스 가중치가 있으며, 이는 망의 다음 계층에 영향을 미칩니다. 두 개의 뉴런으로 구성된 하나의 숨겨진 계층이 있으며 파란색 원은 편향을 나타냅니다. 이는 표준 회귀 모델의 절편에 해당하며, 마법 같은 일이 일어나는 숨겨진 계층입니다. 오른쪽에 있는 출력 뉴런은 결함 변수를 나타냅니다.
스크립트는 R 스크립트(.R)로 저장되며, Minitab 내에서는 RSCRIPT 명령과 그 뒤에 따라오는 따옴표로 된 스크립트 이름을 사용하여 실행합니다.
이 모델의 오분류 오류는 7%로 TreeNet 모델만큼 정확하지 않기 때문에 수잔은 TreeNet 모델을 사용하기로 결정합니다.
다음으로 수잔은 TreeNet 출력을 사용하여 결함이 있는 배치를 발생시키는 데 가장 많은 영향을 주는 매개변수를 파악합니다. Minitab 모델의 이점 중 하나는 많은 보완 정보(예: 아래 그래프)를 표준으로 제공하여 모델이 어떤 의미인지 더 쉽게 이해할 수 있게 해준다는 것입니다.
O2, 생산율, 부식 및 MgSO4는 모두 결함률에 큰 영향을 미치는 것으로 보입니다. 상황을 개선하기 위해 수잔은 이러한 매개변수가 어떤 영향을 미치는지 이해해야 합니다. TreeNet 출력이 이를 도울 수 있습니다.
그래서 배치 불량 가능성을 최소화하려면 이러한 매개변수를 어느 수준에서 제어해야 할까요?
그래프의 값이 높을수록 결함 배치의 가능성이 낮습니다. 이러한 그림은 다음을 보여줍니다.
이를 바탕으로 수잔은 각각의 영향을 주는 매개변수에 대한 제어 계획을 실시하여 결함이 있는 배치의 가능성을 낮게 유지하는 수준에서 이를 제어합니다.
결함률이 감소하여 모두가 만족하고 수잔은 승진합니다.
그럼 이제 이 분석을 직접 시도해 볼 준비가 되셨나요?
데이터 집합 및 R 스크립트를 다운로드할 수 있습니다.
Minitab과 R 통합에 대한 지원 페이지 링크입니다.
다음은 설치 단계를 안내하고 Minitab에서 R을 테스트한 다음 Minitab에서 Neural Net R 스크립트를 실행하는 방법을 보여주는 동영상입니다.