“大數(shù)據(jù)分析”評為“ 21世紀最熱門的工作” 以來,人們對機器學習的興趣激增。但是,如果您剛剛開始學習機器學習,則可能很難入手。因此,小編發(fā)布了廣受歡迎的關于初學者的優(yōu)秀機器學習算法的文章。 這篇文章是針對0基礎初學者的。如果你有在數(shù)據(jù)科學和機器學習一些經(jīng)驗,你可能會更感興趣的是做機器學習在Python這更深入的教程用scikit-learn,或在我們的機器學習課程,這從這里開始。如果您還不清楚“數(shù)據(jù)科學”和“機器學習”之間的區(qū)別,那么本文將為您提供一個很好的解釋:機器學習和數(shù)據(jù)科學-兩者有何不同? 機器學習算法是可以從數(shù)據(jù)中學習并從經(jīng)驗中改進而無需人工干預的程序。學習任務可能包括學習將輸入映射到輸出的功能,學習未標記數(shù)據(jù)中的隱藏結構;或“基于實例的學習”,其中通過將新實例(行)與訓練數(shù)據(jù)中存儲在內(nèi)存中的實例進行比較,為新實例生成類標簽?!盎趯嵗膶W習”不會從特定實例創(chuàng)建抽象。 機器學習算法的類型 機器學習(ML)算法有3種類型: 監(jiān)督學習算法: 監(jiān)督學習使用標記的訓練數(shù)據(jù)來學習將輸入變量(X)轉換為輸出變量(Y)的映射函數(shù)。換句話說,它在以下等式中求解f: Y = f(X) 當給定新的輸入時,這使我們能夠準確地生成輸出。 我們將討論兩種類型的監(jiān)督學習:分類和回歸。 分類被用于預測給定的樣品的結果,當輸出變量在類的形式。分類模型可能會查看輸入數(shù)據(jù)并嘗試預測“病”或“健康”等標簽。 當輸出變量為實數(shù)值形式時,將回歸用于預測給定樣本的結果。例如,回歸模型可能會處理輸入數(shù)據(jù)以預測降雨量,人的身高等。 我們在本博客中介紹的前5種算法-線性回歸,邏輯回歸,CART,樸素貝葉斯和K最近鄰(KNN)-是監(jiān)督學習的示例。 合奏是另一種監(jiān)督學習。這意味著要組合多個各自較弱的機器學習模型的預測,以對新樣本產(chǎn)生更準確的預測。本文的算法9和10(使用隨機森林進行裝袋,使用XGBoost進行增強)是集成技術的示例。 無監(jiān)督學習算法: 當我們只有輸入變量(X)而沒有相應的輸出變量時,將使用無監(jiān)督學習模型。他們使用未標記的訓練數(shù)據(jù)來建模數(shù)據(jù)的基礎結構。 我們將討論三種無監(jiān)督學習: 關聯(lián)用于發(fā)現(xiàn)集合中項目同時出現(xiàn)的可能性。它廣泛用于市場分析。例如,可以使用關聯(lián)模型來發(fā)現(xiàn)如果客戶購買面包,則他/她也有80%可能也購買雞蛋。 聚類用于對樣本進行分組,以使同一聚類中的對象彼此之間的相似性大于與另一個聚類中的對象的相似性。 降維用于減少數(shù)據(jù)集的變量數(shù)量,同時確保仍傳達重要信息。降維可以使用特征提取方法和特征選擇方法來完成?!疤卣鬟x擇”選擇原始變量的子集。特征提取執(zhí)行從高維空間到低維空間的數(shù)據(jù)轉換。示例:PCA算法是一種特征提取方法。 我們在這里介紹的算法6-8(Apriori,K-means,PCA)是無監(jiān)督學習的示例。 強化學習: 強化學習是機器學習算法的一種,它允許代理通過學習使獎勵最大化的行為來根據(jù)其當前狀態(tài)決定最佳的下一步操作。 加固算法通常通過反復試驗來學習最佳動作。例如,假設有一個視頻游戲,其中玩家需要在特定時間移動到特定地點以賺取積分。玩該游戲的強化算法會從隨機移動開始,但是隨著時間的流逝,經(jīng)過反復試驗,它將學習需要在何時何地移動游戲中角色以最大化其總點數(shù)。 量化機器學習算法的流行度 這十種算法是從哪里得到的?任何此類列表本質上都是主觀的。諸如此類的研究已經(jīng)量化了10種最流行的數(shù)據(jù)挖掘算法,但是它們?nèi)匀灰蕾囉谡{(diào)查反饋的主觀響應,通常是高級學術從業(yè)人員。例如,在上面的研究中,受訪者是ACM KDD創(chuàng)新獎,IEEE ICDM研究貢獻獎的獲得者;KDD '06,ICDM '06和SDM '06的計劃委員會成員;ICDM '06的145位與會者。 這篇文章中列出的前10個算法是在考慮機器學習初學者的情況下選擇的。它們是我在孟買大學計算機工程學士學位期間從“數(shù)據(jù)倉庫和挖掘”(DWM)課程中學到的主要算法。我加入了最后兩種算法(集成方法),尤其是因為它們經(jīng)常被用來贏得Kaggle比賽。 沒有更多的基礎知識,面向初學者的十大機器學習算法: 1.線性回歸 在機器學習中,我們有一組輸入變量(x)用于確定輸出變量(y)。輸入變量和輸出變量之間存在關系。ML的目標是量化這種關系。 圖1:線性回歸以y = a bx的形式表示為一條線 在線性回歸中,輸入變量(x)和輸出變量(y)之間的關系表示為y = a bx形式的方程。因此,線性回歸的目標是找出系數(shù)a和b的值。在此,a是截距,b是直線的斜率。 圖1顯示了數(shù)據(jù)集的繪制的x和y值。目標是擬合最接近大多數(shù)點的線。這將減少數(shù)據(jù)點的y值與線之間的距離(“錯誤”)。 2. Logistic回歸 線性回歸預測是連續(xù)值(即,以厘米為單位的降雨),邏輯回歸預測是在應用轉換函數(shù)后的離散值(即,學生是否通過/未通過)。 Logistic回歸最適合于二進制分類:y = 0或1的數(shù)據(jù)集,其中1表示默認類。例如,在預測事件是否會發(fā)生時,只有兩種可能性:事件發(fā)生(我們將其表示為1)或事件不發(fā)生(0)。因此,如果我們要預測患者是否生病,我們將使用1數(shù)據(jù)集中的值標記患病的患者。 邏輯回歸以其使用的轉換函數(shù)命名,該函數(shù)稱為邏輯函數(shù)h(x)= 1 /(1 ex)。這形成了S形曲線。 在邏輯回歸中,輸出采用默認類別的概率形式(與線性回歸不同,線性回歸是直接產(chǎn)生輸出的)。由于這是一個概率,因此輸出在0-1的范圍內(nèi)。因此,例如,如果我們要預測患者是否生病,我們已經(jīng)知道生病的患者表示為1,因此,如果我們的算法將0.98的得分分配給患者,則認為該患者很有可能生病了。 使用邏輯函數(shù)h(x)= 1 /(1 e ^ -x)通過對x值進行對數(shù)轉換來生成此輸出(y值)。然后應用閾值以強制將此概率轉換為二進制分類。 圖2:邏輯回歸確定腫瘤是惡性還是良性。如果概率h(x)> = 0.5,則分類為惡性 在圖2中,要確定腫瘤是否為惡性,默認變量為y = 1(腫瘤=惡性)。x變量可以是腫瘤的量度,例如腫瘤的大小。如圖所示,邏輯函數(shù)將數(shù)據(jù)集各種實例的x值轉換為0到1的范圍。如果概率超過閾值0.5(由水平線顯示),則腫瘤為歸類為惡性。 邏輯回歸方程P(x)= e ^(b0 b1x)/(1 e(b0 b1x))可以轉換為ln(p(x)/ 1-p(x))= b0 b1x。 Logistic回歸的目標是使用訓練數(shù)據(jù)來找到系數(shù)b0和b1的值,以使預測結果與實際結果之間的誤差最小。使用最大似然估計技術估計這些系數(shù)。 3.購物車 分類和回歸樹(CART)是決策樹的一種實現(xiàn)。 分類樹和回歸樹的非終端節(jié)點是根節(jié)點和內(nèi)部節(jié)點。終端節(jié)點是葉節(jié)點。每個非終端節(jié)點代表一個輸入變量(x)和該變量的分割點;葉節(jié)點表示輸出變量(y)。該模型按以下方式進行預測:遍歷樹的拆分以到達葉節(jié)點并輸出在葉節(jié)點處存在的值。 下面圖3中的決策樹根據(jù)一個人的年齡和婚姻狀況,對其是否購買跑車或小型貨車進行了分類。如果此人已超過30歲且未結婚,我們將按照以下步驟進行操作:“超過30年?” ->是->“已婚?” ->不行 因此,模型輸出一輛跑車。 圖3:決策樹的各個部分 4.樸素貝葉斯 為了計算一個事件已經(jīng)發(fā)生的可能性,我們使用貝葉斯定理。在給定我們的先驗知識(d)的情況下,要計算假設(h)為真的概率,我們使用貝葉斯定理,如下所示: P(h | d)=(P(d | h)P(h))/ P(d) 哪里: 1)P(h | d)=后驗概率。給定數(shù)據(jù)d,假設h的概率為真,其中P(h | d)= P(d1 | h)P(d2 | h)….P(dn | h)P(d) 2)P(d | h)=似然。給定假設h為真,數(shù)據(jù)d的概率。 3)P(h)=班級先驗概率。假設h為真的概率(與數(shù)據(jù)無關) 4)P(d)=預測器先驗概率。數(shù)據(jù)的概率(與假設無關) 該算法之所以稱為“樸素”,是因為它假設所有變量都彼此獨立,這是在實際示例中做出的樸素假設。 圖4:使用天真貝葉斯通過變量“天氣”預測“比賽”的狀態(tài) 以圖4為例,如果weather ='sunny',結果如何? 在給定變量天氣=“晴天”的情況下,要確定結果游戲=“是”或“否”,請計算P(是|晴天)和P(否|晴天),并以較高的概率選擇結果。 -> P(yes | sunny)=(P(sunny | yes)* P(yes))/ P(sunny)=(3/9 * 9/14)/(5/14)= 0.60 -> P(no | sunny)=(P(sunny | no)* P(no))/ P(sunny)=(2/5 * 5/14)/(5/14)= 0.40 因此,如果天氣=“晴天”,則結果為游戲=“是”。 5. KNN K最近根據(jù)算法將整個數(shù)據(jù)集用作訓練集,而不是將數(shù)據(jù)集分為訓練集和測試集。 當新數(shù)據(jù)實例需要結果時,KNN算法遍歷整個數(shù)據(jù)集以找到新實例的k個最近實例,或與新記錄最相似的k個實例,然后輸出均值結果(用于回歸問題)或模式(最常見的課堂)的分類問題。k的值是用戶指定的。 使用諸如歐幾里得距離和漢明距離之類的度量來計算實例之間的相似度。 無監(jiān)督學習算法 6.先驗 事務數(shù)據(jù)庫中使用Apriori算法來挖掘頻繁的項目集,然后生成關聯(lián)規(guī)則。它廣泛用于市場購物籃分析中,在其中可以檢查數(shù)據(jù)庫中經(jīng)常同時出現(xiàn)的產(chǎn)品組合。通常,我們將關聯(lián)規(guī)則寫為“如果某人購買了商品X,那么他購買了商品Y”為:X->Y。 示例:如果某人購買牛奶和糖,那么她可能會購買咖啡粉。這可以用關聯(lián)規(guī)則的形式寫成:{牛奶,糖}->咖啡粉。超過支持和信心的閾值后,將生成關聯(lián)規(guī)則。 圖5:關聯(lián)規(guī)則X-> Y的支持度,置信度和提升度的公式 支持度量有助于減少頻繁生成項目集時要考慮的候選項目集的數(shù)量。該支持措施遵循Apriori原則。Apriori原則指出,如果某個項目集很頻繁,那么它的所有子集也必須很頻繁。 7. K-均值 K-means是一種將相似數(shù)據(jù)分組為聚類的迭代算法,它計算k個聚類的質心,并為其質心與數(shù)據(jù)點之間的距離最小的聚類分配一個數(shù)據(jù)點。 圖6:K-means算法的步驟 運作方式如下: 我們首先選擇k的值。在這里,讓我們說k =3。然后,我們將每個數(shù)據(jù)點隨機分配給3個群體中的任何一個。計算每個群體的群集質心。紅色,藍色和綠色的星星分別代表3個星團的質心。 接下來,將每個點重新分配給最近的聚類質心。在上圖中,高5點被分配給具有藍色質心的聚類。遵循相同的過程將點分配給包含紅色和綠色質心的聚類。 然后,計算新群集的質心。舊的質心是灰色的星星;新的質心是紅色,綠色和藍色的星星。 最后,重復步驟2-3,直到?jīng)]有點從一個群集切換到另一個群集為止。一旦連續(xù)兩個步驟都沒有切換,請退出K-means算法。 8. PCA 主成分分析(PCA)用于通過減少變量數(shù)量使數(shù)據(jù)易于瀏覽和可視化。這是通過將數(shù)據(jù)中的最大方差捕獲到具有稱為“主要成分”的軸的新坐標系中來完成的。 每個分量都是原始變量的線性組合,并且彼此正交。分量之間的正交性指示這些分量之間的相關性為零。 第一個主成分捕獲數(shù)據(jù)中最大可變性的方向。第二個主成分捕獲數(shù)據(jù)中的剩余方差,但具有與第一個成分不相關的變量。同樣,所有連續(xù)的主成分(PC3,PC4等)捕獲剩余的差異,同時與前一個成分不相關。 圖7:將3個原始變量(基因)簡化為2個新變量,稱為主成分(PC) 集合學習技巧: 匯總是指通過投票獲取平均值,將多個學習者(分類器)的結果組合在一起,以提高結果。在分類期間使用投票,在回歸期間使用平均。這個想法是全體學習者的表現(xiàn)要好于單個學習者。 共有3種組合算法:裝袋,增強和堆疊。我們不會在這里討論“堆疊”,但是如果您想對其進行詳細的說明,那么這是Kaggle的可靠介紹。 9.隨機森林套袋 套袋的第一步是使用Bootstrap Sampling方法創(chuàng)建的數(shù)據(jù)集創(chuàng)建多個模型。在Bootstrap抽樣中,每個生成的訓練集都由來自原始數(shù)據(jù)集的隨機子樣本組成。 這些訓練集的每一個都具有與原始數(shù)據(jù)集相同的大小,但是有些記錄會重復多次,而有些記錄根本不會出現(xiàn)。然后,將整個原始數(shù)據(jù)集用作測試集。因此,如果原始數(shù)據(jù)集的大小為N,則每個生成的訓練集的大小也為N,唯一記錄的數(shù)量約為(2N / 3);測試集的大小也為N。 套袋的第二步是在不同的生成的訓練集上使用相同的算法來創(chuàng)建多個模型。 這是隨機森林進入的地方。與決策樹不同,在決策樹中,每個節(jié)點都在最大特征上進行分割,以最大程度地減少錯誤,在隨機森林中,我們選擇特征的隨機選擇以構建最佳分裂。隨機性的原因是:即使套袋,當決策樹選擇最佳分割特征時,它們最終也會具有相似的結構和相關的預測。但是,對特征的隨機子集進行分割后的裝袋意味著子樹的預測之間的相關性較小。 在每個分割點要搜索的特征數(shù)量被指定為“隨機森林”算法的參數(shù)。 因此,在使用“隨機森林”進行裝袋時,每棵樹都是使用記錄的隨機樣本構建的,而每個拆分都是使用隨機變量的預測變量構建的。 10.使用AdaBoost提升 Adaboost代表自適應增強。套袋是一個并行的集合,因為每個模型都是獨立構建的。另一方面,boosting是一個順序集合,其中每個模型都是基于糾正先前模型的錯誤分類而構建的。 套袋主要涉及“簡單投票”,其中每個分類器投票以獲得最終結果,該結果由大多數(shù)并行模型確定;增強涉及“加權投票”,其中每個分類器投票以獲得由多數(shù)決定的最終結果,但是順序模型是通過為先前模型的錯誤分類實例分配更大的權重來構建的。 圖8:決策樹的Adaboost 在圖8中,步驟1、2、3涉及一個稱為決策樹的弱學習者(一個僅基于1個輸入要素的值進行預測的1層決策樹;其根立即連接到其葉子的決策樹) 。 構造弱學習者的過程一直持續(xù)到構造了用戶定義數(shù)量的弱學習者或直到訓練期間沒有進一步的改進為止。0基礎小白必知的10種機器學習算法 首先,從一個決策樹樁開始,對一個輸入變量進行決策。 數(shù)據(jù)點的大小表明,我們已應用相等的權重將其分類為圓形或三角形。決策樹樁已在上半部分生成一條水平線以對這些點進行分類。我們可以看到有兩個圓被錯誤地預測為三角形。因此,我們將為這兩個圈子分配更高的權重,并應用另一個決策樹樁。 其次,轉到另一個決策樹樹樁,對另一個輸入變量進行決策。 我們觀察到上一步中兩個錯誤分類的圓圈的大小大于其余點?,F(xiàn)在,第二個決策樹樁將嘗試正確預測這兩個圓。 分配較高的權重后,這兩個圓已通過左側的垂直線正確分類。但這現(xiàn)在導致對頂部三個圓圈的分類錯誤。因此,我們將為頂部的這三個圓圈分配更高的權重,并應用另一個決策樹樁。 第三,訓練另一個決策樹樹樁,以對另一個輸入變量進行決策。 上一步中的三個錯誤分類的圓圈大于其余數(shù)據(jù)點?,F(xiàn)在,已生成右側的垂直線以對圓形和三角形進行分類。 第四,結合決策樹樁。 我們結合了先前3個模型的分隔符,并觀察到與任何單個弱學習者相比,該模型的復雜規(guī)則正確地對數(shù)據(jù)點進行了分類。 回顧一下,我們介紹了一些最重要的數(shù)據(jù)科學機器學習算法: a)5種監(jiān)督學習技術-線性回歸,邏輯回歸,CART,樸素貝葉斯,KNN。 b)3種無監(jiān)督學習技術-Apriori,K-means,PCA。 c)2種合奏技術-用隨機森林裝袋,用XGBoost增強。 相關推薦 大數(shù)據(jù)分析Python中spaCy文本分類使用教程用Python搭建機器學習模型預測房租價格大數(shù)據(jù)分析為什么要學習Pythonpython函數(shù)控制列表和詞典大數(shù)據(jù)分析命令行使用教程 |
|
來自: 東西二王 > 《數(shù)據(jù)技術》