14.3.1 用向量表示資料
怎麼用向量表示可分類資料?表14.1中總結了幾種辦法。
表14.1 將可分類資料編碼為向量的辦法
辦法 收益 成本 用途
每個單詞、類別或連續值用一個Vector 沒有衝突,易於實現逆處理 需要過兩次(一次設定單元(cell),一次設定值),並且向量的長度可能不同。 將Lucene索引匯出為Vector用作聚類
將Vector隱含地表示為詞彙袋(bags ofwords) 過一次,沒衝突 難以使用線性代數原始型別,難以表示連續值,並且必須將資料格式化為特殊的非向量形式 用在樸素貝葉斯(naive Bayes)中
用特徵雜湊 過一次,向量大小提前固定,並適用於 有特徵衝突,結果模型解釋起來可能需要點技巧 在OnlineLogisticRegression和其它SGD學習演算法中
Mahout中的不同分類器用的是表14.1中的不同辦法。我們來看一下如何將類單詞型、類文字型和類別型值編碼為向量。
- 每個單元一個單詞
將可分類資料編碼為Vector的一種辦法是遍歷兩次訓練資料:一次確定必須的Vector尺寸,並構建一個詞典記錄每個特徵放在Vector中的什麼位置;另外一次轉換資料。這種方式可以用簡單的表示來編碼訓練和測試示例:每個連續值,和每個唯一的詞彙或類別型中的類別,類文字和類單詞資料都可以賦值給向量表示中的唯一位置中。
這種方式明顯的劣勢在於要過兩次訓練資料,所以可能導致分類器的訓練計算成本高昂,對於特別大的資料集來說這真是個問題。
Mahout中的大多數聚類演算法用的都是這種過兩次的辦法。
- 將向量作為詞彙袋
另外一種辦法是帶上特徵名稱或名稱加上類別,單詞,或文字值,而不是Vector物件。這些方法主要是用在Mahout分類器之類的樸素貝葉斯和輔助的樸素貝葉斯中。 這種辦法的優勢是可以不用詞典,但這也意味著很難用Mahout的線性代數能力獲取Vector物件已知和一致的長度。
- 特徵雜湊
基於SGD的分類器無需預先確定向量的大小,只要簡單挑一個合理的大小,並把訓練資料預置進那個大小的向量中。這種辦法被稱為特徵雜湊。預置是用連續變數變數名的雜湊,或變數名和類別名或類別單詞,類文字或類單詞資料的雜湊來選擇一個或幾個位置。
這種特徵雜湊的辦法有明顯的優勢,需要的記憶體更少,也可以少過一次訓練資料,但對向量進行逆向工程來確定對映到向量位置的原始特徵也更加困難。
這是因為多個特徵可能會雜湊到同一個位置。每個特徵的向量都比較大,或者有多個位置,這不是精確性問題,但可能會對理解分類器做什麼造成比較大的困難。
相關文章
- 【計算幾何】向量表示
- 構建RAG應用-day01: 詞向量和向量資料庫 文件預處理資料庫
- 黃東旭:“向量資料庫”還是“向量搜尋外掛 + SQL 資料庫”?資料庫SQL
- Chroma向量資料庫使用案例資料庫
- 向量資料庫落地實踐資料庫
- 向量資料庫技術全景資料庫
- AutoGPT放棄使用向量資料庫GPT資料庫
- 關聯式資料庫很快會替代向量資料庫資料庫
- 向量資料庫Chroma學習記錄資料庫
- 詞向量的運用-用詞向量理解片語的含義
- Spring AI中使用嵌入模型和向量資料庫實現RAG應用SpringAI模型資料庫
- [譯] 在 Android 應用中使用向量資源Android
- 一、【資料結構】向量(vector)的實現資料結構
- 文字資料分析——主題提取+詞向量化
- 資料庫向量化入門與實現資料庫
- 14.3 將可分類資料變為向量
- 向量資料庫之Lancedb學習記錄資料庫
- Milvus向量資料庫入門實踐資料庫
- 向量資料庫Chromadb的入門資訊資料庫
- Elasticsearch和向量資料庫的快速入門Elasticsearch資料庫
- 資料結構作業——用鄰接表表示無向網資料結構
- 資料的過程性表示
- 計算機資料的表示計算機
- 資料結構:圖的表示資料結構
- 【資料結構】棧的應用---四則運算表示式求值(中綴表示式與字尾表示式轉換)資料結構
- 《R語言入門與資料分析》——向量索引R語言索引
- osgEarth使用筆記4——載入向量資料筆記
- 向量資料庫與LLM的整合:實踐指南資料庫
- KubeSphere 部署向量資料庫 Milvus 實戰指南資料庫
- 【資料結構】棧的應用——中綴表示式求值(c++)資料結構C++
- 重新開貼!探討web應用中ResultSet返回的資料表示Web
- 資料結構學習(C++)——棧應用(表示式求值) (轉)資料結構C++
- 來一場資料整合技術與向量資料庫的“雙向奔赴”!資料庫
- Lambda表示式where過濾資料
- 二、資料型別和表示式資料型別
- 資料庫-SQL_duckdb向量化計算-vector資料庫SQL
- 有資料的APP–手機端的資料表示式APP
- 遊戲開發中的資料表示遊戲開發