寫在前面的廢話:
好吧,不得不說魚C的markdown文本編輯器挺不錯的,功能齊全。再次感謝小甲魚哥哥的python視頻讓我去年大三下學期的時候入門了編程,愛上了編程這門語言,由於是偏冷門的統計學,在實習以后就決定把方向放在數據挖掘方面了,越來越發現專業課的重要性。在大家都忙着參加各種培訓的日子里面,我就在去年寒冷的冬天把甲魚哥的python視頻一字不落的看完了;現在,在別人拼命參加校招的日子里,我就來學習“機器學習”這里面的算法了(ps:工科學校的理科妹子表示很難找到數據分析工作,人家只要研究生)。好吧,我就不信邪了,硬是開啟了持續兩個月的Ng教授的coursera上面的“機器學習”課程(里面的assignment很簡單,使用matlab完成),剛好實驗室進貨一本《機器學習實戰》,也就拿來練練手,讓自己的python進階一下,之前各種web后台折騰,尤其是爬蟲,然而我不想幫別人爬數據,我要分析數據,挖掘潛在信息,程序是工具,掌握業務趨勢才是王道!
不廢話了,接下來的筆記系列都是我在coursera上面的領悟,根據自己的手寫筆跡以及《機器學習實戰》這本書的代碼得來的,希望不習慣更新博客的我能把這件事情堅持下來。加油!
正文:
這兩年估計很多人都聽說過“大數據”,目前機器學習也在悄無聲息的進入到部分數據挖掘領域。當然,國外數據挖掘已經很成熟了,機器算法應用的范圍也就更加廣泛,分別有:網絡搜索,郵件分類;機器人;生物和醫葯學研究等等。
這里舉幾個具體例子:
- 網站數據:你可以根據網站的點擊數據了解產品的歡迎程度;
- 醫療數據:根據醫療記錄了解病人的病情方便診斷;
- 生物方面:比如基因DNA序列可以用於研究人類的某些特質甚至遺傳方面的信息;
- 工程領域:指導無人機自主運行,手寫字體的識別,NLP(Natural Language Processing 俗稱”自然語言處理“),以及計算機視覺;
- 推薦系統:亞馬遜的產品推薦系統(貌似這個也可以被分到網站數據)。
那么啰嗦了這么多,什么是機器學習呢?
這里有兩種定義:
- 通俗點講:研究讓機器擁有人一樣的學習能力,該能力不被固定的編程實現或操作,屬於機器本身的一種自主學習行為。
- 學術點講:通過經驗E,針對某些任務T,設計出一段計算機程序,該程序擁有特定的績效指標P,程序的目的就是根據歷史經驗E的不斷的積累在任務T中提高它的績效指標P。
學術就是學術,太生硬了,也是我不考研的原因之一,so boring~通俗的舉個例子:
下跳棋:
E = 玩了多局跳棋所累積的經驗
T = 下跳棋本身就是一個任務
P = 程序贏得下一次跳棋的可能性
機器學習主要包括兩個任務:分類和回歸。前者非常容易理解,就是在一個預測任務中把數據分類;后者回歸主要是統計意義上的,用於預測數據,做過數學建模的同學估計對擬合曲線相當熟悉;是的,回歸里面一個非常重要的任務——數據擬合曲線:通過給定的數據集合擬合出最優曲線,使得該曲線盡量能夠反應數據的趨勢,在不過度擬合的情況下能讓給定的數據集落在線附近(上)。而機器學習包括“監督學習”和“非監督學習”,那么分類和回歸都屬於“監督學習”。接下來拋磚引玉,本文的重點就是區分“監督學習”和“非監督學習”,后面的文章中講分別對這兩種學習進行細分,甚至回歸和分類里面的細節更是數不甚數。
- Supervised Study
Example 1:房價預測(線性回歸)
假設,你手上有一堆房價以及房子大小面積的數據,讓你根據房子大小估算房價,然后你根據數據得出下圖(圖太丑,不許勿噴)
你根據數據的分布分別擬合直線和曲線,兩種擬合的線在x1這個點預測分別得到y1和y2;因此,不同的曲線對應不同的預測結果。那么,為什么我說這里的房價預測就是一種“監督學習”呢?因為有確定的答案被給出了,也就是說在數據集中,不同的房子的面積分別對應着不同的房價。也就是說,這類算法明確的知道自己預測的是什么(本例中預測房價),目標變量非常明確。
以上問題也被稱為回歸問題:預測連續的輸出值。
Example 2:腫瘤癌的預測:良性腫瘤和惡性腫瘤(Logistic回歸)
上圖中的“×”符號代表的就是數據集,指的是不同腫瘤大小對應是否為惡性腫瘤(1),如果是惡性腫瘤,那么對應數值1;反之對應數值2。這就是一個典型的二值化問題,也被稱為(Logistic回歸問題),常用於分類:離散的輸出值(0或者1)。
當然,在實際的預測中,腫瘤是否惡性的判斷需要依據很多屬性,比如:腫瘤塊的厚度、細胞的形狀等等,而影響腫瘤大小的因素也有很多,比如年齡等等。這么多屬性,如果都用畫圖的方式來擬合數據,就顯得比較低效率,因此,我們引入了“向量機”,以后我們會討論到這個問題,有興趣的可以谷歌一下。
- Unsupervised Study
顧名思義就是沒有給定的正確的答案
先上圖:
單純是給一堆數據,如上圖的黑色小圓圈代表數據集,讓你找到這些數據的結構特點,也就是聚類(正所謂:物以類聚,人以群分)。很明顯,你沒有標准答案,因此既可以把數據按照紅色的橢圓形聚為2類,又可以按照紫色的線條圈起來的范圍聚為3類,還可以按照藍色正方形圈為2類,沒有人說你這種聚類是錯誤的,只要你說出你的理由。
看起來,非監督學習無理可循,但是應用范圍相當廣泛:組織計算機集群,社交網絡分析,市場份額分割以及天文數據分析。在未來大數據下需要被探索的東西太多,未知數也往往深不可測,因此非監督學習這個學科的“水”相當深~
嗯,暫且介紹到這里,老衲要午睡了,下午還要上courera的課程,第四周了,歡迎有興趣的朋友和我成為同學~
下集預告:線性回歸以及梯度下降算法。