ChatGPT의 Code Interpreter가 데이터 분석에서 보여주는 능력에 완전히 놀랐습니다
재무부 데이터에 대해 "흥미로운 것을 알려주세요"와 같은 모호한 질문을 ChatGPT에게 했더니—직접 만드는 데 몇 시간이 걸렸을 통찰력 있는 그래프를 즉시 생성해 주었습니다.
이 글은 2023에 작성되었습니다. 이후 일부 내용이 달라졌을 수 있습니다.
Ethan Mollick이 chatGPT와 Code Interpreter의 강력함에 대해 쓰는 것을 보고, 저는 매우 궁금해졌습니다. 그때 휴가 중이라 오늘에서야 직접 다뤄볼 기회를 얻었습니다. 정말 놀라웠습니다!
맥락을 위해 설명드리면, 저는 Treasury Direct 웹사이트에서 미국 정부 증권 발행에 관한 데이터를 사용하기로 했습니다. 이 데이터세트를 선택한 이유는 이전에 "TreasuryDirect 웹사이트가 구식이라는 과장된 이야기를 믿지 말아야 하는 이유"라는 블로그 글을 써서 데이터세트에 어느 정도 익숙했기 때문입니다. 그리고 더 중요한 것은, 그래프를 생성하는 데 얼마나 걸렸는지 대략 기억하고 있었습니다.
전체 데이터세트 업로드가 매우 쉽습니다
버튼 하나만 클릭하면 데이터 사전과 함께 전체 데이터세트를 업로드할 수 있었습니다. 데이터세트에 대해 많이 설명할 필요도 없었고, 웹사이트의 이 문장들만 전달하면 되었습니다. "The Securities Issued in TreasuryDirect dataset details how many of each type of Treasury bonds are issued, redeemed, or outstanding in TreasuryDirect from Fiscal Year (FY) 2002 until present. Outstanding bonds refer to those which are still in circulation, and have not yet been redeemed. The number of outstanding Treasury bonds is determined by taking the difference between the numbers of Treasury bonds issued and redeemed. This dataset does not contain any information on the values or yields of the Treasury bonds."
특별히 요청하지 않았는데도 chatGPT가 데이터세트를 고수준에서 어떻게 이해했는지 설명하고 초기 데이터 행을 미리보기로 보여주는 점이 마음에 들었습니다.
이제 데이터와 "대화"를 시작할 수 있습니다
이 데이터세트에서 흥미로운 점을 알려주실 수 있나요?
chatGPT에게 "이 데이터세트에서 흥미로운 점을 알려주실 수 있나요?"라는 다소 모호한 질문을 했습니다. chatGPT가 직관적으로 인간에게 흥미로울 만한 것을 추측할 수 있는지 보고 싶었기 때문에 매우 일반적인 질문이었습니다.
그리고 이것이 답변입니다:
보시다시피, chatGPT는 아마도 제가 관심을 가질 만한 첫 번째 흥미로운 사항으로 총 판매 금액의 시간별 추세를 올바르게 추측했습니다. 그리고 다음 차트에서 증권 유형별로 총 판매를 세분화합니다. (문구와 최종 차트를 자세히 보시면, chatGPT가 "더 어두운 파란색" 대신 잘못된 색상 "주황색"이라고 말한 것을 볼 수 있지만, 큰 문제는 아닙니다.)
다음으로, chatGPT에게 또 다른 모호한 질문을 했습니다 :P
"이 데이터세트를 기반으로, treasury direct가 점점 더 인기를 얻고 있다고 생각하시나요?"
그리고 다음과 같은 답변이 마음에 들었습니다. "TreasuryDirect 웹사이트의 인기는 시간에 따른 매출과 거래 수의 추세를 조사하여 추론할 수 있습니다. 이러한 지표가 증가하면, 더 많은 사람들이 재무부 채권을 구매하기 위해 웹사이트를 사용하고 있음을 시사할 수 있습니다. 그러나 이것은 대략적인 추정이며 웹사이트 인기의 전체 그림을 나타내지 않을 수 있습니다. 다른 요인들이 작용할 수 있기 때문입니다."
톤이 적절하기 때문에 이 답변이 마음에 듭니다. ChatGPT는 불확실하다는 것을 명확히 하며, 답변이 여러 가능한 답변 중 하나일 뿐이라고 밝힙니다.
chatGPT가 생성한 그래프입니다
반복이 핵심입니다
위의 차트는 괜찮지만, 아직 제가 원하는 최종 결과물은 아닙니다. 그래서 chatGPT에게 "이 거래 수 시간 추이 차트를 블로그에 포함시키고 싶은데, 차트를 읽기 쉽게 다시 포맷해 줄 수 있나요?"라고 요청했습니다.
아래에서 하나씩 시간에 따른 개선을 보실 수 있습니다:
첫 번째 개선
제 요청 후 chatGPT가 이렇게 답변했습니다:
물론이죠, 차트를 더 읽기 쉽게 수정할 수 있습니다. 차트의 가독성을 향상시킬 수 있는 몇 가지 변경 사항은 다음과 같습니다:
- 제목, 레이블 및 눈금의 글꼴 크기를 늘립니다.
- 더 나은 가시성을 위해 플롯의 선 너비를 조정합니다.
- 더 설명적인 제목과 레이블을 추가합니다.
- 산만함을 피하기 위해 격자선을 더 밝게 만듭니다.
그리고 이것이 차트입니다
두 번째 개선
세로축에 이상한 점을 발견해서 이렇게 말했습니다 "세로축에서, 제 독자들이 1e6이 무엇을 의미하는지 이해할 수 있을지 모르겠습니다?"
그리고 이것이 결과입니다
"이해할 수 있습니다, 과학적 표기법은 때때로 일반 독자에게 혼란스러울 수 있습니다. 대신, y축 레이블을 백만 단위로 변환하고 해당 정보를 레이블에 추가할 수 있습니다. 이렇게 하면 숫자가 더 이해하기 쉬울 것입니다. 조정해 보겠습니다."
세 번째 수정
위 차트를 본 후 제 반응입니다 "네 이 그래프가 훨씬 나아지고 있네요! 추세를 보면 최근 몇 년간 거래 수가 크게 증가한 것 같습니다. 이것을 독자에게 어떻게 더 잘 보여줄 수 있을까요?"
그리고 chatGPT의 답변:
"시간에 따른 데이터의 추세를 강조하는 일반적인 방법 중 하나는 그래프에 추세선을 포함시키는 것입니다. 추세선(최적선이라고도 함)은 특정 패턴이 있는지 확인하기 위해 데이터 그룹의 행동을 나타내는 데 사용되는 선입니다.
여러분의 데이터 맥락에서, 추세선을 추가하면 단기적인 변동에도 불구하고 시간에 따른 거래 수의 전반적인 증가가 있는지 시각화하는 데 도움이 됩니다.
그래프에 추세선을 추가해 봅시다. 단순 선형 회귀 모델을 사용하여 추세를 추정하겠습니다. 또한 그래프의 범례에 추세선의 방정식과 R-제곱 값(데이터가 회귀선에 얼마나 잘 맞는지를 측정)을 포함하여 독자에게 더 많은 맥락을 제공하겠습니다."
chatGPT의 답변은 자신감 있게 들리지만, 위의 차트에서 빨간 추세선이 보이지 않는 것을 확인할 수 있습니다. 그래서 피드백을 제공했습니다
네 번째 수정
"위 차트에서 빨간 선이 전혀 보이지 않습니다"
그리고 chatGPT의 답변:
"혼란을 드려 죄송합니다. 추세를 나타내는 빨간 선은 데이터의 큰 변동으로 인해 보이지 않을 수 있습니다. 추세선, 특히 선형 회귀 모델의 경우, 대규모 변동이 있거나 추세가 선형이 아닌 경우 데이터를 적절히 나타내지 못할 수 있습니다.
추세를 강조하는 대안적인 방법은 이동 평균(롤링 평균이라고도 함)을 사용하는 것입니다. 이 기법은 특정 기간에 걸쳐 변동을 평균화하여 장기 추세를 강조합니다.
데이터에 12개월 이동 평균을 적용하고 원래 데이터와 함께 플롯해 봅시다. 이렇게 하면 전체적인 추세를 더 잘 시각화할 수 있을 것입니다."
"이동 평균은 단기 변동을 완화하고 데이터의 장기 추세를 강조합니다. 이 경우, 12개월 기간에 걸쳐 거래 수를 평균화하여 계산됩니다.
이동 평균 선은 월별 변동에도 불구하고 데이터의 일반적인 추세를 보여줍니다. 보시다시피, 거래 수에 명확한 상승 추세가 있으며, 이는 TreasuryDirect가 점점 더 인기를 얻고 있다는 관찰을 뒷받침합니다."
정말 대단하지 않나요? 저는 chatGPT에게 12개월 이동 평균을 보고 싶다고 말하지 않았는데 스스로 제안했습니다. 솔직히, 지난 20년 대비 최근 몇 년간의 대규모 변화를 시각화하는 이 방법을 생각하지 못했습니다. 다시 한번 매우 인상적입니다!
색상 선택도 눈에 띌 것입니다. 변화를 강조하기 위해 의도적으로 추세선에 더 어두운 색상을 사용하며, 이것이 바로 제가 원하는 것입니다.
최종 수정
마지막 차트에 이미 감명 받았지만, 이렇게 추가했습니다 "사실, 한 가지 추가 질문이 있는데, 위 차트에 격자선이 필요할까요? 격자선을 제거하여 차트를 더 단순하게 만들 수 있을까요?"
그리고 이것이 받은 답변입니다
이 수정 과정을 읽으시면 시간이 너무 오래 걸린다는 느낌을 받으실 수 있지만, 실제로 각 반복은 실행에 5-10초도 걸리지 않습니다. 이것은 직접 하는 것보다 확실히 훨씬 빠릅니다!
제가 만든 차트와 chatGPT 차트의 직접 비교
위에서 언급했듯이, 이 데이터세트를 사용하여 이전에 블로그 글을 썼기 때문에 과거에 직접 몇 가지 차트를 만들었습니다. 이제 동일한 차트를 chatGPT를 사용하여 재생성하는 것이 얼마나 빠른지 비교하고 싶습니다.
그래서 이렇게 썼습니다 "2016년 1월부터 2023년 2월까지 treasury direct의 funded account 추세를 보여주는 그래프를 생성해 줄 수 있나요?"
제가 직접 만든 차트와 chatGPT가 만든 것을 나란히 보여드리겠습니다. 아래는 제가 직접 만든 것입니다:
기억이 맞다면, 이전에 이 차트를 만드는 데 5-10분 이상 걸렸습니다.
하지만 chatGPT를 사용하면 몇 초 만에 완성되었고, 이것이 받은 결과입니다 (보너스로 12개월 이동 평균 포함). 어느 버전이 더 나은지는 여러분이 판단하세요 :P
결론
chatGPT와 Code Interpreter가 현재 데이터 분석을 위해 할 수 있는 것에 완전히 놀랐으며, 앞으로 더 많은 개선과 함께 무엇을 할 수 있을지 기대됩니다 :D
정기적으로 하시는 가장 지루한 데이터 작업은 무엇인가요? Code Interpreter에 던져본 적이 있으신가요? 제 데이터만큼이나 여러분의 도메인 특화 데이터도 잘 처리하는지 궁금합니다.
감사합니다,
Chandler
















