講師:顧家祈 ●hiHedge CEO●連續創業家 前言 本次課程我們將介紹大家如何使用ChatGPT-4的Code Interpreter和Noteable程式幫助我們進行數據分析。談到數據分析,大家可能都會想到程式設計的問題,但是不用擔心!雖然數據分析和程式設計有關,但我們將告訴大家如何不用懂得怎麼寫程式,也可以和ChatGPT協作進行程式設計並進行數據分析。 一、未來寫程式的趨勢 相信有在寫程式的大家應該對Stackoverflow這個網站並不陌生。以往遇到不會寫的程式或者程式出錯,我們經常會將問題上傳到此網站,就會有熱心的程式設計師幫我們解決問題,且Stackoverflow的使用率以長期來說皆呈現大幅上升的趨勢。然而,ChatGPT的出現讓Stackoverflow的使用率大幅下滑(圖 1)。這樣的情況也告訴了我們未來程式設計的大趨勢。首先便是學習程式設計的門檻降低。以往學習寫程式時,往往需要耗費相當多的時間糾錯或除錯,但現在ChatGPT可以變成我們的導師,幫助我們糾錯,更可以解釋與提供我們所寫的程式的修正建議,讓學習程式設計變得更容易。另外,我們將從「與AI協作寫程式」的時代,進入「動嘴寫程式」。當前的程式設計的趨勢是人類與AI協作,人類仍然是程式的撰寫者,而AI則可以輔助我們寫程式。然而,五年內我們很有可能就只要動動嘴巴,明確地將我們的需求告訴電腦,電腦就可以自動幫我們完成並執行,這也就是現在愈來愈常聽到的「無程式碼程式設計」(no code coding)。 圖 1 :Stackoverflow原為程式設計師互相幫助,解決程式寫作過程中疑難雜症的平台,但ChatGPT出現之後,該平台的使用率呈現明顯下滑的趨勢。 二、程式碼編譯器(Code Interpreter)簡介 「程式碼編譯器」是ChatGPT今(2023)年七月所推出的新功能,它可以在ChatGPT的付費版中執行Python程式。我們可以將資料或者壓縮檔餵給ChatGPT,讓它在後臺作多種的轉換,而它也是一個無程式碼讓AI助手(AI Agent)幫我們寫程式的雛形。也就是,我們不需要再自己動手寫程式,而是可以直接告訴AI,讓它依照我們的需求幫我們寫程式,並讓它幫我們自動debug。目前ChatGPT的程式碼編譯器可以接受Excel、CSV、Zip等檔案,也可以協助我們分析Exel檔。另外,它也可以執行Python編譯器,甚至可以幫我們進行數據分析、統計分析與數據處理,並根據數據繪製統計圖表。 不過,與其它的AI軟體相同,目前ChatGPT的程式碼編譯器仍然有其限制。第一,它的分析可能錯誤或不到位,甚至可能會出現基本的錯誤,所以我們仍然必須小心,不要被它唬住了!第二,使用ChatGPT程式碼編譯器除了須付費購買ChatGPT-4以外,它也有使用上限,每三個小時只能有50則對話,因此較無法滿足使用量大的人。第三,如果我們在使用程式碼編譯器的過程中閒置了一段時間,電腦會自動清空我們的資料,只留下分析過程。最後則是ChatGPT目前仍無法上網,所以會受限於其資料庫最後更新日期的限制。 三、No Code做數據分析 了解了程式碼編輯器之後,我們將介紹大家如何不用懂得程式碼也可以進行數據分析。 數據分析三階段 首先,數據分析可以概略分為三個階段。第一階段也是最重要的階段為「定義問題」。我們一定要有一個想要解決的問題或想要了解的現象,也只有當我們的目標明確時,我們才能讓後續的數據分析是目標導向的。雖然定義問題很重要,但我們今天的課程會著重於數據分析的第二階段「分析數據」。以往在分析數據時,我們通常會要求數據分析師或資料科學家會寫程式或使用Python,甚至要了解基本的程式碼。因此,傳統分析數據可以分為五個階段,包含數據收集、數據清洗、數據探索、數據分析、數據可視化,其中最累的就是數據清洗的過程。數據分析師在收集完數據後,必須要修正、刪除或填補數據中的錯誤、缺失或不一致的資訊,這通常會耗費分析師大量的時間與體力。不過,值得開心的是,以上提到的五個分析數據的階段,現在都可以請ChatGPT代勞。最後,第三階段為「提出建議」,數據分析師在分析完數據後,提出報告解釋分析結果與決策建議,這一階段也可以讓ChatGPT幫忙執行。 範例演示 No Code無程式數據分析大致可以分為四個步驟:上傳資料、數據整理、數據可視化與數據分析。需要注意的是,我們必須丟給AI中文字體檔,它才能正確顯示中文。接下來我們將利用兩個公開資料,與大家分享運用無程式進行數據分析的範例。 公車運量分析 首先,我們可以先到政府資料開放平台(https://data.gov.tw/)下載CSV檔案,並在ChatGPT開啟新的對話窗,於「設定」中選擇「Beta features」後,再開啟「Code Interpreter」(圖 2),最後點選ChatGPT-4,選擇下拉框中的Code Interpreter就可以開始操作了。 圖 2:在ChatGPT開啟新對話窗後,需到「設定」中開啟Code Interpreter。 第二步,我們可以開始上傳檔案,並下Prompt「幫我分析資料、畫出圖表,使用我上傳的字體檔案」(圖 3)。 圖 3:上傳檔案與中文文字檔後,我們就可以開始請ChatGPT依照我們的需求讀取並分析數據。 分析數據完成後,我們就可以依照需求,請ChatGPT開始繪製圖表,例如可以請它「畫出每年的月均運量趨勢圖、比較不同年份的運量變化,給我簡短的資料報告」(圖 4)。我們可以發現,ChatGPT可以直接針對其所找出的數據,提供我們圖表並做簡短的報告。 圖 4:分析數據完成後,接下來就可以請ChatGPT針對不同的數據畫出趨勢圖等圖表。 接著,如果我們需要更詳盡的數據分析,我們也可以請ChatGPT幫助我們做統計檢定,檢定不同年份之間是否有顯著差異(圖 5)。 圖 5:利用ChatGPT協助我們更進一步地分析數據,進行不同年分之間的統計檢定。 以上為使用ChatGPT中的Code Interpreter協助我們分析公車運量的範例。我們也可以依照個人的需求,讓ChatGPT幫助我們畫出不同的圖表,如回歸圖與直方圖,大家可以自行嘗試看看喔! Netflix使用者數據分析 接下來的第二個案例為分析Netflix使用者資料。與上一個範例相同,我們第一步必須先上傳檔案以及中文文字檔,並讓ChatGPT幫我們「分析資料、做敘述性統計,提供可以做數據分析的方向,圖表皆使用繁體中文與上傳的字體檔案」。如果遇到ChatGPT呈現的圖表沒有照我們提供的字體檔案顯示文字時,我們可以再要求ChatGPT依照我們的檔案再畫一次圖表。若我們的客戶分布於世界各地,除了請ChatGPT產生圓餅圖與上述介紹過的圖表以外,也可以請它以世界地圖的方式幫我們畫出用戶的國家分布圖(圖 6)。 圖 6: 除了一般的圓餅圖與趨勢圖外,我們也可以請ChatGPT畫出使用者的國家分布圖。 以往這些圖表的產生通常需仰賴數據分析師利用不同的程式碼完成,但現在有了ChatGPT的Code Interpreter後,數據分析師就可以專注於其分析數據的工作了!由於篇幅關係,我們不再繼續展示ChatGPT繪製的圖表。最後要告訴大家,我們再繪製完圖表後,ChatGPT也可以提供我們行銷建議。例如我們可以問它,「我想增加Premium訂閱的人數,請給我行銷建議,並要有數據作支持」(圖 7)。 圖 7: ChatGPT針對數據提供我們行銷的建議。 三、用Noteable外掛爬蟲 本次課程要介紹的最後一個工具為「Noteable」。上一節介紹的Code Interpreter是ChatGPT-4的內建工具,而Noteable是ChatGPT-4的一款外掛程式,必須至ChatGPT-4的Plugin store中安裝,完成後Noteable就會出現在下拉選單中了(圖 8)。接下來,我們將示範如何用Noteable做爬蟲。 圖 8 :欲下載Noteable,我們可以在ChatGPT網頁中的ChatGPT-4下拉選單找到Plugin store,並在商店內下載Noteable。下載完成後,就可以直接選擇該功能進行操作。 以台北捷運的運量資料為例,假設我們想要爬台北捷運2023年1月至6月的資料,我們可以將台北捷運運量的網址複製後,開啟ChatGPT的Noteable功能,並請它「在Noteable增加新專案,幫我從網址下載2023年1月到6月的資料,網址格式:https://web.metro.taipei/RidershipPerStation/202301_cht.ods」(圖 9)。 圖 9 :有了ChatGPT的Noteable後,我們只要提供網址,它就會依照指令幫我們完成爬蟲。 ChatGPT完成爬蟲後,我們就可以點選它提供的網址查看它的爬蟲結果(圖 10)。雖然Noteable有時仍然會出錯,但它的好處是,如果我們看得懂程式碼,我們也可以自己修改Noteable中的程式碼。最後,假設我們想知道西門站的日運量,也可以要求ChatGPT做一個日運量的圖表。 圖 10:Noteable頁面。我們可以在此頁面中看到Noteable的爬蟲結果,若懂得程式碼,也可以自行在上面修改。 Noteable的優點是,它可以上網且檔案會處存在我們自己的Noteable專案裡面。另一個優點則是,如果我們懂得程式碼,也可以自行修改或調整ipython內容。不過,Noteable的缺點是,它時常會會錯意,繞了一大圈之後才能夠完成目標。 四、結語:無程式碼時代來臨 從上述的範例演示中,我們可以發現,我們已經不用自己動手寫程式,也不需要了解如何寫程式,就可以進行數據分析的工作,而寫程式的重擔也已經有AI助理幫我們處理,我們只需要明確地告訴它我們的目標,就可以得到我們想要的結果。因此,未來數據分析師就可以回歸其數據分析的本質,專助於提升其對數據的熟悉與洞察能力,寫程式語言已經不再是他們必備的技能了。最後提供大家數據分析時實用的咒語,希望大家能夠有了AI的幫忙後,讓分析數據的過程更事半功倍! 數據分析實用prompt定義問題根據這份資料,可以做哪些分析,提供那些建議?想要達到xxx目標,可以做哪些分析?分析數據幫我分析資料、處理遺漏值跟離群值、提供敘述性統計。數據可視化:幫我視覺化呈現資料。(可依需求指定為何種圖表)數據關聯性:幫我分析數據間的關聯性提出建議根據數據分析結果,提出行銷目標與建議。 【若想回顧完整版課程影音,請點選此連結;有任何問題或分享,也歡迎在本文底下留言。】