ChatGPT ADA(고급데이터분석) Use Case: 머신러닝 기반 수퍼마켓 상품가격 최적화 분석
2023-10-25. 전용준. 리비젼컨설팅. promptstrategies. (Working)
이 가상적인 분석 사례 use case의 목적은 미국 수퍼마켓에서 가격 최적화를 실현하고자 하는 것입니다. 이를 위해 30가지 다양한 상품의 가격을 분석하고, 최적가격을 도출하여 비즈니스 전략에 활용하는 것이 핵심 목표입니다.
분석 내용은 먼저 상품명을 기반으로 가상적인 데이터셋을 생성하고, 각 상품의 특성을 현실적으로 수정하여 데이터를 구축합니다.
그 다음, Random Forest와 같은 머신러닝 모델을 사용하여 가격 최적화 분석을 수행하고 핵심 패턴을 시각화하여 설명합니다. 이를 통해 최적가격을 산출하고, 현재 가격과의 비교를 통해 가격 전략을 개선합니다.
과정은 데이터 수집, 가공, 모델링, 시각화, 결과 해석의 단계로 구성되며, 도메인 지식과 데이터 품질 관리가 핵심 요소입니다.
사용되는 기법으로는 데이터 가공, 머신러닝 모델링, 시각화 및 회귀 분석이 있으며, 이러한 기법을 통해 가격 최적화를 위한 인사이트를 도출합니다.
이 분석은 최적가격 산출과 가격 전략 개선을 통해 수퍼마켓의 수익성을 향상시키는 것을 목표로 하며, 정확한 상품명을 언급하고 CXO들에게 제안서 형태로 결과를 제시합니다.
이 분석 예제를 통해 ChatGPT Advanced Data Analysis와 같은 정밀분석 지원도구에 대한 전반적인 이해가 가능할 수 있습니다. 추가로 다음 포스트도 참고하시기 바랍니다. ( Advanced Data Analysis (i.e. Code Interpreter) 활용: ChatGPT 고급데이터분석 Example(Boston Housing) https://revisioncrm.tistory.com/575 )
가상 데이터셋 데이터 (Python Code)
import pandas as pd
# 주어진 데이터를 딕셔너리로 정의
data = {
'ProductName': ['Coca-Cola', "Lay's Potato Chips", "Tide Laundry Detergent", "Kraft Macaroni & Cheese", "Cheerios",
"Heinz Ketchup", "Oreos", "Tropicana Orange Juice", "Campbell's Soup", "Kellogg's Frosted Flakes",
"Wonder Bread", "Ben & Jerry's Ice Cream", "Doritos", "Quaker Oats", "Bounty Paper Towels",
"Pampers Diapers", "Jif Peanut Butter", "Crest Toothpaste", "Johnson's Baby Shampoo",
"Nestle Toll House Chocolate Chips", "Hellmann's Mayonnaise", "Starbucks Coffee Beans",
"Charmin Toilet Paper", "Clorox Bleach", "Gatorade", "Aunt Jemima Pancake Mix",
"Hershey's Chocolate Bars", "Pringles", "Oscar Mayer Bacon", "Lipton Tea Bags"],
'CurrentPrice': [19.352466, 47.585001, 36.867703, 30.334266, 8.644913, 8.643731, 3.846097, 43.442631, 30.454636, 35.695556, 2.008640,
48.525583, 41.789689, 11.404616, 9.909423, 9.986821, 15.907870, 26.713065, 22.165306, 15.270228, 30.980792,
7.835199, 15.315088, 18.951730, 23.347429, 39.473622, 10.784015, 26.197487, 30.028314, 3.276070],
'Cost': [17.148615, 5.064992, 3.990399, 37.980979, 38.642465, 32.431695, 8.772571, 4.358049, 27.527205, 17.886024,
5.320510, 20.059488, 1.300843, 36.418156, 13.938352, 26.669630, 12.812588, 21.042687, 22.095056, 7.801751,
38.798593, 31.117747, 48.893271, 46.599384, 24.117049, 36.914032, 2.796818, 5.768926, 2.286478, 13.350548],
'Demand': [5650.5, 7230.0, 1337.0, 1878.0, 2076.0, 1791.0, 7489.5, 3264.0, 1763.0, 3235.0, 1379.0, 1492.0, 6168.0, 2180.0,
3062.0, 4884.0, 1064.0, 3449.6, 3437.0, 3568.0, 2367.0, 1506.4, 3027.0, 3695.0, 2495.0, 4134.0, 2162.0, 2522.0,
3640.0, 1391.0],
'Promotion': [0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0]
}
# 데이터프레임 생성
df = pd.DataFrame(data)
# 데이터프레임을 CSV 파일로 저장
df.to_csv('product_data.csv', index=False)
아래 제시된 prompting 방식을 실행하면 다음과 같은 데이터 테이블이 생성됨
ProductName | CurrentPrice | Cost | Demand | Promotion | ShelfSpace | BrandPower | CompetitorPrice | Seasonality | OptimalPrice | |
0 | Coca-Cola | 19.3525 | 17.1486 | 5650.5 | 0 | 6.79391 | 10 | 35.9013 | 4 | 33.415 |
1 | Lay's Potato Chips | 47.585 | 5.065 | 7230 | 0 | 15.6987 | 7 | 8.25626 | 3 | 19.3456 |
2 | Tide Laundry Detergent | 36.8677 | 3.9904 | 1337 | 0 | 21.3353 | 9 | 49.8893 | 1 | 59.794 |
3 | Kraft Macaroni & Cheese | 30.3343 | 37.981 | 1878 | 0 | 13.4192 | 7 | 14.0723 | 4 | 58.0981 |
4 | Cheerios | 8.64491 | 38.6425 | 2076 | 0 | 16.5645 | 1 | 48.8541 | 3 | 35.7061 |
5 | Heinz Ketchup | 8.64373 | 32.4317 | 1791 | 1 | 12.4069 | 1 | 21.1408 | 4 | 53.545 |
6 | Oreos | 3.8461 | 8.77257 | 7489.5 | 0 | 12.841 | 9 | 2.61949 | 1 | 15.3789 |
7 | Tropicana Orange Juice | 43.4426 | 4.35805 | 3264 | 1 | 11.4131 | 9 | 17.9085 | 1 | 20.3379 |
8 | Campbell's Soup | 30.4546 | 27.5272 | 1763 | 0 | 5.38129 | 4 | 32.0832 | 4 | 43.5197 |
9 | Kellogg's Frosted Flakes | 35.6956 | 17.886 | 3235 | 1 | 6.61837 | 9 | 34.3546 | 4 | 51.5664 |
10 | Wonder Bread | 2.00864 | 5.32051 | 1379 | 0 | 5.47144 | 3 | 27.0158 | 3 | 52.0978 |
11 | Ben & Jerry's Ice Cream | 48.5256 | 20.0595 | 1492 | 0 | 14.5462 | 10 | 22.9414 | 4 | 27.2479 |
12 | Doritos | 41.7897 | 1.30084 | 6168 | 1 | 9.71534 | 10 | 28.0918 | 4 | 53.8274 |
13 | Quaker Oats | 11.4046 | 36.4182 | 2180 | 1 | 12.6286 | 8 | 30.0421 | 1 | 51.8011 |
14 | Bounty Paper Towels | 9.90942 | 13.9384 | 3062 | 1 | 24.1975 | 9 | 4.96181 | 1 | 56.4599 |
15 | Pampers Diapers | 9.98682 | 26.6696 | 4884 | 0 | 8.73938 | 5 | 19.1131 | 4 | 48.1937 |
16 | Jif Peanut Butter | 15.9079 | 12.8126 | 1064 | 1 | 11.1557 | 1 | 12.8658 | 1 | 41.7944 |
17 | Crest Toothpaste | 26.7131 | 21.0427 | 3449.6 | 0 | 11.4333 | 3 | 40.3538 | 1 | 36.9378 |
18 | Johnson's Baby Shampoo | 22.1653 | 22.0951 | 3437 | 0 | 5.90238 | 10 | 24.0447 | 2 | 25.4756 |
19 | Nestle Toll House Chocolate Chips | 15.2702 | 7.80175 | 3568 | 1 | 6.1547 | 8 | 49.1877 | 3 | 56.7073 |
20 | Hellmann's Mayonnaise | 30.9808 | 38.7986 | 2367 | 1 | 9.34627 | 6 | 20.5424 | 3 | 58.5515 |
21 | Starbucks Coffee Beans | 7.8352 | 31.1177 | 1506.4 | 0 | 7.41832 | 8 | 41.0052 | 2 | 20.6157 |
22 | Charmin Toilet Paper | 15.3151 | 48.8933 | 3027 | 0 | 24.6291 | 9 | 40.1189 | 2 | 21.795 |
23 | Clorox Bleach | 18.9517 | 46.5994 | 3695 | 1 | 17.1218 | 4 | 8.38516 | 1 | 31.7088 |
24 | Gatorade | 23.3474 | 24.117 | 2495 | 1 | 14.5011 | 1 | 25.9017 | 4 | 29.6633 |
25 | Aunt Jemima Pancake Mix | 39.4736 | 36.914 | 4134 | 1 | 18.0719 | 6 | 35.0948 | 4 | 59.6952 |
26 | Hershey's Chocolate Bars | 10.784 | 2.79682 | 2162 | 0 | 17.0551 | 10 | 43.0596 | 4 | 14.6759 |
27 | Pringles | 26.1975 | 5.76893 | 2522 | 0 | 7.79855 | 4 | 16.972 | 2 | 5.99415 |
28 | Oscar Mayer Bacon | 30.0283 | 2.28648 | 3640 | 0 | 18.3884 | 6 | 11.7918 | 4 | 32.1642 |
29 | Lipton Tea Bags | 3.27607 | 13.3505 | 1391 | 0 | 13.0901 | 6 | 35.8463 | 1 | 14.8352 |
Stage 0: 데이터셋 생성
특정업무영역을 기준으로 실제와 유사한 사례를 생성하기 위해 데이터를 사례의 목적에 따라 생성합니다.
Stage 1: 머신러닝 기법을 도입한 초기 데이터 분석 실시
때로는 모델링을 먼저한 후 세부 사항 중 핵심을 검토하는 두괄식 방법도 사용됩니다. 다음은 그 사례를 보여줍니다.
Stage 2: 설명가능하도록 사후적인 추가 분석 실시
모델이 이미 파악한 내용을 인간이 이해할 수 있도록 하고 자동 생성된 분석과정과 결과가 적절했는지를 검토하기 위해 추가 분석을 실시합니다.
# 전용준 # 리비젼 # 프롬프트 # 머신러닝 # 고급데이터분석 # ChatGPT # 수퍼마켓 # 적용사례 # 가격최적화 # CodeInterpreter # 전용준 # 리비젼 # 프롬프트 # 머신러닝 # 고급데이터분석 # ChatGPT # 수퍼마켓 # 적용사례 # 가격최적화 # CodeInterpreter # promptStrategies
Stage 3: 분석결과 종합 및 요약
분석 과정이 길어지면 결과물도 많아지므로 세부사항과 요약을 구분해서 정리해봅니다.
Stage 4: Deployment - 경영진에 Action Strategy 제언 제공
데이터 분석의 결과는 실행으로 연결되어야 합니다. ChatGPT가 내장한 상식을 바탕으로 산업군에서의 문제영역별 전략을 도출합니다.
사용된 Prompt 흐름 정리 ::
P: 미국 수퍼마켓에서 많이 팔리는 다양한 상품명 30가지
P: 수퍼마켓의 상품 가격 최적화 분석을 위한 데이터 셋을 생성한다.
하나의 테이블에 가격 최적화 분석에 필요한 파생변수들을 생성하고 목표 변수를 추가하여 다음 스테이지의 머신러닝 분석에 적합하도록 설계한다
다음 상품들의 이름 목록을 데이터에 적용하며 상품 이름에 따른 상품 특성을 가상적으로 반영한 데이터 셋으로 생성한다
완성된 가상사례 데이터 셋의 샘플을 표시한다
{Coca-Cola
Lay's Potato Chips
Tide Laundry Detergent
Kraft Macaroni & Cheese
Cheerios
Heinz Ketchup
Oreos
Tropicana Orange Juice
Campbell's Soup
Kellogg's Frosted Flakes
Wonder Bread ...... }
P: 상품명을 참고하여 상품의 특성에 따른 값으로 가능한한 데이터를 현실적으로 수정하라
P: 생성된 데이터를 사용해 randomforest와 같은 모델링 방식을 적용하여 가격 최적화 분석을 수행하라. 핵심 패턴은 시각화하고 설명하라
P: 목표변수인 최적가격의 이 분석에서의 산출방식과 의미를 설명하고
세가지 가장 중요한 변수 각각에 대해서 현재가격과의 scatterplot을 생성하라.
scatterplot에서 최적가격이 현재보다 높으면 blue 낮으면 grey 색상으로 point를 표시하고, point의 사이즈는 Demand의 상대적 크기로 표시하라
각 scatterplot에서 point는 원형으로 설정해 buble chart 형태로 변형하라. point의 색상을 이미 지시한 바에 따라 정확히 표시하고 scatterplot에 point size와 색상에 대한 주석을 추가하라
각 scatterplot에서 point 위에는 상품명을 표시하라
marker를 색상이 채워진 원형으로 변경하고 X, Y 두 축간의 polynomial 회귀선을 추가하라. 회귀선은 두꺼운 lightblue 점선으로 한다
P: 지금까지의 분석결과를 핵심패턴 5가지로 요약 설명하라
P: 이 수퍼마켓의 CXO들에게 제시해야할 분석결과 기반의 세부적 가격전략 고도화 방안을 분석에서 나타난 정확한 상품명을 언급하며 200단어 분량으로 요약해 제공하라
>> 위의 프롬프트 흐름에서 얻을 수 있는 핵심 교훈 다섯 가지는 다음과 같습니다:
데이터 품질 관리의 중요성:
가격 최적화 분석을 위한 데이터 생성에서부터 시작하여, 데이터 품질은 핵심 요소입니다. 정확하고 신뢰할 수 있는 데이터를 수집하고 가공하는 과정은 분석의 성공에 큰 영향을 미칩니다.
도메인 지식의 필요성:
상품명을 통해 상품의 특성을 가상적으로 반영하는 작업은 도메인 지식이 필요합니다. 실제 시장에서의 경험과 이해가 데이터 생성 및 분석을 향상시키는 데 중요합니다.
시각화와 설명 분석:
핵심 패턴을 시각화하고 설명하는 능력은 분석 결과를 이해하고 의사 결정에 활용하는 데 중요합니다. Scatterplot과 회귀선을 활용하여 데이터를 직관적으로 해석할 수 있습니다.
최적가격(목표변수)의 산출과 의미:
최적가격을 분석하는 방식과 그 의미를 명확하게 설명하는 것은 의사 결정자들에게 중요한 정보를 제공합니다. 이를 통해 가격 전략을 개선할 수 있습니다.
전략적 제안과 의사 결정:
분석 결과를 기반으로 상세한 가격 전략을 제안하는 능력은 CXO들과 의사 결정자들에게 가치를 제공합니다. 정확한 상품명을 언급하며, 데이터에 기반한 제안을 구체적으로 제시하는 것이 중요합니다.
위 교훈들을 토대로 데이터 분석을 효과적으로 수행하고, 결과를 비즈니스 전략으로 연결하는 데 도움이 될 것입니다.
ChatGPT의 고급데이터 분석 (Advanced Data Analysis)는 강력하지만 (안타깝게도) 누구에게나 유용하지는 않습니다. 독자적으로도 거의 유사한 분석을 수행할 수 있는 전문분석가가 ChatGPT의 특성도 이해하고 있을 경우 유용한 도구라는 점을 기억해야만 할 것입니다.
# 전용준 # 리비젼 # 프롬프트 # 머신러닝 # 고급데이터분석 # ChatGPT # 수퍼마켓 # 적용사례 # 가격최적화 # CodeInterpreter # 전용준 # 리비젼 # 프롬프트 # 머신러닝 # 고급데이터분석 # ChatGPT # 수퍼마켓 # 적용사례 # 가격최적화 # CodeInterpreter # promptStrategies
함께 읽어볼 만한 글 ::
[AI 시론 ②] ‘엔터프라이즈 AI 전략’에 대한 챗GPT 코드 인터프리터 등장의 시사점 (컴퓨터월드 2023년 8월호)
https://www.comworld.co.kr/news/articleView.html?idxno=50893
'인공지능' 카테고리의 다른 글
[ONTHESTREET] ChatGPT 프로젝트 팀의 하루: A DAY IN THE LIFE (1) | 2023.11.04 |
---|---|
마케팅 Pro의 ChatGPT DALL-E3 활용: Conceptual Prototype 제작 (1) | 2023.10.27 |
인공지능의 진정한 현실: 2023 GPT-4 수준의 인공지능의 한계와 가능성 (0) | 2023.10.24 |
ChatGPT를 활용한 감성분석 사례: 제주도 호텔 예제 (1) | 2023.10.19 |
"디지털 마케터의 챗 GPT 활용 전략"을 읽을 이유(2023년 10월) (0) | 2023.10.19 |