在機器學習中,有些數據并不是獨立的樣本集合,而是按順序排列的數據序列(sequence data)。在這種數據中,樣本之間存在明確的順序關系,前后的數據通常具有依賴性。
序列數據廣泛出現在以下領域:
? 文本數據(句子、文檔)
? 語音信號
? DNA 序列
? 用戶行為序列
從結構上看,一個典型的序列數據集通常包括以下幾部分:
? 序列數據(sequence data)
? 序列特征表示(sequence feature representation)
? 目標值或標簽(target values,可選)
? 特征名稱(feature names,可選)
? 數據說明(dataset description,可選)
下面分別介紹這些概念,并使用一個簡單的文本序列示例進行說明。
一、序列數據
1、基本概念
序列數據的基本單位是序列(sequence)。一個序列通常由一組按順序排列的元素組成。
例如,一個句子可以表示為:
["I", "love", "machine", "learning"]這些元素通常稱為:
? token(詞或符號)
? symbol(符號)
? element(元素)
如果一個數據集中包含 n 個序列,每個序列長度最多為 m,則可以表示為:
]其中:
? 每一行表示一個序列
? 每一列表示序列中的位置
在實際應用中,序列長度通常不固定,因此不同序列的長度可能不同。
不同序列長度可能不同,因此 S 更接近列表結構,而不是嚴格矩陣。
2、簡單示例
假設一個簡單的文本數據集包含三個句子:
["Data", "science"]每一行表示一個文本序列。
3、Scikit-Learn 數據集示例
Scikit-Learn 提供了 20 Newsgroups 文本數據集,該數據集包含來自 20 個新聞組的文章文本。
print(len(news.data))示例輸出:
11314news.target_names:類別名稱在該數據集中,每一篇文章都可以看作一個文本序列。
二、序列特征表示
1、基本概念
機器學習模型通常不能直接處理文本或符號序列,因此需要將序列轉換為數值表示。
常見的方法是將每個元素編碼為整數或向量,例如:
"AI" → 3這樣,一個序列就可以表示為:
[1, 2, 3]如果一個數據集中有 n 個序列,每個序列長度為 m,這些序列就可以組成一個矩陣:
]矩陣維度通常表示為:
(n_sequences, sequence_length)在實際應用中,序列長度通常會通過:
? 截斷(truncation)
? 填充(padding)
進行統一處理。
在 Scikit-Learn 中,文本序列通常需要通過 CountVectorizer 或 TfidfVectorizer 等方法轉換為數值特征矩陣。
print(X.shape)示例輸出:
(11314, 130000+)? 每一行表示一篇文章
? 每一列表示一個詞語特征
2、簡單示例
例如:
["I", "love", "AI"]可以轉換為:
[1, 2, 3]如果統一序列長度為 5,則可以表示為:
[1, 2, 3, 0, 0]其中:
0 → padding三、目標值(標簽)
1、基本概念
在許多序列任務中,每個序列通常對應一個目標值或標簽。
例如:
? 文本分類
? 情感分析
? 語音識別
標簽數組通常記為 y,其結構通常為:
(n_sequences,)即,每個序列對應一個標簽。
2、簡單示例
假設我們進行情感分類:
"AI is difficult" → negative可以編碼為:
y = [1, 0]其中:
0 → negative3、20 Newsgroups 數據集示例
在 20 Newsgroups 數據集中,每篇文章都對應一個類別標簽:
print(news.target[:5])示例輸出:
[7 4 4 1 14]類別名稱可以通過:
print(news.target_names[news.target[0]])例如:
rec.autos因此在該數據集中:
y → 新聞組類別四、特征名稱
在序列數據中,元素通常來自一個詞匯表(vocabulary)。
詞匯表可以看作是一種特征名稱集合:
["I", "love", "AI", "machine", "learning"]在數值編碼之后,這些詞通常與整數 ID 對應:
3 → AI這種映射關系有助于解釋序列數據的含義。實際編碼通常由詞匯表(vocabulary)自動分配。
五、數據說明
1、基本概念
許多序列數據集還會提供背景說明信息,例如:
? 數據來源
? 數據規模
? 詞匯表大小
? 數據采集方式
這些信息可以幫助理解數據的背景和用途。
2、示例
例如:
數據來源:社交媒體評論
樣本數量:50000
詞匯表大小:20000
這些信息通常會記錄在數據集說明文檔中。
六、序列數據集結構關系
一個典型的序列數據集可以表示為:
└── 數據說明這種結構描述了序列元素之間的順序關系,并為模型提供可計算的數值表示。
小結
序列數據集的核心特點是樣本內部存在明確的順序結構。一個序列通常由多個按順序排列的元素組成,在機器學習中需要將這些元素轉換為數值表示,從而形成序列特征矩陣。在許多任務中,每個序列還可能對應一個標簽,用于完成分類或預測任務。理解序列數據的結構,是處理文本、語音以及行為序列等問題的重要基礎。
![]()
“點贊有美意,贊賞是鼓勵”
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.