建模雜談系列2 建模過程(邏輯回歸)

2021-10-05 22:35:22 字數 1498 閱讀 1156

以邏輯回歸為例,簡述一次建模過程的流程。0公式0**的梳理。

對於一般的監督學習而言,目標是首先要確認的。在這步甚至可以保留多個可能的目標變數(但是在每次建模中只使用乙個)。

當變數的缺失比例較高時,可以考慮直接棄用變數。缺失的問題是比較麻煩的:可能是由於客戶不願意錄入、錄入了但是儲存失敗甚至是取數時的失誤都可能導致缺失。

錯誤是指資料「不乾淨」。例如性別有三個取值,年齡超過1000歲等。

不平衡是指資料的分布偏的很厲害。這個問題比較隱蔽,而為了建立穩定的模型又是必須處理的問題。

缺失的處理完全是靈活的,可以有多重處理方法。

這步通常也會忽略。建模時視角是受限的,從模型執行的健壯性角度出發,最好事先宣告如果變數出現未見值的對映方式。

id變數用於後續結果的對齊。

target在很多地方都要用。

time在自動重建模型的時候有用。

變數的的目標率通常是在很大的幅度變化的(0.05%~50%),為了建模具有較好的可比性,通常會縮放在目標率為10%。

有些變數例如目標相關、質量不佳等都可以在此步去除。

驗證模型的泛化性。

首先需要確定元資料,後續才可使用演算法進行對應處理。

1.變數資料型別1:字元、數值

2.變數資料型別2:continuous、nominal、ordinal

3.變數角色(已確定)3:id、time、target

4.屬性個數

5.缺失率(已計算)

其他-待定

連續變數:c

離散變數:n、o

使用離散化方法將資料全部轉為離散型 c -> o , 所以變數只剩下n、o兩類;結果存在字典中備用。

對訓練集和驗證集都可以使用離散化字典轉化,字尾加上_dis。可以的話一開始就將資料變數名對映為x1~xn

一方面計算iv值,估計變數的價值。從0.02~0.2的變數比較適合建模。大於0.2的需要專門看一下。

計算iv值的過程中同步生成了woe字典,儲存下來。

應用woe字典,對離散化後的變數進行轉換。

使用層次聚類,將變數聚類為n類,每類取出乙個變數。確保這些變數沒有共線性。

使用lr對訓練集進行擬合,獲得模型引數。對於sklearn來說:

lr.coef_ : x1~xn的beta係數

lr.intercept_: 截距 beta0

使用訓練好的模型對驗證集進行同樣驗證。

先構造目標變數和**(列)的dataframe

設定判定閾值,計算混淆的基本樹tp、fp、tn、fn

計算精度(precision)衡量模型效率,敏感度(sensitivity)衡量模型戰果。

auc用於估計模型一般效能

ks用於估計模型的區分效能

lift模型產生的precision和sensitivity的估計

等級:使用風險等級,看起來更直觀

打分:更直觀

將變數的幾個變化過程做成乙個df,從原始值到離散值到woe值到分值的對應列。

用於變數的選擇分析。

建模雜談系列14 建模流程1 從資料開始

探索建模的流程和處理步驟。從資料 檔案的角度看,在整個建模過程中會發生什麼 2 檔案和變數的命名 3 持久化 檔案儲存 資料庫 4 引數的產生和管理 5 過程檔案的產生和管理 6 模型的產生和管理 7 報告檔案 從資料表開始 在乙個專案空間下,表的原始字段應該是固定含義的。例如name如果表示名字,...

建模雜談系列22 AI Squad 續

接著建模雜談系列10 ai squad討論ai團隊的構建,本次討論的基礎假設是 人的服務不可靠 由於人生活在社會中,除了本身的生物週期 生老病死 之外,社會環境的變化也會極大的影響到人的態度,進而影響到服務和合作。例如,a原來是個特別積極的員工,後來發現薪資跟不上,就特別消極。這個時候站在資本家的角...

建模雜談系列6 任務機制

思考兩個問題 要達成什麼樣的目標?有何意義 如何基於人 小團隊 完成?沒有目標也就無所謂了對錯,一般來說專案都應該有具體的目標。所以評估目標及其意義是重要的第一步,簡單來說也就是評估內外部環境,自身的強弱項 swot 夫未戰而廟算勝者,得算多也 未戰而廟算不勝者,得算少也。多算勝,少算不勝,而況於無...