機器學習(1-1) 監督學習
監督學習
在本視頻中,我將介紹一種也許是最常見的機器學習問題。即監督學習。後面將給出監督學習更正式的定義,現在最好以示例來說明什麽是監督學習。之後再給出正式的定義。
假設你想預測房價(無比需要啊!),之前,某學生已經從某地收集了數據集(不是中國的,囧) 其中一個數據集是這樣的。
這是橫坐標,即不同房子的面積,單位平方腳(^-^) 縱軸上是房價,單位 千美元。 根據給定數據,假設你朋友有棟房子,750平尺(70平米) 想知道這房子能賣多少,好賣掉。 那麽,學習算法怎麽幫你呢?學習算法可以: 繪出一條直線,讓直線盡可能匹配到所有數據。
基於此,看上去,那個房子應該、可能、也許、大概 賣到15萬美元(一平米兩千刀!)。但這不是唯一的學習算法。可能還有更好的。比如不用直線了,可能平方函數會更好,即二次多項式更符合數據集。如果你這樣做,預測結果就應該是20萬刀(一平三千刀,漲價好快)。
後面我們會介紹到如何選擇,是選擇直線還是平方函數來擬合。沒有明確的選擇,就不知哪個能給你的朋友更好的賣房建議。只是這些每個都是很好的學習算法例子。也是監督學習的例子。術語監督學習,意指給出一個算法,需要部分數據集已經有正確答案。比如給定房價數據集, 對於裏面每個數據,算法都知道對應的正確房價,即這房子實際賣出的價格。算法的結果就是算出更多的正確價格,比如那個新房子,你朋友想賣的那個。
用更術語的方式來定義,監督學習又叫回歸問題,(應該是回歸屬於監督中的一種)意指要預測一個連續值的輸出,比如房價。雖然從技術上,一般把房價記到美分單位。所以實際還是個離散值,但通常把它看作實際數字,是一個標量值,一個連續值的數,而術語回歸,意味著要預測這類連續值屬性的種類。另一個監督學習的例子,我和一些朋友 之前研究的領域。讓我們來看醫學記錄,並預測胸部腫瘤是惡性良性。 如果某人發現有胸部腫瘤,惡性腫瘤有害又危險,良性腫瘤則是少害。 顯然人們很關註這個。讓我們看一個收集好的數據集,假設在數據集中,橫軸表示腫瘤的大小,縱軸我打算圈上0或1,是或否,即腫瘤是惡性的還是良性的。
所以如圖所示,可以看到這個大小的腫瘤塊 是良性的,還有這些大小的都是良性的。 不幸地是也看到一些惡性腫瘤,比如這些大小的腫瘤。 所以,有5個良性塊,在這一塊,還有5個惡性的,它們縱軸值為1。
現在假設某人杯具地得胸部腫瘤了,大小大概是這麽大。
對應的機器學習問題就是,你能否估算出一個概率,即腫瘤為惡或為良的概率? 專業地說,這是個分類問題。分類是要預測一個離散值輸出。這裏是0或1,惡性或良性。
事實證明,在分類問題中,有時會有超過兩個的值,輸出的值可能超過兩種。舉個具體例子,胸部腫瘤可能有三種類型,所以要預測離散值0,1,2,3。假設總共有三種癌癥。0就是良性腫瘤,沒有癌癥。1 表示1號癌癥,2 是2號癌癥,3 就是3號癌癥。這同樣是個分類問題,因為它的輸出的離散值集合 分別對應於無癌,1號,2號,3號癌癥。
我再露一小手,在分類問題中,還有另一種作圖方式 來描述數據。我畫你猜。要用到些許不同的符號集合 來描繪數據。如果腫瘤大小作為唯一屬性,被用於預測惡性良性,可以把數據作圖成這樣。
使用不同的符號來表示良性和惡性,即陰性和陽性。所以,不再統一畫叉叉了,改用圈圈來代表良性腫瘤,就像這樣。仍沿用X(叉叉)代表惡性腫瘤。希望你能明白。我所做的就是,把在上面的數據, 映射下來。再用不同的符號, 圈和叉來分別代表良性和惡性。
在上例中,只使用了一個特征屬性,即腫瘤塊大小,來預測腫瘤是惡性良性。在其它機器學習問題裏,有著不只一個的特征和屬性。
例子,現在不只是知道腫瘤大小,病人年齡和腫瘤大小都知道了。
這種情況下,數據集如表圖所示,有些病人,年齡、腫瘤已知,不同的病人,會有一點不一樣,腫瘤惡性,則用叉來代表。所以,假設 有一朋友得了腫瘤。腫瘤大小和年齡落在此處。
那麽依據這個給定的數據集,學習算法所做的就是畫一條直線,分開 惡性腫瘤和良性腫瘤,所以學習算法會畫條直線,像這樣,把兩類腫瘤分開。
然後你就能判斷你朋友的腫瘤是…了。如果它在那邊,學習算法就說 你朋友的腫瘤在良性一邊,因此更可能是良性的。
好,本例中,總共有兩個特征,即病人年齡和腫瘤大小。在別的ML問題中, 經常會用到更多特征,我朋友研究這個問題時,通常使用這些特征:比如塊的厚度,即胸部腫瘤的厚度、腫瘤細胞大小和形狀的一致性,等等。它表明,最有趣的學習算法(本課中將學到) 能夠處理,無窮多個特征。不是3到5個這麽少。在這張幻燈片中,我已經列舉了總共5個不同的特征。但對於一些學習問題,真要用到的不只是三五個特征,要用到無數多個特征,非常多的屬性,所以,你的學習算法要使用很多的屬性或特征、線索來進行預測。那麽,你如何處理 無限多特征呢?甚至你如何存儲無數的東西進電腦裏,又要避免內存不足?
事實上,等我們介紹一種叫支持向量機(SVM)的算法時,就知道存在一個簡潔的數學方法,能讓電腦處理無限多的特征。想像下,我不是這邊寫兩個特征,右邊寫三個特征。而是,寫一個無限長的特征表,不停地寫特征,似乎是個無限長的特征的表。但是,我們也有能力設計一個算法來處理這個問題。
所以再從頭復述一遍。本課中,我們介紹監督學習。其基本思想是,監督學習中,對於數據集中的每個數據,都有相應的正確答案,(訓練集)算法就是基於這些來做出預測。就像那個房價,或腫瘤的性質。後面介紹了回歸問題。即通過回歸來預測一個連續值輸出。我們還談到了分類問題,目標是預測離散值輸出。
下面是個小測驗題目:假設你有家公司,希望研究相應的學習算法去 解決兩個問題。
第一個問題,你有一堆貨物的清單。 假設一些貨物有幾千件可賣,你想預測出,你能在未來三個月賣出多少貨物。
第二個問題,你有很多用戶, 你打算寫程序來檢查每個用戶的帳目。 對每個用戶的帳目,判斷這個帳目是否被黑過(hacked or compromised)。
問題一是個回歸問題 因為如果我有幾千件貨物, 可能只好把它當作一個實際的值,一個連續的值。也把賣出的數量當作連續值。
第二個問題,則是分類問題,因為可以把我想預測的一個值設為0,來表示賬目沒有被hacked另一個設為1,表示已經被hacked。 就像乳癌例子中,0表示良性,1表示惡性。 所以這個值為0或1,取決於是否被hacked,有算法能預測出是這兩個離散值中的哪個。 因為只有少量的離散值,所以這個就是個分類問題。 這就是監督學習,下個視頻將會介紹 無監督學習,學習算法的另一主要類型
機器學習(1-1) 監督學習