種一棵樹最好的時間是十年前,其次是現在。
一、機器學習算法分類
機器學習(ML,Meachine Learning)是人工智能的核心領域,讓計算機從數據中學習規律并做出預測,本文簡單介紹機器學習的算法分類和開發流程。
常見的機器學習算法從學習方式上可以分為以下幾類:監督學習
、無監督學習
、半監督學習等其它類型
,其中監督學習是指使用帶有標簽(已標記)的數據集進行訓練,模型通過學習輸入特征與標簽之間的映射關系進行預測或分類
,監督學習又可以根據輸出是否連續分為分類和回歸問題,連續的稱為回歸,離散的稱為分類;而無監督學習則是指處理無標簽(未標記)的數據集,模型通過算法自行發現數據中的隱藏結構或模式(如聚類、降維)
。
機器學習 算法分類 | 子類 | 定義 | 常見算法 | 應用場景示例 |
---|---|---|---|---|
監督學習 | 分類 | 使用帶有標簽的數據集進行訓練 模型輸出離散數據 | k-近鄰算法 貝葉斯分類 決策樹 邏輯森林 邏輯回歸 SVM 神經網絡 | 垃圾郵件檢測 圖像識別 |
回歸 | 使用帶有標簽的數據集進行訓練 模型輸出連續數據 | 線性回歸 嶺回歸 隨機森林 | 房價預測 銷量預測 | |
無監督學習 | 聚類 | 聚類算法將數據點分組 使得同一組內的數據點相似度高 而不同組的數據點相似度低 | K-means算法 層次聚類 | 客戶分群 文檔主題分類 |
降維 | 減少數據集中的特征數量 以簡化模型并提高計算效率 | 主成分分析(PCA) | 分析藥物主要成分 | |
其它 | 半監督學習 | 結合少量標注數據和大量未標注數據進行學習 | 標簽傳播 半監督SVM | 醫學圖像分析 |
自監督學習 | 通過數據自身的結構生成標簽進行訓練 | Masked Language Model(BERT) 對比學習 | 自然語言處理 圖像預訓練 | |
強化學習 | 通過與環境的交互學習最優策略 以最大化長期獎勵 | Q-Learning 深度Q網絡(DQN) 策略梯度 | 游戲AI 機器人控制 自動駕駛 | |
深度學習 | 多層神經網絡自動提取特征 可應用于監督/無監督/強化學習 | CNN RNN | 圖像識別 文本生成 |
二、機器學習開發流程
以監督學習為例,但核心步驟適用于所有機器學習任務
2.1 步驟1-問題定義
核心目標:將模糊的業務需求轉化為可量化的機器學習任務。
關鍵操作 | 說明 | 案例 |
---|---|---|
確定任務類型 | 分類/回歸/聚類? | 用戶流失預測 → 二分類任務 |
定義成功指標 | 選擇與業務目標一致的評估指標 | 欺詐檢測 → 高召回率(寧錯殺不放過) 推薦系統 → 精確率 |
約束條件分析 | 時延要求、可解釋性需求、計算資源限制 | 醫療診斷 → 需要可解釋性(選擇決策樹而非神經網絡) |
可行性評估 | 數據是否足夠?特征是否可獲取? | 使用數據矩陣草圖驗證特征覆蓋率 |
常見陷阱:
- 將回歸問題錯誤定義為分類問題(如將銷售額預測轉為"高/中/低"三分類)
- 忽略業務成本(如信用卡欺詐中誤判好客戶的代價)
2.2 步驟2-數據收集
數據類型 | 獲取方式 | 預處理難點 |
---|---|---|
結構化數據 | SQL查詢、數據倉庫導出 | 處理缺失值 |
文本數據 | API抓取、日志解析 | 分詞、去停用詞 |
圖像數據 | 爬蟲、公開數據集 | 尺寸歸一化 |
時序數據 | IoT傳感器、用戶行為日志 | 處理時間漂移 |
2.3 步驟3-數據預處理
核心目標:將原始數據轉化為信息密度更高的特征。
2.3.1 數據清洗
缺失值處理策略:
方法 | 適用場景 |
---|---|
刪除樣本 | 缺失率<5%且隨機缺失 |
中位數/眾數填充 | 數值型/分類型特征 |
模型預測填充 | 高價值數據且缺失有模式 |
增加缺失標志位 | 缺失本身包含信息 |
2.3.2 特征工程
特征變換技巧:
- 數值特征:對數變換(右偏分布)、Box-Cox變換
- 時間特征:提取"小時/星期幾/是否節假日"
- 文本特征:TF-IDF、Word2Vec嵌入
- 組合特征:用戶年齡 × 商品價格(交互效應)
降維策略對比:
方法 | 保留信息 | 可解釋性 | 線性假設 | 適用場景 |
---|---|---|---|---|
PCA | 全局結構 | 低 | 需要 | 圖像預處理 |
t-SNE | 局部結構 | 中 | 不需要 | 高維數據可視化 |
LDA | 類別區分 | 高 | 需要 | 分類任務特征壓縮 |
自編碼器 | 非線性 | 低 | 不需要 | 復雜數據表示學習 |
2.3.3 數據分割
把處理好的數據按一定比例劃分訓練集、測試集、驗證集。
2.4 步驟4-模型選擇與訓練
簡單算法選型決策樹:
scikit-learn的算法選擇決策:
計算優化技巧:
- 使用GPU加速(CUDA)
- 分布式訓練(如Spark MLlib)
- 增量學習(partial_fit)處理超大數據
2.5 步驟5-模型評估
評估指標全景圖:
分類任務:┌─宏觀指標──準確率(Accuracy)├─類別平衡─┤│ └─F1-score(F1)│├─概率評估─AUC-ROC曲線│└─業務對齊─精確率(Precision)/召回率(Recall)權衡回歸任務:├─絕對誤差─MAE(平均絕對誤差)├─放大異常─MSE(均方誤差)└─比例解釋─R2(決定系數)
典型問題診斷:
- 準確率高但AUC低 → 模型無區分力
- 驗證集表現遠差于訓練集 → 過擬合
- 某些類別召回率極低 → 樣本不平衡
2.6 步驟6-模型調優
調優方法對比:
方法 | 搜索效率 | 并行性 | 適用空間大小 | 代碼實現 |
---|---|---|---|---|
網格搜索 | 低 | 高 | 小(<10維) | GridSearchCV |
隨機搜索 | 中 | 高 | 中(<100維) | RandomizedSearchCV |
貝葉斯優化 | 高 | 低 | 大 | BayesianOptimization |
遺傳算法 | 中 | 高 | 極大 | TPOT |
調優黃金法則:
- 先粗調(大范圍隨機搜索)
- 再精調(小范圍貝葉斯優化)
- 最終確認需在測試集上只評估一次。
2.7 步驟7-模型部署與監控
簡單的部署架構示例:
用戶請求 → API網關 → 預測微服務 → 模型緩存 ↓監控系統(Prometheus)↓日志分析 → 模型性能儀表盤
監控關鍵指標:
- 預測分布變化(PSI群體穩定性指數)
- 特征漂移檢測(KL散度)
- 業務指標關聯性(如推薦系統CTR變化)
可參考的迭代觸發機制:
監控警報規則:- PSI > 0.25 → 嚴重漂移- 精度下降 > 15% → 需要重新訓練- 新數據量 > 10倍原始數據 → 自動觸發增量訓練
模型版本管理參考:
- 使用MLflow/DVC跟蹤實驗
- A/B測試流量分配(10%新模型 vs 90%舊模型)
動態流程調整: