讀到的一篇不錯的文章,拿來和大家分享一下。
轉自–頭條公眾號–極數蝸牛
(1)線性回歸
回歸最早是由高爾頓研究子女身高與父母身高遺傳關系提出的,發現子女平均身高總是向中心回歸而得名。其實“一分辛苦一分才”中就蘊含了線性回歸算法思想,比較簡單表現出才能與辛苦是正比關系。另外,經常聽說“成功=3分才能+6分機會+1分貴人幫”,這是標準的線性回歸方程,其中成功是因變量;才能、機會和貴人是自變量;而自變量前邊的3、6和1是權重。
(2)K-聚類
中國有句古話是“物以類聚,人以群分”,其實已經蘊含了聚類算法的基本思想。比如說人,可以根據年齡分70后、80后、90后等;根據區域分北京、上海、廣東等;根據性別分男和女。人可以根據不同特征屬性進行劃分,而在聚類算法中是根據不同方式來計算兩個事物的距離,如歐氏距離、皮爾森相似度等。
假如根據年齡可以每10年份劃分為70后、80后、90后等,也可以根據成長周期分童年、少年、青年、中年和老年。因此特征刻度大小決定了群體的范圍,這反映在聚類算法中就是通過不同方法處理事物間距離,來確定事物屬于哪個群體,如根據平均值、最大值等。
其中K值是表示劃分群體的大小,如以區域為例,K=34,則劃分為全國省份;K=7,則劃分為東北,中原,華東,華北,華南,西北和西部等;K=2,則劃分為南方和北方。
(3)K-鄰近
中國還有句古話是“近朱者赤近墨者黑”,該句也蘊含了K-鄰近算法的思想。比如判斷一個人是否是有錢人,可以根據其最近聯系的人群中,有錢人的比例來推測。這就需要解決兩個問題,一是如何確定最近聯系人,二是如何計算有錢人比例。這反映在K-鄰近算法中就是首先確定不同事物樣本的距離,然后確定K值的大小,根據K值內的有錢人占比,來預測未知用戶的狀態。
K值的大小將會直接決定預測結果,假如你有5個有錢人朋友,當K=8時,判定你為有錢人;但當K=12時,則判定你不是有錢人。因此在該算法中K的選擇至關重要。
(4)樸素貝葉斯
“吃一虧長一智”反映了樸素貝葉斯算法思維,就是通過后驗經驗法,來對未知的預測。假如你經常買水果,發現10個青蘋果里邊8個都是酸的,而10個紅蘋果里有7個都是甜的,這種經驗告訴以后再挑選蘋果時,紅蘋果7/10是甜的,青蘋果2/10是甜的,如果你喜歡甜的,那就選紅蘋果吧。
(5)決策樹
在婚戀相親時經常被問到“你有車嗎?你有房嗎?你有錢嗎?”,這和決策樹的思維過程極其相似。決策樹是由樹枝,樹葉,節點組成的樹型結構,其中每個節點就是一個問題或特征(如你有車嗎?),每個樹枝是問題的走向(如有),每個節點就是答案(相親成功)。
(6)主成分分析
經常在網上看到兩個字“干貨”。那怎么定義“干貨”,我覺得應該包括兩方面:一是信息量大,二是沒有廢話。其實如何將“水貨”制作成干貨的過程,與主成分分析有異曲同工之妙。“干貨”能夠使原文到達“短小精悍”,而主成分分析能夠實現數據集降維,即用較少維度表示原有樣本含有的信息,兩則都是通過其它語言或轉變維度來表達原有信息。
“水貨”變成“干貨”就是將意思相近或相似的句子進行濃縮或提煉,也就是將“水貨”里的的水分擰干;而主成分分析是根據樣本集的協方差矩陣,通過線性變換將原數據映射到新的坐標系統,并將差異性較大特征值的保留,以到達降維目的。
(7)隨機森林
“三個臭皮匠賽過諸葛亮”與隨機森林算法內核類似。隨機森林是是由一棵棵的決策樹構成的,每決策樹的形成都是隨機的,它可以避免單一決策樹過擬合和偏向的毛病。
再以相親為例,對相親對象要求,你可能看重“有房”“有車”“有錢”;你媽看重“有房”“孝順”;你爸看重“事業”“顧家”“有車”等。其實你們每個人都是一個決策樹,可根據自己判斷標準決策出相親對手是否“滿意”,最后集合每個人的決策結果,來判斷最后是否相親成功。一個人相親是決策樹,全家人相親就是隨機森林。
(8)最大熵模型
“不要把雞蛋放在一個籃子里”是最大熵模型比較樸素的說法,也反映了該算法的本質,就是對不確定的或未知的,盡量保持隨機和均勻分布,能夠將風險降到最低。其實在生活中大家應該都不自覺的應用了該模型。比如,去年P2P較火的時候,很多人被其高收益吸引,但由于P2P魚龍混雜,又擔心跑路;因此采取比較保險的舉措,就是多投幾家公司。
其實,熵是對無序狀態的描述,而最大熵就是表示樣本是均勻分布,可能性概率相同。
(9)AdaBoost
在學生時代,考試有個技巧就是構建自己的“錯題本”,每次考試前都加強對“錯題本”學習,通過不斷強化“錯題本”上題目,最終可能獲得較高分數。其實這個學習過程與AdaBoost是算法邏輯是相同的。
假設每次考試作為一次模型訓練,每道題目作為一個樣本,分數作為預測準確率,而“錯題本”就是預測錯誤的樣本;當再次進行預測訓練考試的時候,AdaBoost算法策略就是會對上次預測“錯誤的樣本”加大權重,并以此不斷迭代,通過多次訓練,最后能夠組合成一個較強的分類器(即考試高分)。
(10)關聯規則
是否耳熟“我看你天賦異稟、骨骼驚奇,想來是百年難得一見的練武奇才”“貧道夜觀天象,發現北斗星南移,天狼星耀青光,帝王星顯現”等臺詞。其實這里邊就蘊含了關聯規則,通過經驗積累發現骨骼與練武,北斗星與帝王等之間關聯。
“用生辰八字來算命”雖然被成為偽科學,但偶爾能算準,這是這么回事?用關聯規則算法就容易解釋,首先理解兩個概念支持度和置信度。
支持度是指A(某生辰八字)和B(某命運)同時發生的占比,如某生辰對應某命運的人數占總人數比值;置信度是指A發生后B發生的概率,如某生辰中當官的人數/某生辰總人數。如果置信度是100%,如果A發生,那么B一定發生。算命先生就將生辰和命運的置信度定為100%。
如果算命先生學過機器學習算法,就不會很肯定指出你將來一定當官,而是說你將來當官的支持度為20%,置信度為30%。
(11)邏輯回歸
邏輯回歸與線性回歸都是廣義線性模型,只所以在回歸前加上“邏輯”,是因為他在線性回歸的基礎上穿上了一件馬甲(轉變函數)。比如人的成功公式: “成功=3分才能+6分機會+1分貴人幫”,但通過計算可能得出如1,5,99,200等各種數字,如果就想知道是否是成功人士,你就需要一個“成功評委”來對結果進行評價,最終輸出量化指標,如成功率是80%,其中越接近100%,說明越成功。而這個“成功評委”就是一個轉變函數。
(12)因子分析
中國有句古話是“三歲看老”和“性格決定命運”,這與因子分析的思維類似,就是將影響或決定事物的本質東西總結出來。網絡上將有喝綠茶飲料,穿361運動鞋,周末在家打游戲,留著平頭等特征行為的人,稱為具有“屌絲”氣質。因子分析過程也類似,就是對具有關聯行為或相似事件,進行共性因子提取,將具有共同本質的特征行為歸為一個因子。像土豪,即使有錢了,依然沒有改變“土”的因子。
(13)人工神經網絡
其實全國人民大會代表選舉過程與人工神經網絡運算流程是類似。首先由基層人民選取鄉/縣級人民代表,再有縣級選舉市級,由市級選舉省級,最后產生全國人民代表。其實,在選舉過程中,每個人/代表相當于人工神經網絡的一個神經元,而縣、市、省等行政級別,相當于人工神經網絡的層級,最后選取的代表相當于輸出結果。層級越多代表越復雜,深度學習就是多層神經網絡。現在終于明白國家領導人考察農村,叫做深入基層。
(14)SVM(支持向量機)
以相親為例,假如你根據學歷,身高,年齡,相貌等指標,綜合評估下來依然有較多候選人,你不知道這么辦?這時候你閨蜜告訴你個方法:“就是看看他的父母和朋友情況”,這時候你豁然開朗,根據他的父母健康并是高官,朋友都年輕有為等指標,很快就確定了候選者。其實這個過程與SVM模型的思維邏輯相同的。SVM的核心思維就是將低維數據(一個人)映射到高維空間(多個人),從而實現數據可分(可選擇);你閨蜜的方法在SVM中就是核函數。這是一個拼“爹”的時代。