機器學習 特徵工程之特徵提取

2021-10-04 19:18:16 字數 2592 閱讀 6793

第二部分:特徵提取

備註:1.「資料決定了機器學習的上限,而演算法只是盡可能逼近這個上限」,這句話很好的闡述了資料在機器學習中的重要性。大部分直接拿過來的資料都是特徵不明顯的、沒有經過處理的或者說是存在很多無用的資料,那麼需要進行一些特徵處理,特徵的縮放等等,滿足訓練資料的要求。

2.特徵工程的過程:從資料中抽取出對**結果有用的資訊,通過專業的技巧進行資料處理,使特徵能在機器學習演算法中發揮更好的作用。

注:優質的特徵往往描述了資料的固有結構。 最初的原始特徵資料集可能太大,或者資訊冗餘,因此在機器學習的應用中,乙個初始步驟就是選擇特徵的子集,或構建一套新的特徵集,減少功能來促進演算法的學習,提高泛化能力和可解釋性。

對資料進行特徵工程,是為了獲得有代表性的特徵,只需用簡單模型,得到更好的結果。

對已有的資料進行運算達到目標的資料標準,特徵預處理包括:單個特徵和多個特徵。

單個特徵:歸一化、標準化、缺失值;

多個特徵:降維,如pca。

將任意資料格式(例如文字和影象)轉換為機器學習的數字特徵。

很多特徵都不是連續變數,比如分類、文字、影象等,為了對非連續變數做特徵表述,需要對這些特徵做數學化表述。其中sklearn.feature_extraction提供了特徵提取的很多方法,可以作為小資料訓練或練習使用。

sklearn.feature_extraction.dictvectorizer()----字典向量化的類

dictvectorizer.fit_transform(x)----根據例項化設定返回sparse矩陣或者ndarray型別,x:字典或者包含字典的迭代器;

dictvectorizer.inverse_transform(x)----返回轉換前的資料格式,x:array陣列或者sparse矩陣;

dictvectorizer.get_feature_names()----返回類別名稱

sklearn.feature_extraction.text.countvectorizer()----文字特徵提取(單詞計數)的類

countvectorizer.fit_transform(x)----返回sparse矩陣,x:文字或者包含文字字串的可迭代物件;

countvectorizer.inverse_transform(x)----返回轉換前的資料格式,x:array陣列或者sparse矩陣;

countvectorizer.get_feature_names()----返回單詞列表。

注:1.是sklearn的特徵提取庫中的text模組中的countvectorizer,不要忽略text

2.文字特徵提取中以空格和標點符號等作為分隔,但是不包括長度為1的單詞;

3.如果需要對中文文字進行特徵提取,需要進行手動的空格分隔詞彙,也可以呼叫jieba模組中的cut()方法進行分割:

import jieba

s ='人生苦短,我們應該及時行樂'

# jieba.cut()返回的結果是詞語生成器,需要轉換成列表,再轉化成字串,進行特徵提取

list

(jieba.cut(s)

)out[6]

:['人生'

,'苦短'

,','

,'我們'

,'應該'

,'及時行樂'

]' '

.join(

list

(jieba.cut(s)))

out[7]

:'人生 苦短 , 我們 應該 及時行樂'

1.在對文字進行分類的過程中,目的是將不同主旨的文章分開,如果單純使用統計詞語出現次數的方法,像「我們」,"所以"等日常用語的多次出現往往會影響分類效果,所以需要找到出現頻率高且不是在所有文字都經常出現的詞語,作為分類標準。

tfidf----term frequency/inverse document frequency(出現頻率/逆檔案頻率)

sklearn.feature_extraction.text.tfidfvectorizer()----tf-idf,用於文字特徵提取的類;

tfidfvectorizer.fit_transform(x,y)----返回sparse矩陣,x:文字或者包含文字字串的可迭代物件;

tfidfvectorizer.inverse_transform(x)----返回轉換之前資料格式,x:array陣列或者sparse矩陣;

tfidfvectorizer.get_feature_names()----返回單詞列表。

2.tf-idf的主要思想:如果某個詞或短語在一篇文章**現的概率高,並且在其他文章中很少出現,則認為此詞或者短語具有很好的類別區分能力,適合用來分類。

3.tf-idf作用:評估詞對於乙個檔案集或乙個語料庫中的其中乙份檔案的重要程度,是分類機器學習演算法的重要依據。

feature----特徵

extraction----提取

inverse----相反的

機器學習 特徵工程 字典特徵提取

將原始資料轉換為更好地代表 模型的潛在問題的特徵的過程,從而提高了對未知資料的 準確性,直接影響 結果。對文字等特徵進行特徵值化,為了計算機更好地理解資料 sklearn.feature extraction 對字典資料進行特徵值化 字典資料抽取 就是把字典中一些類別資料,分別轉換成特徵,數值型別不...

特徵工程 特徵提取

特徵提取 將任意資料 如文字或影象 轉換為可用於機器學習的數字特徵 注 特徵值化是為了計算機更好的去理解資料 字典特徵提取 作用 對字典資料進行特徵值化 dictvectorizer.get feature names 返回類別名稱 from sklearn.feature extraction i...

機器學習 特徵工程和文字特徵提取

命令檢視是否可用 注意 安裝scikit learn需要numpy,pandas等庫 from sklearn.feature extraction import dictvectorizer defdictvec 對字典特徵值 return none dit dictvectorizer 例項化 ...