개발자로 후회없는 삶 살기
데이터 청년 캠퍼스 PART.project 마무리 본문
서론
드디어! 데이터 청년 캠퍼스 project 마무리입니다.
본론
20일차
- 프로젝트 가이드라인 정리
①공장 생산성 향상을 위해 기업의 생산 및 운영관리를 분석했습니다.
②향상하기 위해서는 장 단기적인 생산 운영 관리가 필요합니다.
③장기적으로는 생산전략을 세웁니다. -> 여기에 수요예측 + a
④단기적으로는 재고관리 및 공정에서 발생하는 병목을 해소해야 합니다. -> 안전재고, 병목
⑤재고관리에 사용되는 개념이 안전 재고량입니다.
⑥안전재고량은 추가로 보유하는 재고의 양입니다.
⑦안전재고량을 확보하면 발주 기간 동안 수요를 충족하지 못할 확률을 줄일 수 있습니다.
⑧공정에서의 병목은 다양한 이유로 발생합니다. 이때 A와 B사이에 재공들을 저장할 수 있는 버퍼를 설치하게 되면 병목 형목을 방지할 수 있습니다. 혹은, B 설비의 개수를 늘려 병목을 방지할 수 있습니다.
=> 다산의 생산운영계획을 분석하기 앞서 다산의 현황을 분석
다산은 만개가 넘는 제품들을 제조하는 다품종 소량 생산 공장입니다. 셀 수 없이 많은 제품을 한꺼번에 만들기 때문에 모든 제품 및 공정을 최적화하는 것은 무리라고 판단되어 5개의 고객사를 추려 고객사별 주요 제품 및 공정을 선정하여 분석하였습니다.
=> 안전재고량
단기적으로 재고관리에서 오는 손해를 최소화하기 위해 안전재고량을 계산합니다.
DP/KT 같은 경우가 안전 재고량을 고려하지 않아 발생한 케이스입니다. 수주를 받아온 시점부터 납품을 할 때까지 기간 동안 결품이 발생하였습니다. 이러한 상황을 방지하기 위해서는 적정 안전 재고량을 계산하여 재고를 쌓아 놓아야 합니다.
안전 재고량을 고려하기 위해서는 우선 어떠한 주문 방식을 사용했는지 알아야 합니다. 일반적으로 1. 고정 주문량 기반과 2. 고정 기간 기반 중 하나를 사용합니다.
> 1. 고정 주문량 기반은 재고량이 어떤 특정 값(최대치)까지 떨어지면 미리 정한 일정한 양을 주문하여 재고를 보충하는 방식입니다. 한 제품 당 비용이 비쌀 때 많이 사용하는 방식입니다.
> 2. 고정 기간 기반은 일정 기간이 경과했을 시 재고 수준을 확인하여 보충할 양을 "정하고" 그 양만큼 만 주문하여 재고를 보충하는 방식입니다, 2. 고정 기간 기반은 간헐적으로 재고를 확인해도 된다는 장점이 있습니다. 간헐적으로 재고를 관리한 후 확인한 재고 수준이 기준 값보다 낮을 경우, 재고 수준을 기준 값으로 회복하기 위하여 필요한 수량만큼 주문합니다.
+ 2. 고정 기간 기반은 재고량 관리의 편리성과 비용 절감이 필요한 경우 적용합니다. 다산은 생산 제품 수가 많고 제품당 비용이 많이 높은 편이 아니기 때문에 고정 기간 기반 재고 관리를 하는 것이 적합합니다. 실제 다산 또한 고정 기간에 따라 발주하는 것으로 예상됩니다.
-> DP/KT의 안전 재고량을 계산하자
T : 재고 조사 주기(조작)
L : 발주기간(조작)
d : 일간 수요 = 연간 수요/업무일(구해야 함)
σd : 발주 기간 중 단위기간 당 수요의 표준편차 = 일일 수요 표준편차(구해야 함)
μ : 재고조사 주기와 발주기간의 총수요의 평균 = d(T+L) : d를 구하면 구할 수 있음(구해야 함)
σT+L : σd * 루트(T+L), ↑를 구하면 구할 수 있음
z : 95%
I : 재고 수준 = 재고 검사로 확인된 재고수준 ex 50개 (구해야 함)
q : 주문량 = μ + z * σT+L - I ↑ 위를 구하면 구할 수 있음
21일차
- 안전재고량 구하기
DP
연간 수요 | 업무일 | 일간 수요 | 표준편차 | μ | 신뢰구간 | 재고수준 | 주문량 |
40548 | 4258 | 9.523 | 71.217 | 238 | 95% | 3561 | 17620 |
프로젝트 마지막 날
대망의 프로젝트 마지막 날입니다. 하지만 역시 바람 잘 날 없습니다. 조금이라도 더 알고리즘적인 부분에 신경을 썼다는 것을 어필하기 위해서 Apriori를 고려해 보았습니다. 결론적으로는 제외하기로 했지만 데이터 분석가와 그 분야 전문가의 대립 구도를 알 수 있는 기회였습니다.
- 아프리오리 도입 여부 판단
=> 추가하자는 입장
1. 여러가지 방식의 추천시스템이 존재합니다. 그 중 연관성 규칙을 이용한 아프리오리를 사용한 이유는 4가지가 있습니다.
1) 아프리오리는 함께 등장한 비율을 나타내는 것이 대부분입니다. 근데 목표 지향적으로 B도 좋고 C도 좋다면 전체에서 더 빈도가 많은 애로 추천을 합니다. ( ex) A 공정 다음에 B가 나온 리드타임도 짧게 걸리고 C가 나온 리드타임도 짧게 걸린다면 그 중 빈도수가 더 나은 B를 추천합니다.
2) 한 번 등장한 제품이나 하나의 공정만 거치는 제품은 의미가 없다고 판단되어 빈도수 기반의 추천 시스템인 아프리오리를 선택하였습니다. 빈도수가 적은 제품은 무시하기 위함입니다.
3) 상황에 따라 각 지표를 적절히 사용하자
① 신뢰도 : 공정 A를 포함하는 라우트 중 A와 B를 둘 다에 거치는 비중(동시출현개수 / 기준상품 리스트) -> 맥주를 사는 경우 중 맥주와 오징어를 같이 사는 비율 (50 % 이상의 신뢰도만 의미가 있다고 가정을 준다면 그 아래 데이터는 무의미)
② 지지도 : 전체 공정에서 특정 공정 A와 B를 둘 다에 거치는 비중(동시출현개수 / 전체 구매리스트) ->
우리가 구한 추천이 과연 올바른가? 총 1000개의 물품에 1만 번의 거래가 있는데 A 상품은 단 한번 거래되었다고 가정하면 A 데이터는 의미가 없습니다, 지지도를 구하는 목적은 추천할 만한 데이터 분석이다 라는 것을 판단하기 위함 = 개수나 빈도가 적은 데이터 필터링을 위함입니다.
③ 향상도 : A라는 상품에서 신뢰도가 동일한 상품 B와 C가 존재할 때, 어떤 상품을 더 추천해야 좋을지 판단 = A와 B의 신뢰도 40%, A와 C의 신뢰도 40% 이때 B는 전체 구매 50 중 5번 등장했고 C는 10번 등장했다면 C는 적은 등장 중 A와 연관이 깊으므로 C를 추천하자(★정정 : 신뢰도가 같다는 것은 (동시출현개수 / 전체 구매리스트)가 같다는 것일 뿐으로 빈도수가 같다는 것입니다. 그때 더 적은 빈도로 나타나는 공정을 구하는 게 말이 안 됩니다.
-> 상황
① 신뢰도가 중요한 경우 : 신뢰도가 높을수록 유용한 규칙입니다(★ 정정 : 그렇지만 신뢰도가 높다고 좋은 라우트가 아닙니다. > 왜냐하면 신뢰도도 비중이기 때문입니다.)
② 지지도가 중요한 경우 : 그냥 믿을 만한 데이터 인지 보는 거니 빼자
③ 향상도가 중요한 경우 : 향상도가 1보다 크면 우연이 아닙니다.
즉, 우리가 전체 패턴을 만든 이유는 하나의 제품이 아닌 전체 제품의 앞 뒤 상황을 보자는 것인데(노란색 바 그래프도 전체 제품의 앞 뒤 상황에 따라서 그렇게 나온 것일 것입니다.) 그러니 주문 개수나 횟수가 적은 희박하게 생산되는 제품이면 우연이여도 상관없으니 필요가 없으니 리드타임 막대 그래프대로 라우트를 결정합니다.
> 근데 우연이면 안 되는 빈번하게 주문되는 제품은 리드타임이 짧더라도 표에 더 좋은 라우트가 있다면 우연보다 안전을 택해야 하니 리드타임이 좀 더 길지만 표에 맞는 라우트를 선택하는 것이 올바를 수 있습니다.
=> 제외하자는 입장
문제점으로 이용할 수밖에 없습니다. 해결방안으로는 사용할 수 없습니다. -> 같은 제품 다른 공정을 거치는 제품 얘기를 시작하면서 아프리오리 표를 띄워서 같은 제품 다른 공정을 거치는 제품들이 이러한 빈도수를 가지더라고 현황분석을 합니다.
지금까지 여러 공정을 거치는 제품을 봤을 때 cnc > 세정이 43%였습니다. 근데 사실은 노란색 바 그래프를 보면 사실 더 리드타임이 짧은 라우트가 있더라 그러면 이건 문제가 아니냐!!!! 문제가 맞습니다. 그러니 노란색 바 그래프를 추천하는데 효력이 커집니다.
=> 아프리오리 제외
아프리오리는 최종적으로 사용하지 않기로 했습니다. 내 주장을 밝히고 팀원들을 설득하려고 했습니다. 하지만 나는 아프리오리를 사용해 본 경험이 없고 블로그 내용을 참고하여 막연하게 눈앞에 보이는 이득을 쫓았습니다. 하지만 역시 아프리오리를 수업에서 배운 팀원분께서 정리해 주셨습니다.
팀원 : "아프리오리는 빈도수 별로 많이 겹치는 상품끼리 관련성이 높다는 사실을 알려주는 것입니다. 하지만 우리는 빈도수가 많이 겹친다고 좋은 게 아니고 빈도수가 많더라도 공정 소요시간이 길면 줄여야 하는 게 목적입니다. 따라서 아프리오리는 그저 현황 분석정도로 ( ex) A, B 공정이 많이 겹치더라) 사용할 수 있을 거 같습니다. 이 이상으로 활용하기에는 억지로라는 평가를 받을 수 있습니다."
> 내 입장에서는 팀원이 전문가이다. 데이터 분석가로 회사 생활을 하면 이러한 경우가 많을 것 같습니다. 내가 모르는 분야의 분석을 해야 하는 경우 그 분야의 전문가에게 내가 한 분석 결과가 맞는지 검사를 받아야 하는데 이때 전문가가 아니라고 하는 것을 내 방식으로 이해를 해야 합니다.
참고
'[대외활동] > [데이터 청년 캠퍼스]' 카테고리의 다른 글
[22.08.02]데이터 청년 캠퍼스 PART.project 1, 2일차(OT) (0) | 2022.12.15 |
---|---|
[22.07.18]데이터 청년 캠퍼스 PART.여행시작 (0) | 2022.12.15 |
데이터 청년 캠퍼스 PART.project 13, 15, 16, 17일차(EDA) (0) | 2022.12.08 |
데이터 청년 캠퍼스 PART.프젝 10, 11, 12일차(데이터 병합, EDA) (0) | 2022.12.08 |
데이터 청년 캠퍼스 PART.19, 20일차 Clustering (0) | 2022.11.22 |