什麼是好的特徵值
各位大家好,明天就是小年了,已經感受到了過年的味道了,提前祝大家小年快樂。
好,話不多說,今天讓我們來一起分享下怎麼樣來去選擇一個好的特徵,並且當我們區分出好的特徵的時候,好的特徵意味著什麼。
在這一篇文章中,我們將會用到機器學習的分類器來作為貫穿整篇文章的例子,因為分類器只有在我們提供了好的特徵以後才可以為我們的發揮出自己的好的效果,這也意味著找到好特徵是機器學習能夠學好的一個重要的前提之一,那麼這個時候問題就來了,什麼是好特徵?你怎麼知道他算得上是好特徵?接下來,讓我們來解決這些問題。
我們用特徵來描述一個物體,比如說在這一類物體中,他們有長度,顏色,這兩種特徵的屬性,那麼用這個特徵來描述這個類別的時候,好的特徵會讓我們更加輕鬆的來辨別出相應特徵所代表的類別,而不好的特徵會混亂我們的感官,會讓一些沒有用的分析來浪費我們的分析和計算資源。
好,現在我們來找一個更加貼近生活的實例。想想我們家都養的可愛的狗狗吧。比如說金毛和吉娃娃,他們其實可以有很多的特徵進行對比,比如說眼睛的顏色,毛色,體重,身高,長度等等,為了簡化上述的多種類型,我們接下來主要會用毛色,身高這兩種屬性,並且我們也只假設這兩種狗只有偏黃色和偏白色這兩種顏色屬性。
那我們先來開始對比毛色,那麼在我們構造的這個虛擬世界上有多少偏黃色或者偏白色的金毛呢?結果發現實際上偏黃色和偏白色的金毛都基本各佔一半,並且當我們分析吉娃娃的時候,發現吉娃娃的顏色其實也是可以對半分的,這個時候我們將這些數據用兩種屬性展示出來,偏黃和偏白,然後我們分別用黃色和白色來分別表示吉娃娃所表示的比例,當我們得出數據做出我們可以很好觀察到的表文時,我們會發現,無論是在偏黃的屬性還是偏白的屬性,吉娃娃和金毛的比例是大致相同的,如果這個時候再給你一隻偏黃的狗,你是無法僅憑顏色來分辨出這是只吉娃娃還是只金毛,這其實就意味著通過毛色來判斷這個狗是吉娃娃還是金毛是不恰當的。這個特徵在區分品種上其實並沒有起到什麼什麼作用,所以這個時候我們就要區分這些無意義的信息。
那麼當這個毛色無法作為一個有效的特徵值的時候,我們是不是想一想身高是不是可以作為一個很優秀的特徵值呢?雖然說身高是一些很抽象的特徵數字,但是我們同樣可以將身高和這些數據進行可視化關聯,這個時候我么就可以用Python來進行可視化的操作。
首先我們先輸入Python中所需要的模塊matplotlib和numpy,然後用兩個簡稱來定義金毛和吉娃娃,分別是gold和chihh,並且各定義每種狗各有400個樣本,然後生成一些身高的數據,現在我們假設金毛的身高為40cm,吉娃娃是25cm,並且因為每一隻狗的身高都不是一個固定的數值,我們這個時候就給每隻狗加上一個隨機的變數,金毛的隨機幅度可能大一些,吉娃娃的隨機幅度可能小一些,,最後我們用柱狀圖來表示金毛和金娃娃的數量個數,藍色代表吉娃娃的個數,紅色代表金毛的數量個數。
這個時候我們拿這個圖來具體說說,圖中有很多的數據,當我們選擇高度為50cm的時候,我們就基本上可以判定這隻狗是金毛了,同樣大於50cm的都是金毛,當我們在20cm的時候,我們其實也可以有相當大的信心說這隻狗是吉娃娃,但是在當我們切換到30-40這個數據的時候,我們這個時候就不能夠很肯定的說這隻狗到底是金毛還是吉娃娃。在這個高度因為每一種狗的數量基本都差不多,所以說在這個高度之間的狗狗我們實際上是無法可以很好地用這個高度的特徵來判斷這個狗的品種,因為這個特徵並不完美,這其實也就是我們為什麼要包含更多的特徵來去處理機器學習中的特徵的問題。
這個時候當我們要獲得更多的信息,我們就應該排除掉那些並不具備區分能力的信息,就像我們剛才提到的顏色其實並不是什麼有用的信息,而高度能用,並且我們就應該找到更多的信息來去彌補高度所不能描述的那一段,比如說狗狗的體重,狗狗的眼鏡的顏色,狗狗的耳朵長得怎麼樣等等。當我們將這些信息加起來,往往就能夠彌補單一信息所缺失的信息量,有時候,我們也會有很多的單一的特徵信息的數據,有一些數據雖然他們的信息雖然沒有重複,但是他們所描述的意義卻是相近的,比如說我們在描述距離的時候,數據里有里或者是公里,雖然他們在數值上並不重複,但是實際上他們表示的卻是同一個意思。在機器學習中特徵越多越好,但是像那兩種類型相近的信息並不會對他有用,所以我們要區分重複性的信息。並且我們每個點都是帶有經緯度,如果我們用經緯度來表示兩地之間的距離,這個顯然比用公里來麻煩的多,所以在機器學習中,選取兩者特徵值是一定要避免複雜的信息,因為特徵與結果的模型越簡單,機器學習就能夠更好的學習到東西。
所以在我們選擇特徵的時候,我們要時刻想到這三點,避免無意義的信息,避免重複性的信息,避免複雜的信息。
好這就是我們這一篇文章中所聊到的如何區分好用的特徵,如果大家有更好的建議或者想法,也歡迎大家和我多多交流,我很希望和大家一起交流觀點。
推薦閱讀:
※RNN神經網路訓練過程中weight幾乎不更新,只有bias更新?
※arxiv只能查看最近一周的論文嗎?
※傳統的CTR或推薦系統擁有高維特徵和稀疏數據,轉向深度學習如何高效實現?
※兩個 AlphaGo 互相下,誰會贏?
※ros系統利用kinect避障的原理是什麼?
TAG:机器学习 | 深度学习DeepLearning | 人工智能 |