기계 학습 | 기계 학습을 기반으로 한 공급망 관리의 판매 재고 최적화 분석 (실용적 공유)

이번에는 기계 학습을 사용하여 향후 일정 기간 동안의 판매 예측을 수행하여 판매 재고 계획의 의사 결정 분석을 지원하여 합리적인 재고 할당의 목적을 달성하고 자원 비용 낭비를 줄입니다. 가능한 한 많이 잘라 냈지만 실제 내용은 너무 많습니다. 관심있는 친구는 + 즐겨 찾기 를 팔로우 하고 나중에 천천히 볼 수 있습니다 . 콘텐츠가 괜찮다고 생각되면 격려해주세요. 아이디어가 있으면 댓글을 달거나 비공개 메시지를 남겨주세요 . 그럼 우리는 사업 얘기를 시작 해요 ~

1. 데이터 준비 단계

데이터 세트 설명

기술 검증을 위해 사용되는 데이터 세트는 kaggle에 제약 판매 예측 프로젝트 ROSSMANN 저장 클러스터링 및 예측에서 제공되는 전체 데이터 세트는 세 개의 테이블이 포함되어 있습니다. : 트레이닝 세트 , 테스트 세트 대리점 정보 테이블을 . 테스트 세트는 교육 세트보다 매출과 고객이 적습니다. 다른 필드는 정확히 동일합니다. 교육 세트와 테스트 세트에는 각각 1017209와 41088이 있습니다. 교육 세트와 테스트 세트의 처음 5 개 데이터는 다음과 같습니다.

테스트 세트에는 향후 6 주 동안의 판매 프로모션이 포함되며 지정된 딜러의 판매 또는 총 고객 수를 예측해야합니다.

딜러 정보 데이터 세트 store.csv에는 1115 개의 데이터, 즉 1115 개의 딜러와 10 개의 필드가 있습니다 .

Store 필드는 딜러만을 나타내고 train.csv 및 test.csv는 Store 필드를 통해 store.csv와 연결할 수 있습니다.

데이터 전처리

1. 먼저 날짜 필드 날짜에서 연도, 월, 일 및 주를 추출하고이를 새 필드로 사용하여 시간별 데이터 집계를 용이하게합니다.

2. 세 테이블의 범주 형 변수를 인코딩하고 sklearn에 내장 된 LabelEncoder 인코딩을 사용합니다.

3. 다음과 같이 각 테이블의 누락 된 필드, train.csv, test.csv, store.csv가 누락되었는지 확인합니다.

상점 테이블에서 누락 된 필드 CompetitionDistance는 가장 가까운 경쟁자까지의 거리를 나타냅니다. 연속 변수입니다. 중앙값은이 변수의 누락 된 값을 채우는 데 사용되며 다른 모든 실제 변수는 0으로 채워집니다. 실제로 열린 필드 인 테스트 테이블의 11 개 변수의 경우 열리지 않은 것으로 보이며 후속 모델링에서 직접 필터링되며 여기서 처리되지 않습니다.

4. 병합 된 필드 CompetitionOpenSinceMonth는 가장 가까운 경쟁자가 개장 한 달을 나타내고, CompetitionOpenSinceYear는 개장 연도를 나타내고, 구조 필드 CompetitionOpenSince는 경쟁자가 개장 한 이후의 총 월을 나타냅니다. Week에서 구조 필드 Promo2Since는 판매자가 프로모션에 참여한 후 경험 한 주 수를 나타냅니다. 경험에 따르면 Promo2Since와 Promo는 현재 프로모션 프로모션과 이전 프로모션이 경쟁 관계를 갖기 때문에 음의 상관 관계를 표시합니다.

상관 분석

변수 간의 상관 관계 분석을 수행하고 대표 프로모션 관련 변수 인 Promo, Promo2, Promo2Since 및 경쟁 관련 변수를 선택하고 CompetitionDistance, CompetitionOpenSince를 다음과 같이 산포도를 만듭니다.

그림에서 알 수 있듯이, 딜러의 유형에 관계없이 현재의 프로모션 프로모션은 현재 판매량을 크게 늘릴 수있는 반면, 이전의 프로모션 2 프로모션은 현재 판매량을 감소시키고, 현재 프로모션 이후 월요일에 판매가 정점에 도달 할 것임을 알 수 있습니다. 현재 프로모션중인 가맹점은 토요일과 일요일에 문을 열지 않고, 세 번째 유형의 가맹점은 일요일에 문을 열지 않으며, 네 번째 유형의 가맹점은 현재 프로모션 중이 아닌 일요일에 문을 열지 않는 것으로 나타났습니다.

동시에 다음과 같이 판매량에 프로모션의 영향을 미쳤습니다.

모든 사업의 매출이 연말에 정점에 이르렀고 명백한 달이 매출에 큰 영향을 미친다는 것을 알 수 있습니다.

마지막으로 모든 변수의 상관 계수 행렬이 아래와 같이 만들어집니다.

Weekofyear 및 Month, Promo2 및 PromoInterval은 매우 상관 관계가 있으므로 모델링 할 때 Month 및 PromoInterval이 삭제되고 나머지 변수는 모두 기계 학습 모델을 빌드하는 데 사용됩니다.

2. 모델링

확립 된 모델은 주로 세 가지 유형이 포함 : 시계열 모델 , 기계 학습 모델 , 그리고 깊은 학습 모델을.

시계열 ARIMA 모델

