官术网_书友最值得收藏!

1.3 機器學習應該如何入門——世上無難事

相信在看了上面的內容之后,一些讀者朋友也已經動心,想要加入機器學習的領域當中了。保不齊能像故事中的小C一樣,既能抱得美人歸,又能找到一份心儀的工作。但另外,又會擔心自己基礎薄弱,不知道從何入手。

不用擔心!只要你肯多動腦,勤動手,相信很快就可以入門的。下面是我們給大家的一點學習方面的建議。

1.從一種編程語言開始

如果你之前完全沒有編程的基礎,那么我們建議先從一門編程語言開始。目前市面上常用的編程語言有很多種,如C++、Java、Python、R等。那么該選擇哪一種呢?不必糾結,編程語言并沒有絕對的“好”和“不好”的區(qū)別,只是它們各自有各自的特點而已。而且如果你掌握了其中的一種,再學習其他的編程語言時,上手會快得多。

本書使用的語言是Python,主要原因是:在數(shù)據(jù)科學領域,Python已經成為了一門通用的編程語言。它既有通用編程語言的強大能力,同時還具有諸如MATLAB或者R之類針對某個專門領域語言的易用性。同時豐富和強大的庫,讓Python在數(shù)據(jù)挖掘、數(shù)據(jù)可視化、圖像處理、自然語言處理等領域都有非常不俗的表現(xiàn)。

Python還被稱為“膠水語言”,因為它能夠把用其他語言編寫的各種模塊輕松連接在一起。而它簡潔清晰的語法和強制縮進的特點,都讓Python對初學者非常友好。此外,它還是完全開源的,用戶完全不需要支付任何費用。

由于Python語言的簡潔性、易讀性以及可擴展性,在國外用Python做科學計算的研究機構日益增多,一些知名大學已經采用Python來教授程序設計課程。眾多開源的科學計算軟件包都提供了Python的調用接口,如著名的計算機視覺庫OpenCV、三維可視化庫VTK、醫(yī)學圖像處理庫ITK。Google的深度學習框架TensorFlow兼容得最好的語言之一,也是Python。

2017年7月20日,IEEE發(fā)布2017年編程語言排行榜:Python高居首位。

還有一個重要的原因,對于用戶來說,Python的學習成本是非常低的。哪怕是完全零基礎的讀者,在一個月左右的努力學習之后,也可以大致掌握它的基本語法和主要的功能模塊。

因此我們推薦讀者使用Python進行機器學習方面的研究與開發(fā),在后面的章節(jié)我們會帶大家配置基于Python的開發(fā)環(huán)境。

2.熟悉機器學習中的基本概念

在對編程語言有了基本的掌握之后,讀者朋友需要熟悉機器學習中的一些基本概念,比如什么是“有監(jiān)督學習”,什么是“無監(jiān)督學習”,它們之間的區(qū)別是什么,在應用方面有什么不同。另外,對機器學習的“分類”和“回歸”有基本認知,清楚在什么場景下使用分類算法,在什么場景下使用回歸算法。最后理解模型的“泛化”,明白在什么情況下模型會出現(xiàn)“過擬合”的現(xiàn)象,在什么情況下會出現(xiàn)“欠擬合”的現(xiàn)象。

3.了解機器學習中最常見的算法

在了解了基本概念之后,讀者朋友就可以開始了解機器學習中最常用的一些算法了。比如K最近鄰算法、線性模型、樸素貝葉斯、決策樹、隨機森林、SVMs、神經網絡等。

在這個過程中,讀者需要了解每種算法的基本原理和用途,它們的特性分別是什么,在不同的數(shù)據(jù)集中表現(xiàn)如何,如何使用它們建模,模型的參數(shù)如何調整等。

4.掌握對數(shù)據(jù)進行處理的技巧

讀者朋友可根據(jù)前述內容,對小數(shù)據(jù)集進行建模并且做出一些預測。但是在真實世界中,數(shù)據(jù)往往比我們拿來實驗的小數(shù)據(jù)集復雜很多倍。它們的特征變量會大很多,也就是說數(shù)據(jù)的維度會高很多,同時可能完全沒有訓練數(shù)據(jù)集供你使用,這時候讀者就需要掌握一些數(shù)據(jù)處理的技能,比如如何對數(shù)據(jù)進行降維,或者聚類,從而讓數(shù)據(jù)更容易被理解,并從中找到關鍵點,為建模奠定基礎。

5.學會讓模型更好地工作

學會用算法建模和對數(shù)據(jù)進行處理之后,讀者朋友要做的是如何讓模型更好地工作。例如,怎樣做可以讓算法的效率更高,怎樣找到最適合的模型,模型最優(yōu)的參數(shù)是什么,以及如何打造一個流水線,讓幾個模型在其中共同協(xié)作,以解決你的問題等。

6.動手,一定要動手操作

學習一門知識最好的辦法就是使用它,因此建議讀者朋友一定要自己動手實操。不要嫌麻煩,盡可能把本書中的代碼全部自己敲一下這樣才能對內容有更加深刻的理解。如果覺得不夠過癮,還可以到知名的Kaggle大賽平臺,或者“天池”算法大賽平臺上,使用那些來自真實世界的數(shù)據(jù)來磨煉自己的技能。

當然,還有個更好的方法,那就是去企業(yè)中尋找一個機器學習工程師或是算法工程師的職位,在工作中學習,效果是最好的了。

主站蜘蛛池模板: 宜昌市| 老河口市| 阿瓦提县| 三原县| 东阳市| 池州市| 丽江市| 原平市| 定南县| 徐闻县| 荔浦县| 大荔县| 广宁县| 博爱县| 枣阳市| 贵溪市| 六安市| 庄河市| 林西县| 云霄县| 柳江县| 十堰市| 龙海市| 门头沟区| 武功县| 长沙县| 怀来县| 大竹县| 六安市| 静宁县| 邹平县| 东丰县| 仁怀市| 松阳县| 轮台县| 廊坊市| 鲁甸县| 海盐县| 呈贡县| 贵南县| 庆安县|