圖源:unsplash
學習是最好的投資,在B站最大的作用都變成學習之后,人們在互聯(lián)網(wǎng)上學習什么都不稀奇了。沒錯,數(shù)據(jù)科學、人工智能和機器學習也是可以自學的。
時間和金錢常常是人們打算學習一門新技能時面臨的兩大障礙,而自學是一門需要自律和投入才能掌握的藝術(shù)。掌握得當,能將學習很好地融入工作生活中。然而,學習數(shù)據(jù)科學、人工智能或機器學習的起步階段是非常艱難的,自學取得良好進步的關(guān)鍵是按照自己的節(jié)奏學習。
本文中筆者將分享一條想要學習數(shù)據(jù)科學、人工智能和機器學習的人們可以遵循的、在學習新事物時能取得進步的道路。
學習數(shù)學
很多人談到數(shù)學如臨大敵,但在這個領(lǐng)域?qū)W數(shù)學是非常必要的。我相信,讀到這篇文章的人至少都有從高中學到的基礎(chǔ)到中等的數(shù)學知識。這作為開始來說足夠了,但在數(shù)據(jù)科學、人工智能和機器學習領(lǐng)域還遠遠不夠。你需要深入一點,學習一些統(tǒng)計學、代數(shù)和其他主題中的概念。
學習代碼
初學者不要直接學習為機器學習編寫代碼,先要學習編程的一般核心概念。了解什么是編程,了解現(xiàn)有的代碼類型以及如何正確地編寫代碼。
這是非常重要的,因為你會學習到許多基本概念,這些概念將伴隨你在這個領(lǐng)域的余生。慢慢來,不要急于學習高級的東西,理解這一步中的大部分內(nèi)容將決定你在這個行業(yè)的高度。
圖源:unsplash
讓自己適應(yīng)一種編程語言
現(xiàn)在數(shù)據(jù)科學家、人工智能和機器學習工程師使用多種語言來完成工作,最常用的語言是Python、R語言、Java、Julia和SQL等,也可以使用許多其他語言,筆者列出的是最常用的語言,原因有很多:
· 它們是開源的,可以免費使用。
· 它們能用更少的代碼做更多的事情。
· 如果花費足夠的時間學習并堅持,它們學起來容易,進步也很快。
· 它們有一個優(yōu)秀可靠的團體,在你遇到任何問題時提供幫助和支持。
· 它們擁有你作為一個數(shù)據(jù)科學家,人工智能或機器學習工程師將會需要的幾乎所有的庫和包。
在最開始學習編程語言時必須慢慢來,盡可能不要同時學習一種以上的語言,這會使人感到混亂,還可能在一段時間內(nèi)迷失方向。不要著急,一次學習一門語言,確保只學語言中你的工作需要的那部分。
筆者建議在學習其他語言之前先學習python,它是一種相對容易理解的語言。筆者還建議在學習用于數(shù)據(jù)科學和人工智能/機器學習的python之前先學習綜合的python。
學習如何獲取數(shù)據(jù)
通常,數(shù)據(jù)不會直接給到你,有時甚至根本就沒有數(shù)據(jù),但無論如何,你必須找到一種方法來獲取可以使用的數(shù)據(jù)。你的公司可能有很好的數(shù)據(jù)收集系統(tǒng),那就很方便了;如果沒有,你必須找到獲取數(shù)據(jù)的方法,不是任意的數(shù)據(jù)都行,而是可以用來實現(xiàn)目標的優(yōu)質(zhì)數(shù)據(jù)。
獲取數(shù)據(jù)并不直接意味著挖掘數(shù)據(jù),它是數(shù)據(jù)挖掘下的一個過程??梢栽诨ヂ?lián)網(wǎng)上的許多地方獲得免費和開源的數(shù)據(jù),有時你需要從網(wǎng)站上抓取數(shù)據(jù)。網(wǎng)頁抓取每個人都該學習一下,它可能出現(xiàn)在數(shù)據(jù)科學家,人工智能或機器學習工程師的整個職業(yè)生涯里。
數(shù)據(jù)也可以保存在數(shù)據(jù)庫中,因此作為數(shù)據(jù)科學家、人工智能或機器學習工程師,必須了解一些數(shù)據(jù)庫管理知識,以便能夠連接到數(shù)據(jù)庫并直接從中工作。在這個階段,SQL的知識是非常重要的。
圖源:unsplash
學習如何處理數(shù)據(jù)
這通常被稱為數(shù)據(jù)整理:這個過程包括清理已有的數(shù)據(jù),可以通過對已有的數(shù)據(jù)執(zhí)行一些探索性數(shù)據(jù)分析并刪除數(shù)據(jù)中不需要的部分來完成。這個過程還涉及到將已有的數(shù)據(jù)結(jié)構(gòu)化為可以使用的表單。
在進行數(shù)據(jù)科學、人工智能或機器學習的項目時,這是最消磨精力的部分。學習過程中使用到的大多數(shù)示例數(shù)據(jù)都經(jīng)過了預處理,但是現(xiàn)實世界中的數(shù)據(jù)可能沒有經(jīng)過任何處理階段。
如果渴望在這個領(lǐng)域做得好,你應(yīng)該找到一些真實世界的數(shù)據(jù)并以此展開工作。雖然真實世界的數(shù)據(jù)幾乎可以在任何地方找到,但是Kaggle是一個可以從全球各大公司獲得真實世界數(shù)據(jù)的神奇地方。數(shù)據(jù)處理是一項極其累人的任務(wù),但只要持之以恒,它就會成為一件非常有趣的事情。
學習如何可視化數(shù)據(jù)
圖源:unsplash
作為一名數(shù)據(jù)科學家、人工智能或機器學習工程師,不一定你的公司里或團隊中的每個人都能夠理解你所在領(lǐng)域的技術(shù)細節(jié),或者能夠從原始數(shù)據(jù)中做出推斷。這就是為什么我們需要學習可視化數(shù)據(jù)。
數(shù)據(jù)可視化基本上是指將數(shù)據(jù)以圖形的形式呈現(xiàn)出來的過程,以便讓所有人了解數(shù)據(jù)是關(guān)于什么的,無論他們是否了解數(shù)據(jù)科學、人工智能或機器學習。
有許多可視化數(shù)據(jù)的方法。作為程序員,編寫代碼來可視化數(shù)據(jù)是萬能方法,既快速又無需成本。編寫能夠?qū)?shù)據(jù)可視化的代碼,可以用編程語言附帶的許多免費和開源庫來完成,Matplotlib、Seaborn和Bokeh都是可以用來可視化數(shù)據(jù)的python庫。
另一種方法是使用封閉源代碼工具,比如Tableau。有許多用于數(shù)據(jù)可視化的封閉源工具,可以用來制作更簡練、更復雜的可視化,但是要收費。Tableau是最常見的一個,也是筆者經(jīng)常使用的一個工具。
人工智能和機器學習
人工智能和機器學習更像是數(shù)據(jù)科學的子集,因為它們都是由數(shù)據(jù)驅(qū)動的,指的是通過向機器或其他無生命的物體輸入處理好的數(shù)據(jù),訓練它們,使其表現(xiàn)得像人類一樣的過程。
圖源:unsplash
通過逐步地教導和引導機器,它們可以做許多人類做的事情。你可以把機器想象成完全沒有知識的嬰兒,它逐漸學會識別物體、說話、從錯誤中學習然后變得更好。機器也可以用同樣的方式接受教導去做大部分事情。
人工智能和機器學習通過使用數(shù)學算法給機器帶來生命,其全部潛力仍然未知,這是一個不斷改進的領(lǐng)域。目前,人工智能和機器學習廣泛應(yīng)用于認知功能,如物體檢測和識別、面部識別、語音識別和自然語言處理、欺詐和垃圾郵件檢測等。
學習如何將機器學習模型應(yīng)用到互聯(lián)網(wǎng)上
使用機器學習構(gòu)建的模型可以通過部署讓網(wǎng)絡(luò)上的每個人找得到。要做到這一點,需要對網(wǎng)頁開發(fā)有良好的理解,你需要創(chuàng)建一個或一組網(wǎng)頁來容納模型。
網(wǎng)站的前端也需要與包含模型的后端通信。為此,你還需要知道如何構(gòu)建和集成APIs來處理網(wǎng)站前端和存放機器學習模型的后端之間的通信。如果你想要通過pipeline或docker容器將機器學習模型部署到云服務(wù)器上,那么你可能需要對云計算和DevOPs有很好的理解。
部署機器學習模型有很多方法,但首先,筆者建議學習使用python web框架Flask部署機器學習模型。
給自己找個導師
圖源:unsplash
自學不意味著閉門造車,沒有什么比直接向行業(yè)內(nèi)專業(yè)人士學習更好的了,這樣你才能學習到真實生活中的概念和其他只有親身經(jīng)歷才能教授的東西。
擁有一位導師有很多好處,但并不是每個導師都能對你的職業(yè)或生活產(chǎn)生有效的影響,一個好的導師很重要。NotitiaAI是一個把數(shù)據(jù)科學、人工智能和機器學習領(lǐng)域的初學者培養(yǎng)成專家的平臺,平臺會給你指派一位個人導師,親自專業(yè)地幫助你在所選領(lǐng)域成長。它是我能找到的最實惠的虛擬培訓和指導平臺。
請注意,僅僅通過學習課程和在線資源并不足以讓你成為數(shù)據(jù)科學家、人工智能或機器學習工程師。你還必須獲得這些領(lǐng)域的機構(gòu)認證,有些職位還有學歷要求。花時間學習,獲得證書或?qū)W位,你才準備好了進入這個行業(yè)。
但毫無疑問,互聯(lián)網(wǎng)讓學習變得簡單,你離數(shù)據(jù)科學前所未有的近。
如轉(zhuǎn)載,請后臺留言,遵守轉(zhuǎn)載規(guī)范