판매 데이터는 대표적인 시계열 데이터로, 판매 데이터에 대한 시계열 모델을 구축하려면 데이터의 안정성과 추세를 확인해야합니다. 모델링 된 데이터는 모든 딜러의 일일 총 매출액입니다. 과도한 데이터 변동을 피하기 위해 원래 데이터의 로그를 취합니다. 안정성 테스트는 가장 일반적으로 사용되는 adfuller 단위 루트 테스트를 사용합니다. 결과는 다음과 같습니다.

P 값은 매우 작으며 시퀀스는 99 % 신뢰 수준에서 고정 된 것으로 간주됩니다. 안정되지 않은 경우 안정 될 때까지 차이 연산을 수행 할 수 있지만 일반적으로 3 차이 후에는 안정적입니다.

푸리에 분해 , 웨이블릿 분해 , TSI 분해 등과 같은 일부 방법을 통해 데이터는 예측 가능한 부분과 불규칙한 변화 (무작위 변동)로 분해됩니다. 예측 가능한 부분은 불규칙한 변화보다 훨씬 많은 부분을 차지합니다. 미래 상황을 예측하십시오. 추세를 확인하려면 TSI 분해를 사용합니다. 즉, 시계열을 추세 추세, 계절 주기적 계절 및 임의 부분 잔차의 세 부분으로 분해 한 다음 추세 부분에 대한 시계열 모델을 만든 다음 계절을 예측 값으로 추가합니다. 무작위이며 예측할 수 없습니다. 판매 데이터 분해 효과는 다음과 같습니다.

뚜렷한 추세가없고 변동하는 상태를 나타내는 것은 어렵지 않습니다. 계절 부분을 확대 한 후 기간이 7이고 잔여 부분에 결함이있는 것으로 확인됩니다. 이는 판촉 또는 휴일과 관련이있을 수 있습니다. 당분간 표를 클릭하여 잔여의 안정성을 확인하십시오. , 결과는 다음과 같습니다.

P 값은 매우 작고 99 % 신뢰도로 안정적입니다. 다음으로 ARIMA 모델을 사용하여 트렌드 부분에 대한 모델을 구축하고 AR과 MA의 차수가 4이고 차이가 없는지 확인하여 최종 차수는 order = (4,0,4)입니다. 트렌드의 피팅 효과는 다음과 같습니다.

지수 감소에 계절 부분을 추가 한 결과는 다음과 같습니다.

시계열은 7 : 3에 따라 훈련 세트와 테스트 세트로 나뉘고, 원본 데이터와 예측 데이터는 7 일에 따라 다운 샘플링되고 합산됩니다. 검증 세트의 RMSE가 상당히 커서 예측이 크다는 것을 알 수 있습니다. 편차는 21 %에 이릅니다.

기계 학습 모델

데이터 세트는 7 : 3의 비율에 따라 트레이닝 세트와 테스트 세트로 나뉘며, 예측 정확도가 상대적으로 높은 3 개의 트리 모델 인 GBT, Xgboost, LightGBM, RandomForest가 예측에 사용됩니다. 예측 효과는 다음과 같습니다.

검증 세트의 평균 예측 오차는 10.91 %입니다.

검증 세트의 평균 예측 오차는 5.57 %입니다.

검증 세트의 평균 예측 오차는 8.57 %입니다.

마지막으로 예측 효과가 가장 좋은 Xgboost를 최종 기계 학습 모델로 선택하여 매출을 예측하고 매출 예측에 대한 예측 간격을 설정합니다. 예측 매출이 범위 내에 있지 않을 경우 제조업체 또는 유통 업체는 이에 따라 재고 조정 또는 판촉 계획 또는 판매를해야합니다. 인사 배치가 변경됩니다. 예측 구간은 예측값의 사 분위수에 따라 결정됩니다. 예측 상단 라인은 Q3 + k1 (Q3-Q1), 하단 라인은 Q1-k2 (Q3-Q1)입니다. k1 k2 값은 가맹점의 재고 상태에 따라 결정됩니다. 예측 구간을 추가 한 후의 예측 효과는 다음과 같습니다.

위 내용은 회사 전체의 모든 딜러의 판매량을 예측하기위한 것입니다. 다음으로 다양한 딜러 유형의 판매량을 예측합니다. 이로 인해 딜러를 5 가지 유형으로 구분하여 계층 적 클러스터링을 채택한 결과는 다음과 같습니다.

실제 상황에 따라 유형 수를 지정하여 카테고리별로 모델을 별도로 구성 할 수 있으며 딜러별로 모델을 제작할 수도 있습니다. 따라서 총 판매량, 특정 유형 또는 특정 딜러의 판매 예측을 제공 할 수 있습니다. 다음 그림은 다음 6 주 동안이 딜러의 판매량 예측 값과 예측 간격을 보여줍니다. 황금색 선은 예측의 상한이고 노란색 선은 예측의 하한입니다.

세, 포스트 스크립트

연습 요약 은 주로 다음과 같이 개선이 필요한 일부 영역이 여전히 있음을 발견했습니다 .

  • 모델의 예측 편차는 여전히 상대적으로 크며 모델 융합 및 DNN과 같이 모델을 적절하게 개선해야합니다.
  • 모델 하이퍼 파라미터는 조정되지 않으며 유전 알고리즘을 결합하여 최적의 하이퍼 파라미터를 검색 할 수 있습니다.
  • 기능 엔지니어링이 너무 거칠기 때문에 특정 비즈니스 지식 생성 기능을 이해해야합니다 .

나중에이 연습을 위해 몇 가지 최적화를 할 것이며 며칠 더 걸릴 수 있으며 시간이 있으면 후속 조치를 작성하겠습니다. 하나의 키 트리플 연결 ~~


추천

출처blog.51cto.com/11855672/2562409