這是一個從頭開始設計,以人性化為目標的機器學習函式庫。它與其他機器學習函式庫的不同之處在於:
此函式庫旨在與稀疏、可解釋的特徵一起使用,例如搜尋中常見的特徵(搜尋關鍵字、篩選條件)或定價(房間數量、位置、價格)。對於具有非常密集、非人類可解釋特徵的問題,例如原始像素或音訊樣本,其解釋性較差。
專注於可解釋性的原因有幾個:
aerosolve 的構件 託管在 bintray 上。如果您使用 Maven、SBT 或 Gradle,您可以直接指向 bintray 作為儲存庫,並自動提取構件。
查看圖像印象演示,您可以在其中學習如何教導演算法以點描派的風格繪畫。圖像印象演示。
還有一個基於流行的機器學習基準的收入預測演示。收入預測演示。
本節深入探討 基於 Thrift 的特徵表示法。
特徵被分組到稱為特徵族的邏輯群組中。這樣做的原因是我們可以一次對整個特徵族表達轉換,或將兩個不同的特徵族相互作用以建立新的特徵族。
每個 FeatureVector 有三種特徵:
範例是建立訓練資料和評分的基礎單位。單一範例由以下組成:
擁有此結構的原因是:
本節深入探討 特徵轉換語言
特徵轉換透過一個獨立的轉換器模組應用,該模組與模型分離。這允許使用者分解轉換,或例如在評分之前提前轉換資料。例如,在應用程式中,語料庫中的項目可以提前轉換並儲存,而上下文在執行階段之前是未知的。然後,在執行階段,可以轉換上下文並將它們與每個轉換後的項目組合,以獲得最終的特徵向量,然後將其饋送到模型。
特徵轉換允許我們即時修改 FeatureVector。這讓工程師可以快速且受控地迭代特徵工程。
以下是一些常用的特徵轉換範例:
請參閱相應的單元測試,了解這些轉換的功能、它們操作的特徵類型以及它們期望的配置。
本節涵蓋可除錯模型
儘管模型目錄中有幾個模型,但只有兩個是主要的可除錯模型。其餘的是實驗性模型或子模型,它們為可解釋模型建立轉換。
線性模型。支援鉸鏈、邏輯、epsilon 不敏感迴歸、排名損失函數。僅對 stringFeatures 進行操作。任務的標籤儲存在一個特殊的特徵族中,並在配置中由 rank_key 指定。請參閱 線性模型單元測試,了解如何設定模型。請注意,結合量化和交叉,您可以從「線性」模型中獲得令人難以置信的複雜性,因此它實際上不是您常規的線性模型,而是一些更複雜的東西,可以認為是一個枝繁葉茂、非常寬的決策樹,有數百萬個分支。
樣條模型。通用加性線性分段樣條模型。訓練在高解析度下進行,由特徵範圍的最小值和最大值之間的 num_buckets 指定。在每次迭代結束時,我們嘗試將線性分段樣條投影到低維函數中,例如具有 Dirac delta 端點的多項式樣條。如果投影的 RMSE 高於閾值,我們會讓樣條保持在高解析度分段線性模式。這讓我們可以除錯有錯誤或異常複雜的特徵的樣條模型(例如,當我們期望某種平滑度時,上下跳躍)。
使用者群組:https://groups.google.com/forum/#!forum/aerosolve-users