博客專欄

EEPW首頁 > 博客 > 將 ChatGPT 用于數(shù)據(jù)科學(xué)項(xiàng)目的指南

將 ChatGPT 用于數(shù)據(jù)科學(xué)項(xiàng)目的指南

發(fā)布人:ygtu 時(shí)間:2023-09-05 來源:工程師 發(fā)布文章
推薦:使用NSDT場(chǎng)景編輯器快速搭建3D應(yīng)用場(chǎng)景

我們都知道 ChatGPT 的受歡迎程度以及人們?nèi)绾问褂盟鼇硖岣呱a(chǎn)力。但是,如果您是新手,則值得注冊(cè)ChatGPT免費(fèi)演示并嘗試它所能做的一切。您還應(yīng)該參加我們的 ChatGPT 簡(jiǎn)介課程,學(xué)習(xí)制作有效提示的最佳實(shí)踐,并探索利用這一強(qiáng)大 AI 工具的常見業(yè)務(wù)用例。

在本教程中,我們將學(xué)習(xí)如何使用 ChatGPT 來處理端到端的數(shù)據(jù)科學(xué)項(xiàng)目。我們將使用各種提示來創(chuàng)建項(xiàng)目大綱、編寫 Python 代碼、進(jìn)行研究和調(diào)試應(yīng)用程序。此外,我們將學(xué)習(xí)編寫有效的 ChatGPT 提示的技巧。

使用 ChatGPT 進(jìn)行端到端數(shù)據(jù)科學(xué)項(xiàng)目

在項(xiàng)目中,我們將使用來自DataCamp Workspace的貸款數(shù)據(jù),并圍繞它規(guī)劃數(shù)據(jù)科學(xué)項(xiàng)目。

ChatGPT 在這里完成了 80% 的工作,我們只需要掌握快速工程就可以讓一切正確,為此,我們有令人驚嘆的 ChatGPT 數(shù)據(jù)科學(xué)備忘單。它帶有60 + ChatGPT提示,用于基于SQL,R和Python的數(shù)據(jù)科學(xué)任務(wù)。

項(xiàng)目規(guī)劃

這是項(xiàng)目中最重要的部分,我們?cè)谄渲胁榭纯捎觅Y源和目標(biāo)以提出最佳策略。

您可以轉(zhuǎn)到 chat.openai.com 并發(fā)起新的聊天。之后,我們將提及可用的貸款數(shù)據(jù)集,并要求 ChatGPT 提出構(gòu)建端到端通用投資組合項(xiàng)目的步驟。

提示:“我有一個(gè)由 9500 行和 14 列組成的貸款數(shù)據(jù)集:['credit.policy', 'purpose', 'int.rate', 'installment', 'log.annual.inc', 'dti', 'fico', 'days.with.cr.line', 'revol.bal', 'revol.util', 'inq.last.6mths', 'delinq.2yrs', 'pub.rec', 'not.full.paid']。你能列出我必須遵循的步驟來為我的投資組合開發(fā)一個(gè)端到端的項(xiàng)目嗎?

我們確實(shí)拿到了清單,但是忘了提階級(jí)失衡問題和項(xiàng)目目標(biāo),就是準(zhǔn)確預(yù)測(cè)“貸款不還”。

更新提示:“請(qǐng)包括階級(jí)不平衡問題,并準(zhǔn)確預(yù)測(cè)貸款是否會(huì)償還,而不是貸款是否償還。

同樣,我們對(duì)模型監(jiān)控不感興趣,我們希望構(gòu)建一個(gè)Gradio應(yīng)用程序并將其部署在Huggingface Spaces上。

更新提示:“我們將使用 Gradio 創(chuàng)建一個(gè) Web 應(yīng)用程序并將其部署到 Spaces 上,我們不會(huì)在生產(chǎn)中監(jiān)控模型。

貸款數(shù)據(jù)分類器的想法生成

作者動(dòng)圖 |項(xiàng)目中涉及的步驟的最終列表

