[Claude] 클로드 사용법 | AI로 데이터 분석하기

데이터 분석은 깃허브 코파일럿과 챗GPT로도 가능합니다. 다양한 AI 도구를 써보고 나에게 혹은 업무에 맞는 AI를 사용하는 것이 좋기 때문에 클로드를 사용한 데이터 분석 방법을 코파일럿이나 챗GPT로 활용해도 문제되지 않습니다. 다만, 본문에서는 클로드를 사용한 방법만 소개합니다.데이터 분석이란 데이터를 수집, 처리, 정제하고 이를 토대로 패턴, 트렌드, 인사이트를 도출하는 과정을 말합니다. 이 과정에서 AI 도구를 활용하면 많은 이점이 있습니다.방대한 양의 데이터를 빠르고 효율적으로 처리할 수 있습니다. 자연어 처리 및 머신러닝 같은 기술을 활용해 데이터에서 쉽게 발견하기 어려운 인사이트를 빠르게 도출해낼 수 있습니다.데이터 분석 과정에서 발생하는 반복적이고 시간 소모적인 작업을 자동화할 수 있어 개발자의 생산성을 크게 향상시킬 수 있습니다.점점 더 복잡하고 비정형 데이터가 쌓여가는 이 시대에 AI 도구를 활용한 데이터 분석은 필수불가결한 요소가 되어가고 있습니다.

# 1. 호텔 리뷰 데이터셋을 활용한 감성 분석

트립어드바이저에서 수집된 호텔 리뷰 데이터를 이용해 감성 분석을 하겠습니다.

  • 01 캐글에서 Hotel Reviews Dataset을 다운로드받습니다. https://www.kaggle.com/datasets/andrewmvd/trip-advisor-hotel-reviews

hero1-5

