我用AI做數據分析之四種堆疊聚合模型的比較
這里AI數據分析不僅僅是指AI生成代碼的能力,我想是測試AI數據分析方面的四個能力,理解人類指令的能力、撰寫代碼的能力、執行代碼的能力和解釋結果的能力。如果這四個能力都達到了相當的水準,才可以說真正實現了AI數據分析。而目前AI作為IDE插件的形式,只能說是半自動的AI數據分析。
之前測試過程中,AI在數據清洗方面,包括更改列名、尋找錄入錯誤等方面體現出了優于一般工具的表現,展現了良好地對任務的理解能力和對表格的處理能力,沒有涉及撰寫代碼等能力。
目的
既然有了AI的輔助,我們需要做一些自己能力之上的事情,之前自己對堆疊聚合模型有了解但是了解不多,且沒有用Python進行過編碼,在相關知識和編碼能力上都不能完成對各種堆疊聚合模型的測試和比較,所以這次定的目標是對“常見堆疊聚合模型的測試比較”。
背景
堆疊聚合模型(Stacking Aggregation Model),也被簡稱為 Stacking 模型,是一種高級的集成學習技術。它的核心思想是將多個不同的基礎模型(如決策樹、邏輯回歸、神經網絡等)的預測結果進行二次建模組合 。在這個過程中,第一層由多個不同的基礎模型組成,這些基礎模型在訓練數據上進行訓練,然后對測試數據做出預測。這些預測結果會被當作新的特征,輸入到第二層的模型(通常稱為元模型)中進行訓練和預測。通過這種方式,Stacking 模型能夠綜合利用各個基礎模型的優勢,挖掘出數據中更復雜的模式,從而有可能獲得比單個模型更好的預測性能。
基礎模型選擇策略:盡量選擇多樣化的基礎模型,比如線性模型(如線性回歸、邏輯回歸)與非線性模型(如決策樹、支持向量機)相結合。不同類型的模型對數據的理解和捕捉模式的能力不同,組合在一起可以覆蓋更廣泛的特征空間。例如在一個房價預測任務中,線性回歸可以捕捉房價與房屋面積等簡單線性關系,而決策樹則能發現不同區域、房屋類型等復雜條件下的房價規律。
交叉驗證策略:在訓練 Stacking 模型時,為了避免過擬合和更有效地利用數據,常使用交叉驗證。以 k 折交叉驗證為例,將訓練數據分成 k 份,每次用 k - 1 份數據訓練基礎模型,然后對剩下的 1 份數據進行預測。這樣重復 k 次,就可以得到所有訓練數據的預測結果,這些結果作為元模型的訓練數據。這種方式確保了基礎模型的預測結果是基于未見過的數據,提高了模型的泛化能力。
元模型選擇策略:元模型的選擇很關鍵,它需要能夠有效整合基礎模型的預測信息。常用的元模型有邏輯回歸、決策樹、神經網絡等。如果基礎模型的預測結果之間存在復雜的非線性關系,神經網絡可能是更好的選擇;若希望模型有較好的可解釋性,邏輯回歸或決策樹可能更合適。比如在一個信用風險評估中,如果只需要簡單判斷風險高低,邏輯回歸作為元模型就可以清晰地展示各基礎模型預測結果對最終風險判斷的影響權重。
結果
AI推薦了四種常見的堆疊聚合模型的組合,分別是:
組合1: logistic(base) + decision tree(base) +logistic(meta)
組合2:logistic(base) + decision tree(base) + neural network(meta) 組合3:
SVC(base) + KNN(base) +logistic(meta) 組合4: SVC(base) + KNN(base) +
neural network(meta)
另外,使用AI形成了分析的基礎代碼,代碼質量還是可以,用到的庫比較單一,主要是用scikit-learn中的代碼;
但是AI在執行代碼方面遇到問題,顯示內核讀取失敗“kernel iopub read failed ”,看來AI在數據執行方面有一定的局限性;之前還遇到一個執行問題是沒有相應的庫。
結果是在給定的數據集上,組合1的效果最佳,但是在不同的數據集上可能有不同的表現。
用AI解釋結果是沒問題的,解釋仔細也都對。
最后
AI數據分析需要的四個能力中,代碼執行部分是短板,但是借助AI,我們已經能做一些能力之上的事情,基礎的事情AI已經能做了,把AI這些基礎的能力整合起來,規劃一些多步驟的任務說明一定的問題,可能更有意義。
項目代碼:https://www.heywhale.com/mw/project/67abfca747828d409e8090ea