[機器學習]特徵提取(feature extraction)

特徵提取(feature extraction)

特徵提取將機器學習算法不能識別的原始數據轉化為算法可以識別的特徵,特徵萃取的目的,主要是讓我們能夠利用這些特徵對物件種類進行判別,常用於圖像識別、語意辨識等等...。

類別特徵(Category feature)

常見非數值資料就是分類(categorical)資料,資料是離散的,例如性別:男、女,職業:醫生、護士、司機、工程師...等,我們通常會將他轉為ont-hot-encoding形式。

sklearn.preprocessing.OneHotEncoder
sklearn.compose.ColumnTransformer

文字特徵

常見的文字特徵如一篇文章或一句句子,我們提取成Bag-of-words或者word embedding

  • Bag-of-words
    Bag-of-words是將一整篇文章或句子將所有出現過的詞都裝進一個Bag中(詞表),然後依據這個詞表我們可以將另一句句子或另一篇文章轉換成詞向量(沒見過得詞可以在詞表中添加一個其他(other)來表示。
Bag-of-words
  • TF-IDF
    sklearn_TF-IDF
    Bag-of-words的方法會導致太多權重被放在高頻的詞上,而可以使用TF-IDF算法來改善這個問題。

維基百科TF-IDF的例子:
有很多不同的數學公式可以用來計算tf-idf。詞頻(tf)是一詞語出現的次數除以該檔案的總詞語數。假如一篇檔案的總詞語數是100個,而詞語「母牛」出現了3次,那麼「母牛」一詞在該檔案中的詞頻就是3/100=0.03。而計算檔案頻率(IDF)的方法是以檔案集的檔案總數,除以出現「母牛」一詞的檔案數。所以,如果「母牛」一詞在1,000份檔案出現過,而檔案總數是10,000,000份的話,其逆向檔案頻率就是lg(10,000,000 / 1,000)=4。最後的tf-idf的分數為0.03 * 4=0.12。

  1. sklearn.feature_extraction.text.TfidfTransformer
    將Bag-of-words後的詞向量,轉換成TF-IDF。


  2. sklearn.feature_extraction.text.TfidfVectorizer
    將文檔、句子轉換成TF-IDF。

影像特徵

最簡單的就是我們把圖像的像素看做一個矩陣,甚至可以把它flatten降成一維。


缺省處理跟管線應用

缺省處理

特徵管線

sklearn.pipeline

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容