將 ChatGPT 用于數(shù)據(jù)科學(xué)項(xiàng)目的指南
推薦:使用NSDT場景編輯器快速搭建3D應(yīng)用場景
我們都知道 ChatGPT 的受歡迎程度以及人們?nèi)绾问褂盟鼇硖岣呱a(chǎn)力。但是,如果您是新手,則值得注冊ChatGPT免費(fèi)演示并嘗試它所能做的一切。您還應(yīng)該參加我們的 ChatGPT 簡介課程,學(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)目中最重要的部分,我們在其中查看可用資源和目標(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í)拿到了清單,但是忘了提階級失衡問題和項(xiàng)目目標(biāo),就是準(zhǔn)確預(yù)測“貸款不還”。
更新提示:“請包括階級不平衡問題,并準(zhǔn)確預(yù)測貸款是否會償還,而不是貸款是否償還。
同樣,我們對模型監(jiān)控不感興趣,我們希望構(gòu)建一個(gè)Gradio應(yīng)用程序并將其部署在Huggingface Spaces上。
更新提示:“我們將使用 Gradio 創(chuàng)建一個(gè) Web 應(yīng)用程序并將其部署到 Spaces 上,我們不會在生產(chǎn)中監(jiān)控模型。
作者動圖 |項(xiàng)目中涉及的步驟的最終列表
我們得到了一個(gè)包含 9 個(gè)步驟的列表,如上所示,并詳細(xì)說明了我們應(yīng)該如何處理每個(gè)步驟。
以下是我們將在本教程中遵循的任務(wù)列表:
數(shù)據(jù)清理和預(yù)處理。處理缺失值、將分類變量轉(zhuǎn)換為數(shù)值變量、縮放/規(guī)范化數(shù)據(jù)以及處理數(shù)據(jù)中的任何異常值或異常。此外,您需要通過對少數(shù)階級(未全額支付的貸款)進(jìn)行過度抽樣或?qū)Χ鄶?shù)階級(全額支付的貸款)進(jìn)行過抽樣來解決階級不平衡問題。
探索性數(shù)據(jù)分析 (EDA)。瀏覽數(shù)據(jù)集以深入了解數(shù)據(jù),例如變量的分布、變量之間的相關(guān)性以及識別數(shù)據(jù)中的任何模式。
特征工程。創(chuàng)建新特征或轉(zhuǎn)換現(xiàn)有特征以提高模型的預(yù)測能力。
型號選擇。嘗試多種模型,例如決策樹、隨機(jī)森林、邏輯回歸或支持向量機(jī) (SVM)。
模型訓(xùn)練和評估。根據(jù)數(shù)據(jù)訓(xùn)練所選模型,并使用各種指標(biāo)(如準(zhǔn)確性、精度、召回率和 F1 分?jǐn)?shù))評估其性能。
超參數(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 上。
測試 Web 應(yīng)用。測試它以確保它按預(yù)期工作。
探索性數(shù)據(jù)分析是關(guān)于數(shù)據(jù)操作、統(tǒng)計(jì)分析和數(shù)據(jù)可視化的。我們可以通過編寫有關(guān)編寫 Python 代碼以在我們的數(shù)據(jù)集上進(jìn)行探索性數(shù)據(jù)分析的后續(xù)提示來完成它。
后續(xù)提示:“請編寫一個(gè) Python 代碼來加載并執(zhí)行貸款數(shù)據(jù)集的探索性數(shù)據(jù)分析 (EDA)”
機(jī)器人將理解上下文,并提出帶有注釋和詳細(xì)說明其工作原理的 Python 代碼。
作者動圖 |用于 EDA 的 Python 代碼
將數(shù)據(jù)集加載并顯示為 Pandas 數(shù)據(jù)幀。
2. 顯示數(shù)值變量的行數(shù)和列數(shù)以及統(tǒng)計(jì)摘要。
3. 在每列中顯示缺失值。正如我們所看到的,我們沒有。
4. 可視化目標(biāo)變量“not.full.paid”的分布
5. 可視化變量之間的相關(guān)性。
6. 了解貸款用途分布。
7. 了解按貸款用途劃分的利率分布。
特征工程我們將執(zhí)行特征工程以簡化預(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)目的背景。我們不必再次解釋一切。因此,我們將簡單地要求它編寫一個(gè) Python 代碼來清理和預(yù)處理數(shù)據(jù)。
后續(xù)提示:“現(xiàn)在編寫一個(gè)python代碼來清理和預(yù)處理數(shù)據(jù)集”
刪除不必要的列并將分類變量轉(zhuǎn)換為數(shù)字變量。
2. 使用標(biāo)準(zhǔn)縮放器縮放數(shù)值要素。
3. 使用 imblearn 的過采樣方法處理類不平衡。
正如我們所看到的,我們已經(jīng)成功地平衡了班級。
型號選擇在這一部分中,我們要求 ChatGPT 為模型選擇任務(wù)訓(xùn)練各種模型的數(shù)據(jù)。
后續(xù)提示:“編寫用于模型選擇的后續(xù) python 代碼。嘗試決策樹、隨機(jī)森林、邏輯回歸或支持向量機(jī) (SVM)。注意:僅包括模型選擇部分。
它生成了 Python 腳本,用于將數(shù)據(jù)集拆分為訓(xùn)練和測試,并在指定模型上訓(xùn)練數(shù)據(jù)集以顯示準(zhǔn)確性指標(biāo)。
隨機(jī)森林算法的性能明顯優(yōu)于其他模型。
超參數(shù)調(diào)優(yōu)和模型評估我們將選擇性能更好的模型并進(jìn)行模型評估。我們指定使用準(zhǔn)確性、精度、召回率和 F1 分?jǐn)?shù)作為指標(biāo)和交叉驗(yàn)證,以確保模型的穩(wěn)定性。
后續(xù)提示:“選擇 RandomForestClassifier 并編寫用于模型評估的 python 代碼。使用準(zhǔn)確性、精度、召回率和 F1 分?jǐn)?shù)作為指標(biāo)和交叉驗(yàn)證,以確保模型不會過度擬合訓(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)行評估以查找最佳超參數(shù)。
之后,ChatGPT 自動添加代碼,在測試集上選擇最佳模型進(jìn)行模型評估,并顯示性能最佳的超參數(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ù)測類概率,我們希望顯示分類標(biāo)簽。
更新提示:“修改代碼以顯示分類而不是類概率。
運(yùn)行代碼后,我們看到了多個(gè)警告和錯(cuò)誤。您可以通過向 ChatGPT 提及錯(cuò)誤來改進(jìn)它。
我們需要了解 ChatGPT 的局限性。它是在一個(gè)舊數(shù)據(jù)集上訓(xùn)練的,如果你希望它使用最新的API更新代碼,你會碰壁。相反,我們必須閱讀 Gradio 文檔并手動更新代碼。
失敗提示:“使用 gradio.components 中的組件更新 Gradio 代碼”
在 Gradio 應(yīng)用程序中,我們正在加載保存的模型并從用戶那里獲取輸入以顯示模型預(yù)測。
通過閱讀 Gradio 文檔了解 Gradio 的工作原理。
您可以將上述代碼保存在“app.py”文件中,并通過在終端中運(yùn)行“python app.py”腳本在瀏覽器中啟動應(yīng)用程序。
作者動圖 |貸款審批分類器應(yīng)用
盡管我們的應(yīng)用程序運(yùn)行良好,但 ChatGPT 完全錯(cuò)過了我們縮放了數(shù)字特征。因此,您可以返回并保存標(biāo)準(zhǔn)標(biāo)量參數(shù),而不是要求更新代碼。
之后,使用 joblib 在您的應(yīng)用程序中加載標(biāo)量。
那么,我們?yōu)槭裁匆謩訄?zhí)行此操作?如果你要求 ChatGPT 修改一行,它可能會修改整個(gè)代碼甚至變量名稱。
是的,ChatGPT并不完美,它永遠(yuǎn)不會取代開發(fā)人員。
在空間上部署 Web 應(yīng)用程序您可以簡單地要求ChatGPT教您在Hugging Face Spaces上部署gradio應(yīng)用程序的簡單方法,它將列出必要的步驟。
提示:“如何將 gradio 應(yīng)用程序部署到擁抱面孔空間。
轉(zhuǎn)到擁抱臉網(wǎng)站,然后單擊左上角的個(gè)人資料圖片以選擇“新空間”選項(xiàng)。
圖片來源:作者
添加名稱和許可證類型以創(chuàng)建應(yīng)用程序存儲庫。
單擊“文件和版本”選項(xiàng)卡> + 添加文件>“上傳文件”以在存儲庫中添加文件。
拖動 app.py、模型和縮放器文件,然后單擊“將更改提交到主”按鈕,然后使用提交消息保存提交。類似于 Git。
圖片來源:作者
如果您遇到運(yùn)行時(shí)錯(cuò)誤,那是因?yàn)槟浱砑?requirements.txt 文件。選擇“文件和版本”選項(xiàng)卡> + 添加文件>創(chuàng)建一個(gè)新文件,并添加文件名和 Python 庫以及如下所示的版本。
圖片來源:作者
你的應(yīng)用已準(zhǔn)備就緒。您可以使用滑塊更改輸入并預(yù)測客戶是否應(yīng)該獲得貸款。
您可以在kingabzpro的擁抱面部空間上嘗試現(xiàn)場演示。
編寫有效聊天 GPT 提示的提示在將其用于現(xiàn)實(shí)生活中的項(xiàng)目時(shí),快速工程是棘手的。我們需要了解我們可以做什么或我們必須介入以糾正 ChatGPT 的規(guī)則。
以下是有關(guān)如何在不影響項(xiàng)目的情況下改善 ChatGPT 體驗(yàn)的一些提示。
始終寫出清晰簡潔的提示。確保在開始時(shí)詳細(xì)解釋您需要什么的所有內(nèi)容。
創(chuàng)建項(xiàng)目的歷史記錄。ChatGPT 是一個(gè)聊天機(jī)器人,因此為了有效地理解上下文,您需要建立歷史記錄。
繼續(xù)努力。沒有標(biāo)準(zhǔn)的提示編寫方式。您需要從基本提示開始,并通過編寫后續(xù)更新提示來不斷改進(jìn)套裝。
提及代碼錯(cuò)誤。如果在本地計(jì)算機(jī)上運(yùn)行代碼并引發(fā)錯(cuò)誤,請嘗試在后續(xù)提示中提及該錯(cuò)誤。ChatGPT將立即從錯(cuò)誤中吸取教訓(xùn),并提出更好的解決方案。
手動進(jìn)行更改。ChatGPT 是在舊數(shù)據(jù)上進(jìn)行訓(xùn)練的,如果你期望它提出這個(gè)想法或新的 API 命令,你會失望的。盡可能嘗試對代碼進(jìn)行手動更改,因?yàn)樯傻拇a并不完美。
將其用于常見任務(wù)。如果您要求常見任務(wù),則使用 ChatGPT 成功的機(jī)會更大。
用它來學(xué)習(xí)新東西。始終要求 ChatGPT 解釋新事物或“如何做”教程。它將為您提供完成工作的簡單步驟列表。如果您有學(xué)習(xí)障礙,這將非常有幫助。
如果您對 ChatGPT 和 OpenAI API 感興趣,請注冊參加網(wǎng)絡(luò)研討會: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ā)、測試和部署數(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)請聯(lián)系工作人員刪除。