:: 게시판
:: 이전 게시판
|
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다. 통합 규정을 준수해 주십시오. (2015.12.25.)
통합규정 1.3 이용안내 인용"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
20/01/09 10:24
아이템마다 주어진 정보만으로 비용을 계산하는 기준과 방법이 명확하다면, 머신러닝까지 갈 필요가 없습니다만.. 처리하시려는 데이터의 형태와 양에 따라 다를수도 있습니다.
20/01/09 10:57
보통 그런 용도로는 회귀분석을 많이 사용하는데,, 각 입력값별로 가중치를 계산해주기 때문에 어떤 아이템이 결과값에 얼마만큼 영향을주는가 알 수 있거든요. 다만, 아이템이 5만개라 입력되는 속성값도 최소 5만개일텐데 그냥 알고리즘에 데이터를 부어서 쓰기는 어려울 것 같고, 축소시키는 작업이 필요할지도 모르겠습니다. 그리고 회귀분석 특성상 코드가 정상적으로 돌아갔다고해도 분석 결과가 유효한지 확인하는 과정도 해야해서 생각보다 시간이 오래걸리는 작업이 될 수 있습니다~
20/01/09 11:05
감사합니다.
5만개인 아이템은 일단 필터링 과정을 거쳐서 컨디션 추가 해서 많이 줄여야겟죠. 제가 공부하면서 본건 키와 몸무게 회귀분석이였는데 대충 키는 몸무게에 비례하니까 그래프의 요소가 명확한데.. 제 케이스는 함수를 어떻게 짜야할지 모르겠어요. Y=aX+B로 회귀분석선이라면 각 요소를 뭘로 해야하는지;;전혀 모르겠습니다. 일단 선형 회귀 분석한 튜로리얼이나 케이스를 찾아봐야겠네요..
20/01/09 11:30
파이썬 scikit-learn에 있는 회귀분석은 기본적으로 1차함수로 모델만들어주는데, 2차나 다차함수로 설정도 가능합니다. 모델 돌리는 것 자체는 몇줄이면 되서 인터넷 찾아보시면 금방 하실수 있을거에요.
20/01/09 11:29
일단 저 아이템 정보가 어떤식으로 들어가는지 모르겠는데 어떻게든 DB형태의 매트릭스 데이터로 만드셔야할겁니다. 아이템이 하나의 행으로 나와 있는 상태로요.
아이템 , 인보이스 ID, 가격, 수량(같이보내진아이템수량) A, 인보이스1, 10만원, 4개 이런식으로요. 여기서 일단 통계적으로만 접근하면 회기분석까지도 가지 않아도 기본적인 걸 볼수 있습니다. A가 보내질때 평균 금액 또는 수량당 평균 금액 등을 산정해볼 수 있죠. 자료가 충분히 쌓였다면 높은 금액을 유발하는 아이템일 수록 수량당 금액의 평균이 높겠죠. 여기서 꽤 정확히 무게 또는 A의 인보이스 금액을 추정하고 싶으면 정답데이터를 모으셔야합니다. 5만개는 아니더라도 수백개의 아이템에 대해서 단독으로 보냈을때 금액을 측정하시고 (많을수록 정확도가 올라가겠죠?) 아이템, 평균 인보이스 금액, 평균 수량당 인보이스 금액, 인보이스 수량, 수량당 인보이스 금액의 편차 등 아이템에 대한 통계 데이터를 만듭니다. 이 통계 데이터가 X에 해당합니다. 모을 수 있는 정보가 더 많으면 좋겠지만 무관한거는 불필요합니다. 여기서 아마 평균 수량당 인보이스 금액이나 편차 정도만 들어가도 대략적인 예측이 가능할거로 보입니다. 그리고 Y는 아까 측정했던 이미 알고 있는 목적 금액을 뜻합니다. 우리가 이미 노가다를 통해서 100개 대해서는 알고 있다고 하면 그걸로 회기분석 (Linear Regression) 이라는 기본적인 알고리즘을 통해 Y=aX+b의 형태로 학습 결과가 나오게 되는 겁니다. 그걸 정답을 몰랐던 다른 4만9천9백개의 아이템에 적용하면 추정치를 구할 수 있습니다. 알고리즘이야 다른걸 써도 되고 그렇게 해서 성능이 약간 달라질수는 있지만 중요한건 X데이터를 어떻게 설정하느냐 입니다. X데이터에 핵심 정보가 있지 않고 엉뚱한 데이터만 들어가 있으면 제대로 결과가 나오지 않습니다.
20/01/09 11:36
네 감사합니다. 머리속이 복잡(?)한데 한번 정리해서 다시 공부해봐야겠습니다.
다른데서 얻은 조언으로는 머신러닝까지 안가고 단순 연립방정식으로도 가능한지 않냐라고 해서 좀더 알아보도록 하겠습니다.
20/01/09 12:40
일단 numpy+ pandas로 데이터를 로드한뒤 scikit-learn같은 파이썬 머신러닝 라이브러리로으로 회귀분석 돌리시면 됩니다.
보다 정확한 회귀분석을 원하면 ridge나 lasso 버젼으로 혹은 elasticnet까지 가셔도 될겁니다.
20/01/09 13:32
본문에서 말씀하신 건 단순 통계로 가능합니다. 이런 상황에서 회귀분석은 실제론 의미가 없어요.
해상으로 미리 보내놓는 것 또한 선적, 운송, (특히) 보관비용이 든다는걸 고려하지 않으면, 최적화된 정답은 그냥 모든 물품을 해상으로 지금 넉넉하게 보내놓는 것입니다. 당연하게도 이걸 원하시는 건 아닐테니 선적 비용은 얼마인지, 보관엔 얼마가 드는지 등을 고려하시면 식은 훨씬 복잡해지고 풀기 어려워 집니다. 여기서 머신러닝을 적용하셔서, 어떤 물품이 어느 정도 양으로 언제 필요한지 상대측의 수요를 "예측"하고, 그 중 유의미하게 비용이 높은 것들을 미리 보내놓아 재고 비용까지 고려해 좀 더 쉽게 최적화 하실 수 있습니다.
20/01/09 14:13
현재 매니지먼트가 포커스를 둔게 항공운송료여서 다른 변수는 고려하지 않고 단순히 항공운송료를 줄여라입니다.
그런데 사실 항공 운송료를 줄이려면 재고를 많이 가져가버리면 그만이거든요. 그래서 그럴순 없으니 항공운반비 상승요인이 큰 아이템 리스트를 뽑아 볼 생각입니다..그 아이템들을 대상으로 별도의 액션을 취할 생각입니다.
|