我們得到了一個(gè)包含 9 個(gè)步驟的列表,如上所示,并詳細(xì)說明了我們應(yīng)該如何處理每個(gè)步驟。

以下是我們將在本教程中遵循的任務(wù)列表:

  • 數(shù)據(jù)清理和預(yù)處理。處理缺失值、將分類變量轉(zhuǎn)換為數(shù)值變量、縮放/規(guī)范化數(shù)據(jù)以及處理數(shù)據(jù)中的任何異常值或異常。此外,您需要通過對(duì)少數(shù)階級(jí)(未全額支付的貸款)進(jìn)行過度抽樣或?qū)Χ鄶?shù)階級(jí)(全額支付的貸款)進(jìn)行過抽樣來解決階級(jí)不平衡問題。

  • 探索性數(shù)據(jù)分析 (EDA)。瀏覽數(shù)據(jù)集以深入了解數(shù)據(jù),例如變量的分布、變量之間的相關(guān)性以及識(shí)別數(shù)據(jù)中的任何模式。

  • 特征工程。創(chuàng)建新特征或轉(zhuǎn)換現(xiàn)有特征以提高模型的預(yù)測(cè)能力。

  • 型號(hào)選擇。嘗試多種模型,例如決策樹、隨機(jī)森林、邏輯回歸或支持向量機(jī) (SVM)。

  • 模型訓(xùn)練和評(píng)估。根據(jù)數(shù)據(jù)訓(xùn)練所選模型,并使用各種指標(biāo)(如準(zhǔn)確性、精度、召回率和 F1 分?jǐn)?shù))評(píng)估其性能。

  • 超參數(shù)優(yōu)化。微調(diào)所選模型的超參數(shù)以提高其性能。

  • 使用 Gradio 創(chuàng)建 Web 應(yīng)用程序。選擇最佳模型后,您可以使用 Gradio 創(chuàng)建 Web 應(yīng)用程序。

  • 在空間上部署 Web 應(yīng)用程序。使用 Gradio 創(chuàng)建 Web 應(yīng)用程序后,您可以將其部署到 Spaces 上。

  • 測(cè)試 Web 應(yīng)用。測(cè)試它以確保它按預(yù)期工作。

探索性數(shù)據(jù)分析 (EDA)

探索性數(shù)據(jù)分析是關(guān)于數(shù)據(jù)操作、統(tǒng)計(jì)分析和數(shù)據(jù)可視化的。我們可以通過編寫有關(guān)編寫 Python 代碼以在我們的數(shù)據(jù)集上進(jìn)行探索性數(shù)據(jù)分析的后續(xù)提示來完成它。

后續(xù)提示:“請(qǐng)編寫一個(gè) Python 代碼來加載并執(zhí)行貸款數(shù)據(jù)集的探索性數(shù)據(jù)分析 (EDA)”

機(jī)器人將理解上下文,并提出帶有注釋和詳細(xì)說明其工作原理的 Python 代碼。

用于 EDA 的 Python 代碼

作者動(dòng)圖 |用于 EDA 的 Python 代碼

  1. 將數(shù)據(jù)集加載并顯示為 Pandas 數(shù)據(jù)幀。

數(shù)據(jù)

2. 顯示數(shù)值變量的行數(shù)和列數(shù)以及統(tǒng)計(jì)摘要。

3. 在每列中顯示缺失值。正如我們所看到的,我們沒有。

4. 可視化目標(biāo)變量“not.full.paid”的分布

可視化目標(biāo)變量的分布

5. 可視化變量之間的相關(guān)性。

可視化變量之間的相關(guān)性

6. 了解貸款用途分布。

了解貸款用途分布

7. 了解按貸款用途劃分的利率分布。

了解按貸款目的劃分的利率分布

特征工程

我們將執(zhí)行特征工程以簡(jiǎn)化預(yù)處理任務(wù),而不是預(yù)處理和清理數(shù)據(jù)。

后續(xù)提示:“編寫 Python 代碼執(zhí)行特征工程”

我們確實(shí)得到了正確的解決方案,但它包含不相關(guān)的代碼,因此我們必須編寫更新提示來修改代碼。

