當前位置:
首頁 > 最新 > 怎樣入手學習R的演算法?

怎樣入手學習R的演算法?

更多騰訊海量技術文章,請關注云加社區:https://cloud.tencent.com/developer/column

作者:CDA數據分析師

R是目前學習R語言中應用最廣泛的平台。當你認真起來學習R的時候你會找到學習R的竅門。

它之所以功能強大是因為很多機器學習的演算法都是現有的。然而其中一個問題是這些演算法都是由第三方提供的,這似乎讓這些演算法的使用看起來沒有一致性。因此它會放慢你學習的步伐,而且影響程度很大,那是因為你需要學著如何不斷的運用在每個包里的演算法對數據做出模型以用來做出某些預測,而且要不斷的重複。

對於處在這個階段的人來說,你會發現你是如何可以克服這些在在R的演算法中,涉及機器學習中的困難。如果能按照你提早準備好這些方法來系統的學習它,會顯得先對容易得心應手。

大部分的演算法都是缺乏一致性的

R是一個龐大的系統。第三方開源R包提供資源,能允許相關學者和教授獲取可用的功能最強大的演算法,而這些就掌握在我們這些實踐者的手裡。

這裡又有一個問題,且親身經歷過的,是如何學習R並把相關的來自不同的R包的演算法運用到R中。這種不一致性也延伸到了文檔,它們有些提供了現有的實用例子用於分類,但忽略了回歸分析,而有一些壓根就沒有提供例子。

這都意味著如果你想嘗試使用使用不同R包中不同的演算法,你必須要花一些時間分析比較出哪種方法比較合適,並且還要對每種方法逐一做出相關的預測。這會花費你很多時間,尤其是面對那些層次不齊的例子和描述。

下面我來總結一下這些可能遇到的困難:

不一致性:演算法的使用,對於分析不同的模型,為了能適配其數據及其模型本身來說,都是不一樣的。而他們最終還是用於產生模型的預測。這意味著你需要學習每一個和每一種演算法的運用,從而能讓你把這些工作實例合攏在一起,從而讓你單獨針對這個問題進行解答。

分散的演算法:這些演算法在不同R包中實施起來是不一樣的,同時這也使得找出這些R包中提供了一個你需要的實施方案的演算法變得困難,更不用說那些提供了常用的實現方法了。此外,這些文檔對於一個R包來說也許分散在多個幫助文件中,網站甚至它的簡介。這意味著你需要做大量的研究以此找出這樣的一個演算法,更不用說編輯一系列的你可能會選擇的演算法。

不完整性:一個演算法的文檔幾乎不可能是完整的。一個使用實例可能可能不是現有的。倘若是這樣,這可能不被論證為一個典型的問題。這意味著你很難快速的掌握如何執行這樣的一個你需要完成操作。

複雜性:每種演算法在它的執行能力的複雜度已經描述上的複雜度都是不一樣的。這會對你從使用一個包到另一個包造成不必要的傷害。你肯定想如何如何把所得到的演算法和參數進行最有效的利用,就像你不想用很大篇幅的PDF文件僅僅寫一個「你好,世界」這樣小題大做。

擁有一本屬於你自己的工具書

你可以利用一個收集各種演算法的工具書或文檔來幫助你更好的完成工作。你擁有了它以後,你可以從中找出R的機器學習演算法的實例並且你可以複製粘貼這些演算法,通過這樣解決你實際遇到的特定問題。

為了能幫助你更好的在你的工作中使用這樣的工具書,你需要確信你知道這些關鍵的使用原則:

單一性:每段實例代碼都必須是單一的,完整的以及可執行的。

單指這些代碼:每種方法都必須都必須關注於這些代碼,它們在機器學習中有少量的注釋(這裡有一些優秀的書籍介紹到他們,不要把這些概念混淆)。

簡便性:每種方法都在最常用的實例展現出來,而它們可能是在你尋找的時候你所需要的演算法。當你想要諮詢這些正式的文檔的時候你只需要找出相關的參數因此你可以找出最有效的演算法。

便攜性:這些方法都提供了一個這樣的解釋,它們都是可以查找或現有的,可瀏覽和查閱的(一本記錄使用方法的書)。

一致性:這些實例代碼都是一致的,同時也是伴隨著相同代碼結構和風格的傳統(下載數據,合適的模型,用於模型)。

一本演算法工具書可以讓你使用R平台用於機器學習和解決複雜的問題。

你可以直接運用這些演算法和功能。

你可以發現你所需要的演算法。

你可以通過大致瀏覽就能明白這些演算法的工作原理。

你可以使用一個屬於你自己的方法,同時用它來使用這些演算法並把它們整理成一個你想要的方式。

你可以最有效的使用這裡的演算法和功能。

在R中演算法的用途

我們已經大致的說了這樣的一些實例來描述它們大致的情況。

我也在此提供一些R當中機器語言學慣用途的實例,它們以演算法類型或相似度整理成如下:

線性回歸分析:普通的最小二乘回歸法、逐步回歸法、主成分回歸法以及偏最小二乘法。

改進線性回歸:嶺回歸、最小絕對收縮和選擇運運算元及其彈性網路。

非線性回歸分析:多變數自適應回歸的刺(MARS)、支撐向量機(SVM)、k進鄰判別法(kNN)和神經網路。

非線性回歸決策樹:分類與回歸樹(CART)、條件決策樹、模態樹、規則系統、套裝車、隨即森林、梯度提升機(GBM)和立體主義。

線性分類:後勤回歸分析、線性判別分析(IDA)和偏最小二乘判別式。

非線性分類:混合判別分析(MDA)、二次判別分析(QDA)、正則化判別分析(RDA),神經網路、靈活判別分析(FDA),支撐向量機(SVM)、k最鄰(kNN)和樸素貝葉斯。

非線性決策樹分類:分類回歸樹(CART)、C4.5、部件、包裝車、隨即森林、梯度提升機(GBM)現有的C5.0.

總結

在這篇文章中,你會發現R語言是非常受歡迎的,而且其機器語言學習功能強大,但是不足的是這種功能需要時間來操作他。

同時,你會發現R語言當中,地址限制的一種方式就是制定這樣的一本書,包含了一些完整且專一的演算法,而且這些演算法對於你來說是很容易找到且你可以按照你的方式把它們運用到實際問題中。

最後,你會在廣闊的演算法類型範圍中看到一些R中關於機器學習演算法的方法的實例,同時你在這種已經給你提供相關方案的工作中找到這樣的一些嚮導。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雲加社區 的精彩文章:

雲時代的傳統產業轉型之路
如何破解手機密碼,七種方法繞過安卓手機鎖屏

TAG:雲加社區 |