ChatGPT教你寫AI包教包會,七段對話寫個識別模型,準確度最高達99.7%
現在,AI小白甚至都不需要看教程,僅憑ChatGPT就可以創建模型。
它不僅幫你找數據集、訓練模型寫代碼,還能評估準確性、創建程序一步到位。
就有這么一個25歲小哥,讓ChatGPT幫他創建了個地理位置識別程序,最終準確率最高達99.7%。
而且各種細節步驟全在,一邊干活還一邊教你學習。
這一波,被ChatGPT感動到了。
更貼心的是,在每次答疑解惑完,ChatGPT都會說上一句:如果你有任何疑問,請告訴我。
具體實現
項目一開始,這位小哥開宗明義:我不想努力了,你可以幫我創建一個AI程序嗎?
以兩個坐標為輸入,并預測他們在哪個國家。
而ChatGPT“欣然”接受挑戰,還提醒這位小哥,需要相應數據集,否則模型無法訓練。另外要是還有更多信息,就更好了。
首先,需要找到合適的數據集。
小哥再問ChatGPT,結果它到是二話不說直接扔出了三個供其選擇,介紹鏈接都有。
從三個數據集來看,自然地球數據集顯然更好,而且還有“邊界”、海岸線等信息,這也就意味著要向模型解釋“邊界”概念,分隔標簽。但作為新人而言,第一個數據集與任務相關的數據更多,模型更容易實現,作者最終選擇了第一個數據集。
將這個決定告訴ChatGPT之后,緊接著它就來教你創建DataFrame(數據框架),并給出了示例代碼。
執行成功后,就來到了第二階段:模型訓練。ChatGPT也二話不說地給了份代碼,甚至還附上了詳細解釋。
該代碼將使用k-NN算法根據給定的坐標來預測國家。KNN 算法是一種簡單的算法,它根據輸入的 k 個最近鄰的大多數類對輸入進行分類。
在這個例子中,數據被分成訓練集和測試集,比例為80-20。然后用訓練集對 KNN 分類器進行訓練,并用測試集對模型的精度進行測試。
請記住,這是一個簡單的示例,模型的準確性可能不高。您可以嘗試使用不同的算法和k的不同值進行實驗,看看是否可以提高模型的準確性.
在丟棄一些空白數據(沒有坐標的國家)之后,首次執行k-NN訓練成功,并有99.7%的準確率。
不過這個結果并不是那么滿意,作者歸結了這幾個方面的原因:不同國家之間的數據分布不均;存在一些數據錯誤;偏見等問題。
這樣也就來到了第三步:重新評估。
在這段代碼中,我使用 OpenCage 地理編碼 API 從坐標中獲取國家信息。您需要使用API密鑰替換 YORBAPI _ KEY 以獲得對 API 的訪問權限。你可以在 OpenCage 網站上注冊一個免費的API密鑰。
按照說明,作者修改了代碼,結果顯示出現了很多NA錯誤,相當于只剩下30%數據。不過這個地球確實大部分都是水。(也沒毛病,Doge)
最終模型準確性下降了一些,有98.6%,但這個結果作者表示很滿意,畢竟只有7個對話回合就幫忙造出來一個AI模型來。
還嘗試了其他算法
不過這不是小哥的第一次嘗試。第一次談話時,他用了同一來源的較小數據集,需要更多數據集校正,而ChatGPT提供的第一個模型訓練代碼是邏輯回歸,只有51%的準確性。
而后它又嘗試了不同的“求解器”(準確率約為65%),以及其他算法,包括隨機森林和k-NN,準確率分別為93%和92%。
這位25歲小哥在SentinelOne 擔任高級安全研究員,研究和開發惡意軟件檢測邏輯。
他因為對機器學習很感興趣開始自學有一定基礎,在本次對話中其實他特意以小白的身份與ChatGPT對話,結果被強大的效果驚艷到。
最后他還表示,真的在考慮用“他們”而不是“它”來稱呼ChatGPT。
所以AI小白們,ChatGPT快用起來吧。(Doge)
完整對話:https://sharegpt.com/c/7zLivmp
參考鏈接:https://xrl1.sh/posts/coordinates-model-with-ChatGPT/