更新提示:“僅添加特征工程部分。

ChatGPT提出了兩個(gè)新功能:“installment_to_income_ratio”和“credit_history”。

預(yù)處理和平衡數(shù)據(jù)

同樣,ChatGPT知道項(xiàng)目的背景。我們不必再次解釋一切。因此,我們將簡(jiǎn)單地要求它編寫一個(gè) Python 代碼來清理和預(yù)處理數(shù)據(jù)。

后續(xù)提示:“現(xiàn)在編寫一個(gè)python代碼來清理和預(yù)處理數(shù)據(jù)集”

  1. 刪除不必要的列并將分類變量轉(zhuǎn)換為數(shù)字變量。

2. 使用標(biāo)準(zhǔn)縮放器縮放數(shù)值要素。

3. 使用 imblearn 的過采樣方法處理類不平衡。

正如我們所看到的,我們已經(jīng)成功地平衡了班級(jí)。

型號(hào)選擇

在這一部分中,我們要求 ChatGPT 為模型選擇任務(wù)訓(xùn)練各種模型的數(shù)據(jù)。

后續(xù)提示:“編寫用于模型選擇的后續(xù) python 代碼。嘗試決策樹、隨機(jī)森林、邏輯回歸或支持向量機(jī) (SVM)。注意:僅包括模型選擇部分。

它生成了 Python 腳本,用于將數(shù)據(jù)集拆分為訓(xùn)練和測(cè)試,并在指定模型上訓(xùn)練數(shù)據(jù)集以顯示準(zhǔn)確性指標(biāo)。

隨機(jī)森林算法的性能明顯優(yōu)于其他模型。

超參數(shù)調(diào)優(yōu)和模型評(píng)估

我們將選擇性能更好的模型并進(jìn)行模型評(píng)估。我們指定使用準(zhǔn)確性、精度、召回率和 F1 分?jǐn)?shù)作為指標(biāo)和交叉驗(yàn)證,以確保模型的穩(wěn)定性。

后續(xù)提示:“選擇 RandomForestClassifier 并編寫用于模型評(píng)估的 python 代碼。使用準(zhǔn)確性、精度、召回率和 F1 分?jǐn)?shù)作為指標(biāo)和交叉驗(yàn)證,以確保模型不會(huì)過度擬合訓(xùn)練數(shù)據(jù)。

我們將更新 Python 以添加超參數(shù)調(diào)優(yōu)任務(wù)并保存性能最佳的模型。

更新提示:“在上面的代碼中還包括超參數(shù)調(diào)優(yōu)并保存性能最佳的模型”

代碼的最終版本使用 GridSearchCV 進(jìn)行具有五個(gè)交叉驗(yàn)證拆分的超參數(shù)優(yōu)化,并使用 f1 指標(biāo)進(jìn)行評(píng)估以查找最佳超參數(shù)。

之后,ChatGPT 自動(dòng)添加代碼,在測(cè)試集上選擇最佳模型進(jìn)行模型評(píng)估,并顯示性能最佳的超參數(shù)。

我們有一個(gè)穩(wěn)定的模型,準(zhǔn)確率為 89.35。精度和召回率相似。

最后,我們將使用 joblib 保存模型。

可以在 DataCamp 工作區(qū)中找到包含輸出的源代碼。

使用 Gradio 創(chuàng)建 Web 應(yīng)用程序

現(xiàn)在是最有趣的部分。我們將僅使用提示來創(chuàng)建完全可自定義的 Web 應(yīng)用程序,該應(yīng)用程序?qū)⒔邮軘?shù)字輸入并使用機(jī)器學(xué)習(xí)模型顯示結(jié)果。

ChatGPT 已經(jīng)知道上下文,所以我們需要讓它為貸款數(shù)據(jù)分類器編寫一個(gè) Gradio Web 應(yīng)用程序。

后續(xù)提示:“編寫 Python 代碼以創(chuàng)建用于貸款數(shù)據(jù)分類器的 Gradio Web 應(yīng)用程序。我們不使用列['credit.policy', 'days.with.cr.line', 'purpose']。

