개발자로 후회없는 삶 살기
데이터 청년 캠퍼스 PART.project 13, 15, 16, 17일차(EDA) 본문
서론
앞으로의 작업은 지금까지 데이터 파악, 프로젝트 주제 선정, 타당성 분석 등을 함으로 써 얻은 결과를 만들기 위한 재료를 만드는 단순 작업입니다. 이제 판다스, 넘파이를 활용할 줄 아는 내가 나설 차례입니다.
본론
13일차
- 할 일
1. 데이터 합치기 : 합친 결과 최종 데이터 셋은 리드타임 예측에 쓰고 작은 데이터 셋은 Sequece 마이닝을 하자
2. EDA. Tableau : : 현황 분석
3. 프로세스 마이닝 : 병목 현상 파악
15일차
- 할 일
1. 원본 데이터와 합친 데이터의 상위 제품 추려서 비슷한지 보기
2. 모순 데이터 개수 봐서 포함한 거 포함하고 회귀 돌려보고 모순 빼고 회귀 돌려보기
3. EDA(합친 데이터로만)
4. 합친 데이터, 원본 데이터에 Apriori
5. 리드타임이 너무 작은 제품 제거
-> 다양한 토론
지금까지 한 일과 앞으로 할 일을 하면서 다양한 문제가 발생했고 좌절감을 느꼈습니다. 그럴 때마다 다양한 관점으로 문제를 해결하려고 하고 EDA하는 수밖에 없었기에 팀원들과 더 많은 시간을 보내고 더 많은 토론을 한 것 같습니다. 시계열 분석, apriori, 고객 마케팅 분석 등을 하였습니다. 이 중에서는 공장 싸이클에서 사용하지 않는 분석 방법도 존재합니다. 하지만 우리는 다양한 관점으로 보기로 했고 공장에 부품 주문을 넣는 측을 고객으로 보아 분석을 진행하는 등 매우 다양한 시선으로 분석을 하고자 했습니다. 이게 데이터 분석입니다!!(data에서 insight 찾기!!!)
16일차
- 청천병력
너무 데이터만 보고 도메인 분석을 안했습니다,,, 충분히 했다고 생각했는데 리드타임을 예측하는데 cnc와 mct 만으로는 부족하다는 결론이 나왔습니다. 또한 통계분석을 해보았을 때 우리의 데이터가 회귀를 돌릴 때 통계의 4가지 조건을 만족하지 않는 다고 하십니다. 이제는 리드타임 예측은 버려야합니다. 우리가 지금까지 데이터를 모은 것은 리드타임을 예측하는 회귀문제를 하기 위함이었는데 우리가 예측하는 결과에 신빙성이 없다고 판단되어 과감히 버립니다.
-> 따라서 스토리라인을 짜기로 했습니다.
전체적인 스토리를 현황분석으로 잡습니다.
ex) 어떠한 제품의 공정 리드타임 현황 분석을 해보자 + 제품에 대해 한 번 더 EDA를 했는데 어떠한 모습을 보입니다. "그렇다면 어떻게 최적화를 시킬 수 있을까?"의 스토리 라인을 가지자
> 목표를 회귀로 하기엔 정보가 부족하고, 해결 방법을 제시하는 것도 기업 수준의 문제이니 생산 공정에서의 다양한 관점에서 문제를 파악하고 원인 분석하고 해결책을 제안하는 방식으로 프로젝트를 이끌어 보기로 했습니다.
17일차
- 다시 EDA
현황 분석에서 EDA는 필수입니다. 또한 나는 동아리에서 프로젝트를 하고, 데이터 청년 캠퍼스 교육에서 분석 기술을 배웠기에 나만의 EDA 스킬이 있습니다. 이를 활용하여 재미있는 해결 방안을 찾을 수 있었습니다.
- 컬럼별 EDA
=> 총 리드타임(종속변수)를 보면
1. 1행 11행을 보면 cnc보다 mct 리드타임이 더 오래걸립니다. (cnc보다 mct가 더 오래걸리는 건 기업 사람들은 당연하게 다 알 수 도 있어서 의미없다고 판단됩니다.)
2. 다양한 제품에서 cnc+mct가 cnc+세정보다 오래걸립니다.
3. 같은 공정을 거쳐도 제품별 총 리드타임이 최소 0.1에서 최대 50만까지 차이가 상당합니다. -> 원인으로 공정에 제품이 들어가는 순서, 한 라우트에서 몇 공정의 병목을 들 수 있습니다. > 제품별로 리드타임이 다른건 당연하여 의미없다고 판단됩니다.
=> cnc 사이클 타임(종속변수)를 보면
> 이건 만약 같은 제품이 똑같이 3500이상이면 상관없습니다. 하지만 같은 제품인데 어떤 제품이 cnc 사이클 타임이 확연히 작다면 병목이 일어나는 제품이 확실합니다. 병목이 일어날 때의 공정을 살펴보면 어떤 공정에서 병목이 일어나는지 알 수 있습니다.
=> mct 사이클 타임(종속변수)를 보면
mct 사이클 타임이 8000(5000, 4000, 3000)이상인 제품이 우리가 찾아야하는 문제의 제품 아닐까? 라는 생각을 했습니다.
> 위와 같은 이유로 문제의 공정을 찾을 수 있습니다.
=> 날짜(독립변수)를 보면 -> 거리두기 해제 + 코로나랑 연결
1. 왜 21년12월부터 리드타임이 늘어나지?
2. 생산량이 뛰는 21.5월,8월, 22년4월은 왜 그럴까?
3. 입고량이 뛰는 21.2월, 3월, 4월, 22년 3월, 4월은 왜 그럴까?
=> 품명(독립변수)를 보면
count를 세어보면 네개 제품이 눈에 띄게 높네? 기업에 현황 보고 할 때 넣겠습니다.
=> 공정(독립변수)를 보면
1. describe를 보면 어떤 제품이 어떤 공정을 거치는데 그러면 제품 별로 어떨 때 리드타임이 다르게 나오는지 볼 수 있지 않을까?
위 사진처럼 제품 별로 거치는 공정을 출력 해보면 다른 공정 및 설비를 거쳐 동일한 제품을 만들 수 있다는 사실을 알 수 있습니다.
2. 같은 공정에서 같은 제품이 다른 리드타임이 나옴
ex) MCT/밀링/TAP 리드타임+ 세정 리드타임 공정(같은 공정)에서 같은 제품(NW25 BOLTED PRESSURE FLANG)이 6개의 분포를 띕니다.
3. 같은 제품에서 같은 공정이 다른 리드타임이 나옴
ex) arr2를 보면 N2 CURTAIN FLANGE 하부 제품이 CNC를 할 때 9개의 제품이 어떨 땐 시간이 오래 걸리고 어떨 땐 시간이 덜 걸리고 하니 필터링 해서 찾아보자
★해결책★
1번이 재미있는 해결책이 되었다. 같은 제품이 다른 공정을 거친다는 것입니다.
ex) 제품 UPPER FLANGE
ex) injector body
위 두 제품은 CNC + 세정을 거쳐도 생산이 되고 MCT 세정을 거쳐도 생산이 됩니다. 하지만 CNC+세정의 리드타임이 더 적습니다!!
> 이것을 근거로 프로세스 마이닝을 돌려보니 MCT에서 병목이 일어나는 것을 확인할 수 있었고 프로세스 마이닝에서 확인되는 병목이 발생하는 세부 공정과 노란색 바 그래프에서 리드타임이 제일 긴 라우트가 관련이 있다면 리드타임이 짧은 라우트를 추천할 수 있습니다.
-> 결론 : 각 제품이 거치는 세부 공정을 모두 파악해서 리드타임을(노란색 바 그래프) 계산하고 결과를 토대로 프로세스 마이닝을 돌려본 후 결과가 매칭되면 리드타임이 적은 라우트를 추천하자!
> 이렇게 추천받은 라우트를 시뮬레이션에 사용할 수 있게 되었습니다.
1) 위에 있는 지표가 하나의 제품에 모든 라우트를 거치는 시뮬레이션 결과입니다. 왼쪽에는 노란색으로 병목이 환인되며 오른쪽에는 생산량이 나옵니다.
2) 아래에 있는 지표는 위에서 추천한 최적의 라우트만 시뮬레이션한 결과입니다. 왼쪽에 노란색 병목이 사라지고 오른쪽에 생산량이 증가한 것을 확인할 수 있습니다.
참고
'[대외활동] > [데이터 청년 캠퍼스]' 카테고리의 다른 글
[22.07.18]데이터 청년 캠퍼스 PART.여행시작 (0) | 2022.12.15 |
---|---|
데이터 청년 캠퍼스 PART.project 마무리 (0) | 2022.12.15 |
데이터 청년 캠퍼스 PART.프젝 10, 11, 12일차(데이터 병합, EDA) (0) | 2022.12.08 |
데이터 청년 캠퍼스 PART.19, 20일차 Clustering (0) | 2022.11.22 |
데이터 청년 캠퍼스 PART.18일차 MongoDB (0) | 2022.11.22 |