클로드에 업로드해 데이터 분석 시, 파일 크기 제한으로 인해 전체 데이터셋을 한 번에 업로드하기 어려울 수 있습니다. 이런 때에는 데이터셋의 일부를 선택해 실습을 진행하는 것이 좋습니다. 현재 클로드에서는 10MB 이하의 파일 업로드만 가능하기 때문에, 이번 실습에서는 50개 정도의 리뷰를 이용하겠습니다. 이 제한은 향후 변경될 수 있으니, 실습 시 파일 업로드 크기 제한을 확인하며 적절히 데이터량을 조절해 사용할 수 있도록 합니다. 다운로드받은 파일을 열어 상위 50개의 리뷰만 남기고 삭제해 hotel_reviews_50.csv라는 이름으로 새로운 데이터셋으로 만들어줍니다.

  • 02 클로드(https://claude.ai/chats)에서 새로운 대화를 시작하고, 위에서 생성한 50개 리뷰 데이터 파일(hotel_reviews_50.csv)을 업로드합니다.

  • 03 데이터 감성 분석 요청을 하겠습니다.

업로드한 호텔 리뷰 데이터에 대해 감성 분석을 수행해주세요. 
각 리뷰의 감성이 긍정인지 부정인지 판단하고 그 리뷰의 비율을 알려주세요.

hero2-5

클로드 답변

업로드해주신 호텔 리뷰 데이터 50개를 분석한 결과는 다음과 같습니다.
긍정 리뷰: 33개 (66%)
부정 리뷰: 17개 (34%)
각 리뷰의 평점을 기준으로 4점 이상은 긍정, 3점 이하는 부정으로 분류했습니다. 전체 리뷰 중 긍정적인 리뷰가 66%로 더 많은 비중을 차지했습니다. 호텔의 위치, 친절한 직원, 청결도 등에 대해 만족한 리뷰가 많았습니다.

반면 34%의 부정적 리뷰에서는 객실 내부 상태, 소음, 직원 서비스 등에 대한 불만 사항이 제기되었습니다.
이를 통해 전반적으로는 호텔에 대한 고객만족도가 높은 편이지만, 일부 개선이 필요한 부분도 있습니다. 호텔 측에서는 부정적 의견을 참고해 서비스 품질을 높이기 위해 노력할 필요가 있어보입니다.
 
  • 04 추가적인 분석을 긍정 부정에서 자주 등장하는 키워드를 파악해 리뷰에 영향을 미치는 핵심 키워드를 찾아보겠습니다.
앞서 호텔 리뷰 데이터에서 추출한 긍정 및 부정 키워드 분석 결과를 바탕으로,
이 호텔의 고객만족을 이끄는 주요 요인과 불만족을 유발하는 주요 요인은 무엇인지 요약해주세요.
그리고 호텔 서비스 개선을 위한 제안을 해주세요.

클로드 답변

호텔 리뷰 데이터 분석 결과를 바탕으로, 이 호텔의 고객만족과 불만족을 유발하는 주요 요인 및 개선 제안은 다음과 같습니다.
 

고객만족의 주요 요인
직원의 친절함과 도움 : 호텔 직원들의 친절한 응대와 고객 지원이 만족도를 높이는 데 큰 역할을 합니다.
편리한 위치 : 호텔의 위치가 주요 관광지나 상점가에 가까워 접근성이 좋은 점이 고객만족으로 이어집니다.
청결하고 편안한 객실 : 깨끗하고 쾌적한 객실 상태는 고객에게 긍정적인 경험을 제공합니다.
 

고객 불만족의 주요 요인
객실 상태 및 시설 문제 : 노후화되거나 관리 상태가 좋지 않은 객실은 고객 불만의 주요 원인입니다.
직원의 불친절과 서비스 미흡 : 직원의 태도나 서비스 품질이 기대에 못 미칠 때 불만이 발생합니다.
청결도 문제 : 객실, 욕실 등의 청결 상태가 좋지 않으면 부정적 평가로 이어집니다.
소음 문제 : 객실 내 또는 호텔 주변의 소음으로 인해 고객이 불편을 겪는 경우가 있습니다.
 

호텔 서비스 개선을 위한 제안
객실 리노베이션 및 정기적인 점검 : 노후화된 객실을 리노베이션하고, 정기적인 점검을 통해 시설과 비품을 관리해 객실 상태를 개선합니다.
직원 교육 강화 : 고객 응대와 서비스 마인드 향상을 위한 직원 교육을 강화해 친절하고 전문적인 서비스를 제공하도록 합니다.
청결 관리 강화 : 객실, 욕실, 공용 공간 등의 청결 상태를 철저히 관리해 쾌적한 환경을 유지합니다.
소음 관리 : 객실 방음 설비를 개선하고, 늦은 시간 소음 발생을 제한하는 등 소음 관리에 힘씁니다.
고객 의견 수렴 및 피드백 반영 : 고객 리뷰와 피드백을 적극적으로 수렴하고 분석해, 문제점을 파악하고 개선에 반영합니다.
 

이런 분석 결과와 제안을 바탕으로, 호텔은 고객만족도를 높이고 불만 사항을 해결하기 위한 전략적 접근이 필요합니다. 지속적인 모니터링과 개선 노력을 통해 경쟁력 있는 서비스를 제공할 수 있을 겁니다.
 

# 2. 데이터 이용해 그래프 그리기, 시각화하기

클로드는 아직 코드를 이용해 시각화를 할 수 있는 기능은 지원하고 있지 않습니다. 챗GPT 경우 GPT 4 이상에서 코드 인터프리터를 이용해 데이터 시각화 기능을 제공하고 있습니다. 하지만 포기하기엔 이릅니다. 이번 시간에는 클로드를 이용해 Chart.js의 코드를 받아서 직접 시각화를 하겠습니다. 실습 후에는 바로 시각화를 하는 ChatGPT와 결과물을 비교해보는 것도 좋은 공부가 될 것 같습니다.

  • 01 이번 실습에서는 COVID-19 데이터를 이용해 전 세계 일별 신규 확진자 수 추이를 시각화해보겠습니다. 먼저 깃허브 Our World in Data 리포지터리에서 아래 데이터를 다운로드합니다. https://github.com/owid/covid-19-data/tree/master/public/data/owid-covid-data.csv

hero3-5

  • 02 클로드 파일 용량 제한을 우회하기 위해 우선 50개의 데이터만 가지고 있는 ‘owid-covid-data-50.csv’를 생성합니다. 파일을 클로드에 업로드한 후 다음과 같이 요청해봅니다.

프롬프팅

데이터를 읽고 시각화하려고 합니다.
데이터 파일을 fetch해 Chart.js를 이용해
“전 세계 일별 신규 확진자 수 추이”를 시각화하는 index.html 코드를 주세요.

클로드 답변

다음과 같이 index.html을 작성하면 “전 세계 일별 신규 확진자 수 추이”를 Chart.js로 시각화할 수 있습니다:

<!DOCTYPE html> <html>
<head>
    <title>전 세계 일별 신규 확진자 수 추이</title>
    <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
</head>

<body>
    <canvas id="myChart"></canvas>

    <script>. 
        fetch('owid-covid-data-50.csv')
            .then(response => response.text()). 
            .then(csvData => {
                const rows = csvData.split('\n');
                const header = rows[0].split(',');
                const dateIndex = header.indexOf('date');
                const newCasesIndex = header.indexOf('new_cases');
                
                const dates = []; 
                const newCases = [];
                
                for (let i = 1; i < rows.length; i++) {
                    const row = rows[i].split(',');
                    const date = row[dateIndex];
                    const cases = parseInt(row[newCasesIndex]);
                    
                    if (date && !isNaN(cases)) { 
                        dates.push(date); 
                        newCases.push(cases);
                    } 
                }
                
                new Chart(document.getElementById('myChart'), { 
                    type: 'line',
                    data: {
                        labels: dates,
                        datasets: [{
                            label: '전 세계 일별 신규 확진자 수', 
                            data: newCases,
                            borderColor: 'blue',
                            fill: false
                        }] 
                    },
                    options: { 
                        responsive: true, 
                        plugins: {
                            title: {
                                display: true,
                                text: '전 세계 일별 신규 확진자 수 추이'
                            } 
                        }
                    } 
                });
            }); 
    </script>
</body> 
</html>

위 코드에서는 먼저 제공된 CSV 데이터 파일(‘owid-covid-data-50.csv’)을 fetch로 가져옵니다. 그다음 파일의 각 행을 파싱해 날짜(date)와 신규 확진자 수(new_cases) 데이터를 추출합니다. 추출한 날짜와 신규 확진자 수 데이터를 Chart.js의 라인 차트로 시각화합니다. x축에는 날짜가, y축에는 신규 확진자 수가 표시됩니다. 해당 HTML 파일을 브라우저에서 열면 “전 세계 일별 신규 확진자 수 추이”가 라인 차트로 시각화된 것을 볼 수 있을 겁니다. CSV 데이터 파일은 HTML 파일과 같은 경로에 위치해야 합니다.

  • 03 로컬에서 위 코드를 index.html에 적용하고 owid-covid-data-50.csv를 깃허브 리포지터리의 원본 데이터 주소로 고쳐준 후 브라우저를 통해 열어봅니다.

hero4-5

이처럼 방대한 데이터 내의 패턴과 통찰을 별도 모델링 구축 없이도 쉽고 빠르게 해낼 수 있습니다. 데이터 분석, 시각화뿐만 아니라 비즈니스 분야에 대한 데이터 기반의 인사이트를 이용한 의사결정까지도 AI 도구를 활용해 우리의 업무 생산성을 증대시킬 수 있습니다. 아래 프롬프트로 추가 데이터 분석도 시도해보시면 클로드를 이용한 데이터 분석에 대해 쉽게 감을 잡으실 겁니다.

  • 국가별로 확진자 수 추이를 비교해주세요.
  • 확진자 수와 사망자 수의 상관관계 분석해주세요. 지금까지 클로드를 활용한 데이터 분석 방법을 배워봤습니다. 똑같은 프롬프트라도 항상 같은 답을 내놓는 건 아니기 때문에 직접 프롬프트를 입력하여 답을 얻고, 반복적으로 실행하면서 자신의 업무에 맞는 가장 효율적인 데이터 분석 방법을 찾아나가는 것이 중요합니다.

AI를 활용한 데이터 분석으로 생산성을 초월해보시기 바랍니다. 더 다양한 GPT, AI 도구 사용법을 알아보고 싶다면 요즘 AI 페어 프로그래밍 (opens new window) 책을 추천합니다 😃))

XL (3)