要求 ChatGPT 只包含 Gradio 應(yīng)用程序部分,而不是訓(xùn)練,然后包含推理腳本。

更新提示:“只需包含 gradio 應(yīng)用程序部分。

我們得到的代碼顯示預(yù)測(cè)類概率,我們希望顯示分類標(biāo)簽。

更新提示:“修改代碼以顯示分類而不是類概率。

運(yùn)行代碼后,我們看到了多個(gè)警告和錯(cuò)誤。您可以通過向 ChatGPT 提及錯(cuò)誤來改進(jìn)它。

我們需要了解 ChatGPT 的局限性。它是在一個(gè)舊數(shù)據(jù)集上訓(xùn)練的,如果你希望它使用最新的API更新代碼,你會(huì)碰壁。相反,我們必須閱讀 Gradio 文檔并手動(dòng)更新代碼。

失敗提示:“使用 gradio.components 中的組件更新 Gradio 代碼”

在 Gradio 應(yīng)用程序中,我們正在加載保存的模型并從用戶那里獲取輸入以顯示模型預(yù)測(cè)。

通過閱讀 Gradio 文檔了解 Gradio 的工作原理。

您可以將上述代碼保存在“app.py”文件中,并通過在終端中運(yùn)行“python app.py”腳本在瀏覽器中啟動(dòng)應(yīng)用程序。

貸款審批分類器應(yīng)用

作者動(dòng)圖 |貸款審批分類器應(yīng)用

盡管我們的應(yīng)用程序運(yùn)行良好,但 ChatGPT 完全錯(cuò)過了我們縮放了數(shù)字特征。因此,您可以返回并保存標(biāo)準(zhǔn)標(biāo)量參數(shù),而不是要求更新代碼。

之后,使用 joblib 在您的應(yīng)用程序中加載標(biāo)量。

那么,我們?yōu)槭裁匆謩?dòng)執(zhí)行此操作?如果你要求 ChatGPT 修改一行,它可能會(huì)修改整個(gè)代碼甚至變量名稱。

是的,ChatGPT并不完美,它永遠(yuǎn)不會(huì)取代開發(fā)人員。

在空間上部署 Web 應(yīng)用程序

您可以簡(jiǎn)單地要求ChatGPT教您在Hugging Face Spaces上部署gradio應(yīng)用程序的簡(jiǎn)單方法,它將列出必要的步驟。

提示:“如何將 gradio 應(yīng)用程序部署到擁抱面孔空間。

  1. 轉(zhuǎn)到擁抱臉網(wǎng)站,然后單擊左上角的個(gè)人資料圖片以選擇“新空間”選項(xiàng)。

擁抱臉

圖片來源:作者

  1. 添加名稱和許可證類型以創(chuàng)建應(yīng)用程序存儲(chǔ)庫(kù)。

  2. 單擊“文件和版本”選項(xiàng)卡+ 添加文件>“上傳文件”以在存儲(chǔ)庫(kù)中添加文件。

  3. 拖動(dòng) app.py、模型和縮放器文件,然后單擊“將更改提交到主”按鈕,然后使用提交消息保存提交。類似于 Git。

將更改提交到主

圖片來源:作者

如果您遇到運(yùn)行時(shí)錯(cuò)誤,那是因?yàn)槟浱砑?requirements.txt 文件。選擇“文件和版本”選項(xiàng)卡> + 添加文件>創(chuàng)建一個(gè)新文件,并添加文件名和 Python 庫(kù)以及如下所示的版本。

創(chuàng)建新文件

圖片來源:作者

你的應(yīng)用已準(zhǔn)備就緒。您可以使用滑塊更改輸入并預(yù)測(cè)客戶是否應(yīng)該獲得貸款。

您可以在kingabzpro的擁抱面部空間上嘗試現(xiàn)場(chǎng)演示。

擁抱面部空間

編寫有效聊天 GPT 提示的提示

在將其用于現(xiàn)實(shí)生活中的項(xiàng)目時(shí),快速工程是棘手的。我們需要了解我們可以做什么或我們必須介入以糾正 ChatGPT 的規(guī)則。

以下是有關(guān)如何在不影響項(xiàng)目的情況下改善 ChatGPT 體驗(yàn)的一些提示。

  1. 始終寫出清晰簡(jiǎn)潔的提示。確保在開始時(shí)詳細(xì)解釋您需要什么的所有內(nèi)容。

  2. 創(chuàng)建項(xiàng)目的歷史記錄。ChatGPT 是一個(gè)聊天機(jī)器人,因此為了有效地理解上下文,您需要建立歷史記錄。

  3. 繼續(xù)努力。沒有標(biāo)準(zhǔn)的提示編寫方式。您需要從基本提示開始,并通過編寫后續(xù)更新提示來不斷改進(jìn)套裝。

  4. 提及代碼錯(cuò)誤。如果在本地計(jì)算機(jī)上運(yùn)行代碼并引發(fā)錯(cuò)誤,請(qǐng)嘗試在后續(xù)提示中提及該錯(cuò)誤。ChatGPT將立即從錯(cuò)誤中吸取教訓(xùn),并提出更好的解決方案。

  5. 手動(dòng)進(jìn)行更改。ChatGPT 是在舊數(shù)據(jù)上進(jìn)行訓(xùn)練的,如果你期望它提出這個(gè)想法或新的 API 命令,你會(huì)失望的。盡可能嘗試對(duì)代碼進(jìn)行手動(dòng)更改,因?yàn)樯傻拇a并不完美。

  6. 將其用于常見任務(wù)。如果您要求常見任務(wù),則使用 ChatGPT 成功的機(jī)會(huì)更大。

  7. 用它來學(xué)習(xí)新東西。始終要求 ChatGPT 解釋新事物或“如何做”教程。它將為您提供完成工作的簡(jiǎn)單步驟列表。如果您有學(xué)習(xí)障礙,這將非常有幫助。

如果您對(duì) ChatGPT 和 OpenAI API 感興趣,請(qǐng)注冊(cè)參加網(wǎng)絡(luò)研討會(huì):OpenAI API 和 ChatGPT 入門。您將學(xué)習(xí)如何使用 OpenAI API 等執(zhí)行語言和編碼生成任務(wù)。

結(jié)論

開發(fā)貸款審批分類器是將 ChatGPT 用于數(shù)據(jù)科學(xué)項(xiàng)目的眾多示例之一。我們可以使用它來生成合成數(shù)據(jù)、運(yùn)行 SQL 查詢、創(chuàng)建數(shù)據(jù)分析報(bào)告、進(jìn)行機(jī)器學(xué)習(xí)研究等等。生成式人工智能將繼續(xù)存在,它將使我們的生活更輕松。您無需在項(xiàng)目上花費(fèi)數(shù)周和數(shù)月的時(shí)間,而是可以在數(shù)小時(shí)內(nèi)開發(fā)、測(cè)試和部署數(shù)據(jù)科學(xué)應(yīng)用程序。

在本教程中,我們學(xué)習(xí)了使用 ChatGPT 進(jìn)行項(xiàng)目規(guī)劃、數(shù)據(jù)分析、數(shù)據(jù)清理和預(yù)處理、模型選擇、超參數(shù)優(yōu)化以及創(chuàng)建和部署 Web 應(yīng)用程序。

使用ChatGPT有一個(gè)問題。您需要具有統(tǒng)計(jì)分析和Python編碼的經(jīng)驗(yàn),才能理解項(xiàng)目中的不同任務(wù);沒有它,你就是盲目行走。通過參加 Python 數(shù)據(jù)科學(xué)家職業(yè)軌跡開始您的數(shù)據(jù)科學(xué)之旅,并獲得成功成為數(shù)據(jù)科學(xué)家所需的職業(yè)建設(shè)技能。

原文鏈接:將 ChatGPT 用于數(shù)據(jù)科學(xué)項(xiàng)目的指南 (mvrlink.com)


*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



關(guān)鍵詞: chatgpt 人工智能

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