原创 ESL 4: Linear Methods for Classification ESL 4: Linear Methods for Classification

ESL 4: Linear Methods for Classification 4.2 Linear Regression of an Indicator Matrix 對於分類問題,我們可以把每個分類用 indicator variab

原创 ESL 3: Linear Methods for Regression Reference

一個線性迴歸模型假設迴歸函數 E(Y|X) 對於輸入 X 是線性的。 它的優勢在於: 簡單 能夠表示每個輸入對輸出的影響 輸入可以進行變換 他們有時候比複雜的方法更精準,尤其是在樣本數量少、低信噪比或者稀疏矩陣的情形。 3.2 Line

原创 Regret Matching and Blotto Game 1 基本概念 2 Regret Matching and Minimization Reference

1 基本概念 2000 年,Hart 和 Mas-Colell 介紹了一個重要的博弈論算法 regret matching。博弈雙方通過: 記錄後悔值 根據後悔值的比例地選擇下一步行動 達到納什均衡 (Nash equilibrium)

原创 CPU Cache 原理

計算機的 RAM 分爲 static RAM (SRAM) 和 dynamic RAM (DRAM) 兩類。SRAM 速度快但是成本高容量小,DRAM 反之。主要原因是硬件上,SRAM 要複雜許多。 因此,現代計算機僅在 CPU cache

原创 Monte Carlo CFR 1 Monte Carlo CFR Reference

在上一篇文章中,我們講了經典的 CFR 算法的原理及實現。但是,它也有兩個致命的缺陷,導致無法應用到實際的複雜博弈中: 它需要遍歷整個遊戲樹 它需要知道對手的策略,這在實際情況下很難滿足 本文將介紹基於 Monte Carlo 的改進算

原创 小球碰撞問題中的統計學

朋友給我發了一道筆試題讓我幫忙做。題目大概是這樣: (1) 有 1 個小球放在一個 1m 長的光滑凹槽裏,小球初始位置隨機(均勻分佈),初始速度 1m/s,方向隨機。求小球滑出凹槽的期望值。 (2) 如果有 2 個小球,且小球碰撞爲剛性碰

原创 Hash Table in Rust: SwissTable

在看 Rust 的文檔的時候看到了這麼一句: The hash table implementation is a Rust port of Google’s SwissTable. The original C++ version of

原创 LightGBM 實戰:波動率預測(2) 1 更好的特徵 2 Light GBM 參數調節 參考

在上一篇文章 LightGBM 實戰:波動率預測(1) 中,我們介紹了 LightGBM 的基本用法。本篇將側重從兩個方面介紹進階方法: 如何提取更好的特徵 如何調節 LightGBM 參數 最終結果是將預測誤差從 0.24 降低到了

原创 LightGBM 參數中的 lambda_l1 和 lambda_l2 1 結論 2 源碼解讀

LightGBM 的參數大部分意義都能通過名字猜出來,例如 num_leaves,early_stopping 等。但是有兩個常用參數是個異類: lambda_l1 lambda_l2 順帶與他們相關的還有一個 min_gain_to

原创 Martingale Definition Example Reference

Definition Process X is a martingale if for all n: Where Fn is the history of Xn (called filtration) Which means, on

原创 LightGBM 原理 Reference

我們在 Boosting Trees 中介紹了 Gradient Boosting Decision Tree (GBDT) 的原理。Light GBM 是 GBDT 的一個衍生方法。相比其他的衍生方法(如 XGBoost),它最明顯的優勢

原创 ESL 10.9 Boosting Trees Regression Tree Boosting Trees Reference

實際問題中的數據往往不像例子中那麼簡單。通常,輸入可能是不同類型的組合(數字、類別、bool 等),還存在丟失部分數據等問題。“off-the-shelf“ 的方法就是可以直接使用未經過複雜的預處理(如歸一化)的數據進行訓練的方法。 在所有

原创 ESL 10.1 Boosting Methods AdaBoost 參考資料

Boosting 最初是爲解決分類問題設計的,後來又被擴展到了迴歸問題。Boosting 的原理是將很多弱分類器組合起來產生一個強分類器。 一個弱分類器是某種比隨機猜測結果略好的簡單分類器。Boosting 每次將輸入特徵賦予不同的權重,並

原创 ESL 9.2 Tree-Based Methods 如何生成一個迴歸樹 參考

樹方法將特徵空間分割爲不同區域,然後用一個簡單的模型(比如常數)來擬合每個區域。 考慮一個簡單的迴歸問題。特徵是二維的 和 ,響應是實數 。這個問題我們可以用決策樹來解決。 左上角的圖是一種複雜的情形,無法進行二叉樹分割。我們只研究類似於

原创 Rust FFI cheat sheet ffi-examples

ffi-examples Rust FFI examples with C. Checkout the example code here: ffi-examples. C struct We can initialize C struct