機器學習實戰

2021-06-27 09:50:12 字數 1994 閱讀 8566

花了一段時間,總算把《機器學習實戰》粗讀了一遍,重點就在這個粗讀上。

這本書的確不錯,機器學習的幾個經典演算法都涉及了,每個演算法都有1、2個實際例子進行說明,都有實實在在的**,讓我想起了linus的「talk is cheap, show me the code」那句名言。

但多年來養成的習慣,從來都是喜歡粗讀一遍,然後再找一些其它書和材料對照著細讀。這本書也不例外,反而覺得挺適合自己的這種粗讀方式,迅速了解機器學習的經典演算法、**的具體實現以及應用例項。相比開始時的一堆公式,這種了解方式更適合自己帶著問題學習的風格。

機器學習可分為監督式學習和非監督式學習兩類演算法。監督式學習解決這類資料的分類和回歸問題,而非監督式學習解決這類資料的分組和內在規則的發現。

對於監督式學習的分類演算法,最簡單易理解的是k-近鄰演算法,通過計算待劃分資料與訓練樣本之間的距離,通過計算最接近樣本的類別概率從而得到帶劃分樣本的分類。這種演算法精度高,對異常值敏感度低,然而從原理上就決定了它的計算複雜度和空間複雜度都很高。適用的資料可以是數值型或標稱型。

「決策樹演算法應該是資料探勘裡應用最廣泛的演算法了」。這個分類演算法理解起來也並不困難,需要搞清楚的兩點是資訊熵增益計算和尋找最佳的劃分特徵,最後採用遞迴方式建立樹。python做這類計算是太方便了,真不知用c++這種語言實現起來會有多麻煩。適用資料為數值型或標稱型。

樸素貝葉斯演算法利用貝葉斯公式計算已知輸入集下各種分類的概率,概率大的分類勝出。演算法流程也不算複雜,只適用於標稱型資料。

logistic回歸演算法的核心在於回歸係數(權值)的調整,找出分類超平面,書中採用的是梯度上公升演算法尋找最佳引數。不過採用梯度法尋優都有容易陷入區域性最優的缺陷。

支援向量機作為機器學習裡比較難的一種演算法,這本書理論知識太少相反不易理解了,所以此次也就不求理解的讀了一遍,沒啥特別感想,肯定得找本系統一點的書研讀該演算法。

adaboost演算法感覺上更像乙個演算法框架,通過不斷迭代構造簡單的弱分類器和更新樣本權重,最終實現一種強分類器,挺有意思的一種演算法。其中的弱分類器可以是隨便一種分類演算法。

對於回歸問題,目的在於**資料。

標準線性回歸演算法就是解冗餘線性方程組,簡單的矩陣計算即可解得回歸係數。但這種粗放處理方式帶來的乙個問題就是欠擬合,所以又有一種區域性加權線性回歸演算法提出,這個演算法把賦予權重,與待**輸入資料xd接近的權重大,原理它的權重小。這樣一處理,引數調好的情況下能夠更好的抓住資料的潛在模式。對於樣本點不足以匹敵特徵數的情況,統計學家們引入了「嶺回歸」的概念,即在權重計算公式中引入了乙個懲罰項。當然有比這種做法更好的,有lasso以及效能與lasso匹敵但更易實現的前向逐步回歸演算法。這個前向逐步回歸演算法屬於貪心演算法,對每乙個特徵的權重每一步都嘗試加或減一點,看看全體樣本的估計誤差是不是本次迭代中最小的。

樹回歸演算法與決策樹同源,處理上有差異。這一塊粗略看了,原理上懂的似是而非,還需要多一些原理和數學上的了解,下一步的細讀計畫中也需要重點關注該演算法。這也是機器學習裡非常重要的乙個方法。

無監督學習演算法的目的是找出資料中的規律,而不是得到輸出量什麼的。k-均值聚類演算法與k-近鄰演算法略微相似,隨機找k個質心,然後計算每乙個資料點到各個質心的距離,離哪個質心近,就歸到那一類去。所有資料點走完一遍後,類別發生改變,質心通過該類的資料求均值算出,迴圈上述過程,直到質心不再改變。

apriori演算法尋找資料中的頻繁項和關聯規則。像是超市裡,買的最多的是不是零食,買了零食的是不是多半買飲料之類問題。apriori的核心思想是如果乙個專案集合是非頻繁集合,那麼它的所有超集必然也是非頻繁的。正是這個原理,大大減少了測試的計算量,通過指定最小支援度只關注有用的資料組合。fp-growth演算法是更厲害的一種演算法,需要構建fp樹,然後從中挖掘頻繁專案集合。構建過程稍顯繁瑣,這塊也好似理解了,但還沒有到能夠講述出來的程度,需要進一步深化,多些理論鋪墊。

書的最後一部分是對資料化簡的幾種方法,pca主成份分析在於計算協方差矩陣,保留指定的最大的n個特徵向量然後重建減維後的資料。svd簡化方法也是乙個跟矩陣論攀上關係的演算法,這一塊仍得仔細閱讀,深挖理論根基。

書的最後一章介紹了大資料和mapreduce,粗略翻過,以後工作中也許少不了,但畢竟是工具,得上述方法掌握了之後,這些東西在具體應用中學習不會是多麻煩的乙個事。

機器學習機器學習實戰 kmeans

簡介 聚類演算法是一種無監督學習,它將相似的物件歸類到同一簇中。聚類的方法可以應用所有的物件,簇內的物件越相似,聚類效果也就越好。聚類和分類的最大不同之處在於,分類的目標是已知的,聚類是完全無監督學習,類別沒有像分類那樣被預先定義出來,所以叫做無監督學習。kmeans演算法是實際中最常用的聚類演算法...

機器學習實戰 apriori

前面主要學習了機器學習的兩大塊 分類,回歸,接下來的兩節進入到頻繁項集和關聯規則的分析。關聯分析中最著名的例子當屬啤酒和尿布了。為了定義上述的頻繁和關聯我們引入兩個定義 1 支援度 資料集中包含該集項的記錄所佔的比例 2 置信度 對於關聯規則p m,該規則的置信度為 support p u m su...

《機器學習實戰》小結

最近一段時間讀了peter harrington 的machine learning in action,對機器學習有個大致的了解,做個總結。全書分為4部分 監督學習 分類 回歸 無監督學習 其他工具。包含演算法原理解釋,並講解python實現演算法的流程。讀完能對機器學習方法有個大致了解。我主要細...