雪花臺灣

計算機小白如何開始機器學習的學習,有入門課程推薦嗎?


機器學習是一個很模糊且寬泛的話題,關於它的書籍、博客、視頻課程也是非常多的,我認為如果希望做一些宏觀的瞭解,看一些網上的文章就行。如果希望深入學習,個人建議還是系統的看看相關的書籍、視頻課程,然後盡量動手實現一下,因為當你動手實現的時候你會對它的理解更加深刻。

機器學習可以從兩個方向說起:學習演算法和應用領域,如果把應用領域也囊括在內的話,那包含的學習內容就太多了,

以上每個應用領域都能找到很多相關的書籍或者課程,因此就沒必要把它們全部羅列出來了。

單從學習演算法來說,它可以分為如下幾個種類:

按研究階段和研究內容綜合來劃分又可以這樣進行分類:

我就從以上這3個方向開始 介紹一下相關的優質學習資源。

機器學習

視頻課程

《機器學習》-吳恩達

機器學習(Machine Learning)- 吳恩達(Andrew Ng)_嗶哩嗶哩 (゜-゜)つロ 乾杯~-bilibili?

www.bilibili.com

提及機器學習,入門課程當然少不了吳恩達的入門經典課程《機器學習》,雖然目前關於機器學習的教程層出不窮,但是絕大多數都是各教育機構為分取蛋糕而創作出的產物,難免良莠不齊,內容不嚴謹,所以儘管老掉牙,我還是會首推吳恩達的這門《機器學習課程》,

《機器學習與神經網路》-Geoffrey Hinton

Hinton機器學習與神經網路中文課程 - 網易雲課堂?

study.163.com

圖靈獎得主、人工智慧領域三位頂尖大牛之一,我想從事AI領域的應該對Hinton都不陌生,從他的文章中就可以看的出來,非常有深度,嚴謹,他的這門課程也保持了一貫作風。但是,這門課也有一個問題,就是語速相對較快,一遍要跟著理解英語,一遍要去理解他所闡述的知識,我覺得這還是一件挺喫力的事情。

《機器學習》-李宏毅

李宏毅機器學習2019(國語)_嗶哩嗶哩 (゜-゜)つロ 乾杯~-bilibili?

www.bilibili.com

我覺得對於英語水平有限的同學來說看一門英文的課程還是很喫力的,比如我,每當涉及到英語都會覺得頭疼。如果你也一樣,可以選擇看一下李宏毅的《機器學習》,這門課也是一門機器學習的入門經典,目前已經更新到2019版,不僅內容詳細,而且授課語言輕鬆風趣。

書籍

《機器學習》-周志華

這本書很適合機器學習入門,沒有過多的公式推導,也沒有晦澀難懂的辭彙,理論與示例相結合,闡述非常詳細。

機器學習京東¥ 61.60去購買?

《統計學習方法》-李航

和周志華老師的機器學習不同,《統計學習方法》這本書籍有更多的公式推導和理論證明,可以這樣概括兩者的區別:《機器學習》更偏重於演算法原理,讓你知道每個演算法怎麼實現的,步驟是什麼。《統計學習方法》會深扒原理背後的理論支撐,這樣有助於更加深入的理解機器學習演算法,對後續深入研究會有很多好處,當然,隨之而來的就是對於初學者看著滿篇的公式也會讓人覺得很頭疼。

統計學習方法(第2版)京東¥ 83.30去購買?

《機器學習實戰》- Peter Harrington

就如同這本書的名稱一樣,它更加突出實戰,它不過多的討論演算法的原理和優缺點,簡單的介紹一下演算法的流程步驟,然後接下來更多的篇幅就是圍繞實戰展開,會給出一個示例,然後逐步編程實現,這樣有助於讓自己發現學習理論過程中容易忽略的點,進一步加深對機器學習的理解,我認為這本書還是很有必要看一下的,畢竟僅僅學習理論知識難免會落入「紙上談兵」的困境,實踐才能出真知。

我個人建議可以用《機器學習》+《機器學習實戰》的組合進行學習,《統計學習方法》可以在學習一段時間機器學習之後,希望更加深入瞭解機器學習時抽空好好看一下,推導一下裡面的公式。

機器學習實戰 [美] Peter Harrington京東¥ 50.80去購買?

總結

以上課程和書籍都有一個共性,就是直接從神經網路、感知機、貝葉斯、KNN這些機器學習演算法開始講起,而機器學習是一門交叉學科,它涉及概率論、統計學、逼近論、凸分析、計算複雜性理論等多門學科。如果希望在機器學習領域做更加深入的研究,我認為還需要把這些相關的知識學習一下。當然,如果日常工作是強業務類型,更加偏重於機器學習的應用而不是偏重模型調優,我覺得上述這些課程和書籍已經夠用了。

深度學習

視頻課程

書籍

深度學習京東¥ 112.60去購買?

Python深度學習京東¥ 94.00去購買?

深度學習入門京東¥ 46.60去購買?


作品精選

Jackpop:目錄 | 精選CV、Python等系列教程

Jackpop:大數據處理 | SparkHDFS集羣配置及基本使用

Jackpop:實用工具 | 推薦3款令人驚艷的截圖工具

Jackpop:強烈推薦 | 這將會成為一個優質的github項目

Jackpop:C盤快滿了,該如何清理?

Jackpop:學習pytorch該怎麼提高自己的代碼能力?

Jackpop:2019 年雙十一有哪些值得購買的東西?


阿貝爾說過一句話「如果一個人想要在數學上有所進展,那你應該去讀大師的作品,而不是讀他的門徒的作品」。

現在網路上的相關的資料是在是太多了,質量參差不齊,這裡結合我自己的經驗回答一下。

首先還是強烈推薦吳恩達老師的機器學習公開課,配合 @黃海廣 博士組織整理的筆記一起學習效果更佳

https://www.coursera.org/learn/machine-learning?

www.coursera.org

但是這門課總體而言是比較偏理論的,而且課後的作業都是matlab編寫的,很可能你學完了感覺知道機器學習是什麼,但是不知道能用它做什麼,或者怎麼解決實際問題。

這個時候就要推薦另外一門課程就是華盛頓大學的Carlos Guestrin和Emily Fox的

https://www.coursera.org/specializations/machine-learning?

www.coursera.org

兩位都是華盛頓大學的教授,其中Carlos Guestrin是陳天奇大佬在華盛頓大學讀博時的導師。

這門課程比較偏向於實操,通過使用numpy,sklearn,pandas,graphlab(一個高性能分散式機器學習框架)等常用的機器學習工具包教你如果利用他們解決實際的問題,涉及到的演算法包括分類,回歸,聚類等,同時對於每個演算法也會進行原理的推導基於numpy的實現

比較遺憾的是這門課程原先計劃是一個系列6門課,後來由於Carlos Guestrin被蘋果挖走了,所以後面2門課至今沒有錄製完成。

9102年,光會機器學習,lr,svm,xgboost,lightgbm這些還是遠遠不夠的這時候吳恩達大大又出來拯救我們了。他又開了一門深度學習的課程,

https://www.coursera.org/specializations/deep-learning?

www.coursera.org

在這門課中可以瞭解到神經網路工作的基本原理以及優化方法,如何調參,如果防止過擬合等,以及如何使用tensorflow來解決cv和nlp中的一些問題。

剩下的就多看paper多實踐吧~


以下內容來自GIthub的項目《機器學習資源大全中文版》

希望能幫到想要學習 【機器學習】的小夥伴們!!!

C++計算機視覺

通用機器學習

Clojure通用機器學習

Go自然語言處理

通用機器學習

數據分析/數據可視化

Java自然語言處理

通用機器學習

數據分析/數據可視化

Javascript自然語言處理

數據分析/數據可視化

通用機器學習

Julia

通用機器學習

自然語言處理

數據分析/數據可視化

雜項/演示文稿

Lua通用機器學習

演示及腳本

Matlab計算機視覺

自然語言處理

通用機器學習

數據分析/數據可視化

.NET計算機視覺

自然語言處理

通用機器學習

數據分析/數據可視化

Python

計算機視覺

自然語言處理

通用機器學習

數據分析/數據可視化

雜項腳本/iPython筆記/代碼庫

Kaggle競賽源代碼

Ruby自然語言處理

通用機器學習

數據分析/數據可視化

Misc 雜項

R通用機器學習

數據分析/數據可視化

Scala自然語言處理

數據分析/數據可視化

通用機器學習

《機器學習資源大全中文版》

維護者:tangyouhua

貢獻者:toolate、冰斌、雲中游、Daetalus、趙葉宇、You

當然如果你想要更加深入的編程語言知識,或者人工智慧大數據課程,七月在線可以幫到您,在我們的課程中不乏有阿里雲天池/PAI官方合作的專業免費課程。

看完這篇內容後,相信以下三件事,也會對你的個人提升有所幫助:1、點贊,讓更多人能看到這篇內容,同時你的認可也會鼓勵我創作更多優質內容。2、讓自己變的更強:七月在線放出了大量免費公開課,包含了演算法、機器學習、深度學習、Python、天池/kaggle實戰、IT面試求職、機器學習中的數學。也不乏我們與阿里雲天池/PAI聯合發布的課程。 請點擊查看↓七月在線 - 國內領先的人工智慧教育平臺?

www.julyedu.com

再給您推薦一門課程是從Python基礎開始教學,最終過度到數據分析以及各種庫的應用。原價199元,現在已經免費了。進入後登錄就可以能獲得免單劵,可以直接開始學。毫無套路,馬上學Python!!!請點擊查看↓

七月在線 - 國內領先的人工智慧教育平臺?

m.julyedu.com


推薦下自家的機器學習課程,真的很適合小白。而且大部分還是不要錢的。

1.基礎內容

2.練手項目

僅僅作為入門的話,差不多先完成上面的學習吧!進一步的內容,難度會相對來說比較大。建議可以先自己嘗試自學一下,如果希望能夠有助教或者老師幫助快速入門機器學習。可以考慮實驗樓的樓+之機器學習實戰。

樓+之機器學習實戰?

www.shiyanlou.com發佈於 2019-10-23繼續瀏覽內容知乎發現更大的世界打開Chrome繼續404NotFound寫代碼賺學費

首先題主先把計算機學好,打好基礎,再來說機器學習,不管是一些基礎概念還是編程思維都需要前期打好基礎。比如我家小孩兒,作為資深碼農的孩子,從小就繼承了我的衣缽,編程從娃娃抓起,hhhhhh

但是既然題主問了,那我就分享一些方法給你,涉及到很多英文網站,建議用谷歌訪問

以下方法是基於利用Python 來進行機器學習

機器學習是人工智慧領域的一個重要研究課題,近年來一直倍受關注。這一領域可能會提供很有吸引力的一些機會,而且在這一領域開始職業生涯並不像乍看上去那麼困難。即使你在數學或編程方面沒有任何經驗,也不是問題。最重要的因素純粹是你自己的興趣和學習所有這些東西的動機。

如果你是一個新手,不知道從哪裡開始學習、為什麼需要機器學習、以及為什麼它最近越來越受歡迎,看本文就對了!我收集了所有必要信息和有用資源來幫助你學到新的知識和完成你的第一個項目。

為什麼選擇Python?

如果你的目標是成為一名成功的程序員,你需要知道很多事情。但是,對於機器學習和數據科學來說,掌握至少一種編程語言並能夠自信地運用它就足夠了。所以,冷靜點,你不必成為編程天才。

成功的機器學習之旅需要從一開始就選擇適當的編程語言,因為你的選擇將決定你的未來。在這一步,你必須有計劃地思考,正確安排優先事項,不要把時間花在不必要的事情上。

我的觀點是:Python 對於初學者來說是一個完美的選擇,可以讓你專註於機器學習和數據科學領域。它是一種極簡且直觀的語言,具有全功能的工具庫線(也稱為框架),大大減少了獲得第一個結果所需的時間。

你也可以考慮使用 R 語言,但就個人而言,我更傾向於使用 Python。

第1步:你需要了解的ML流程的簡要概述

機器學習是基於經驗的學習。舉個例子,它就像一個人通過觀察別人下棋來學習下棋。通過這種方式,計算機可以通過提供經過訓練的信息來編程,從而獲得高概率識別個體或其特徵的能力。

首先,你需要知道機器學習分為這些不同的階段:

關於提取模式,不同的演算法被使用,這些演算法被分為兩類:

在無監督學習的情況下,機器只接收一組輸入數據。此後,機器將決定輸入數據與任何其他假定數據之間的關係。與監督學習不同的是,當機器被提供一些用於學習的驗證數據時,獨立的無監督學習意味著計算機本身將發現不同數據集之間的模式和關係。無監督學習可以進一步分為聚類和關聯學習。

有監督學習意味著計算機能夠根據提供的樣本識別元素。計算機對其進行研究,並開發基於這些數據識別新數據的能力。例如,可以訓練你的計算機根據以前收到的信息過濾垃圾郵件。

一些監督學習演算法包括:

第2步:複習 Python 數學庫所需要的數學技能

一個在人工智慧和機器學習領域工作的不懂數學的人就像一個不懂說服技巧的政客。

如果沒有起碼的數學知識基礎,你就無法處理機器學習(Machine Learning,ML)和數據科學項目。然而,並不是說需要有數學學位。根據我的個人經驗,每天至少花 30-45 分鐘學習就會很有收穫,你會更快地理解和學習 Python 的應用數學和統計主題。

你需要不斷閱讀或更新基礎理論。不需要閱讀整個教程,只需要關注關鍵的概念。

以下是數據分析和機器學習所需數學的3個步驟:

用於數據分析的線性代數:標量、向量、矩陣和張量

  1. 例如,對於主成分法,你需要了解特徵向量,而回歸方法需要知道矩陣乘法。此外,機器學習通常使用高維數據(包含許多變數的數據)。這種數據類型最好由矩陣表示。

數學分析:導數和梯度

1.數學分析是許多機器學習演算法的基礎。優化問題需要理解導數和梯度。例如,最常見的優化方法之一就是梯度下降。 為了快速學習線性代數和數學分析,我推薦以下課程:

a.Khan Academy 提供線性代數和數學分析的短期實戰課程,基本涵蓋了最重要的內容。

b.MIT OpenCourseWare 為機器學習提供了很棒的數學學習課程,提供了所有視頻講座和學習材料。

2.梯度下降:從頭開始構建一個簡單的神經網路

數據分析和機器學習領域學習數學的最好方法之一是從零開始構建一個簡單的神經網路。你將會使用線性代數來表示網路,並使用數學分析來優化它。特別是,你將從零開始創建一個梯度下降過程。不需要太擔心神經網路間的細微差別。只按照說明編寫代碼就可以了。

以下是一些很好的練習:

《Python中的神經網路(Neural Network in Python?)》 這是一個很棒的教程,會教會你從頭構建一個簡單的神經網路。你也能夠找到有用的插圖來理解梯度下降是如何工作的。

有些更短的教程也能夠幫助你逐步掌握神經網路:

《如何在Python中從零開始構建自己的神經網路(How to build your own Neural Network from scratch in Python)》

《在Python中從零實現一個神經網路——導論(Implementing a Neural Network from Scratch in Python?—?An Introduction)》

《面向初學者的機器學習:神經網路導論(Machine Learning for Beginners: An Introduction to Neural Networks?)》關於神經網路如何工作以及如何在Python中從零開始實現的一個很棒的簡明解釋。

第3步:學習Python語法的基礎知識

好消息是:你不需要完整的學習課程,因為 Python 和數據分析並不是同義詞。

在開始深入研究語法之前,我想分享一個可以將你失敗可能性降到最低的建議。

通過閱讀有關游泳技巧的書籍來學習游泳是不可能的,但是在泳池訓練的同時閱讀這些書籍可以更有效地學會技能。

編程的學習也是類似的。只關注語法是不值當的,你很可能會因此而失去興趣。

你不需要記住所有的東西。嘗試邁出一小步,把理論知識和實踐結合起來,專註於直觀的理解。

例如,在特定的情況下哪個函數是合適的,以及條件運算符是如何工作的。在編寫代碼的過程中,你會通過閱讀文檔逐步記住語法。很快你就不再需要谷歌這些東西了。

如果你對編程沒有任何瞭解,建議閱讀《用Python自動處理那些無聊的事情(Automate the Boring Stuff With Python)》。這本書為初學者提供了實用編程的解釋,並從零開始教學。

閱讀第6章「字元串操作」,完成該課的實際任務,就足夠了。

下面是其他一些值得探索的好資源:

Codecademy——教授良好的通用語法。

Learn Python the Hard Way?—— 一本出色的手冊式書籍,解釋了基礎知識和更複雜的應用程序。Dataquest?—— 這個資源在教授數據科學的同時也教授語法。Python教程(The Python Tutorial)—— 官方文檔。

第4步 探索主要的數據分析庫

下一個階段是進一步學習適用於數據科學的 Python 庫或框架。如前所述, Python 擁有大量的庫。庫是現成函數和對象的集合,你可以直接將它們導入到腳本中,從而節省時間。

如何使用庫?以下是我的建議:

  1. 打開Jupyter Notebook(見下文)。
  2. 大約用半小時把庫文件看一遍。
  3. 將該庫導入到你的 Jupyter Notebook 中。
  4. 按照分步的指南查看正在運行的庫。
  5. 檢查文檔,瞭解它的其他功能。

我不建議立即投入到學習庫中,因為當你開始在項目中使用它們時,你可能會忘記所學的大部分內容。相反,你應該試著弄明白用到的每個庫都能做些什麼。

Jupyter Notebook

Jupyter Notebook 是一款輕量級的 IDE,是分析師們的最愛。在大多數情況下,Python 的安裝包裏已經包含了 Jupyter Notebook。你可以通過Anaconda Navigator 打開一個新項目,它包含在 Anaconda 包中。

你可能會需要的Python庫

Numpy

安裝教程 https://docs.scipy.org/doc/numpy/user/快速上手教程 https://docs.scipy.org/doc/numpy/user/quickstart.html

NumPy 由 Numerical Python 縮寫而來,它是專業人士和初學者最通用和使用最廣泛的庫。使用這個工具,你可以輕鬆舒適地操作多維數組和矩陣。像線性代數運算和數值轉換這樣的函數也是可用的。

Pandas

安裝教程 https://pandas.pydata.org/pandas-docs/stable/快速上手教程 https://pandas.pydata.org/pandas-docs/stable/getting_started/10min.html

Pandas 是一個眾所周知的高性能數據框表示工具。使用它,你幾乎可以從任何數據源載入數據,計算各種函數並創建新的參數,使用類似於 SQL 的聚合函數構建對數據的查詢。此外,還有各種矩陣變換函數、滑動窗口法等從數據中獲取信息的方法。所以這個庫對於一個優秀的專家來說是必不可少的。

Matplotlib

安裝教程 https://matplotlib.org/contents.html快速上手教程 https://matplotlib.org/users/pyplot_tutorial.html

Matplotlib 是一個用於創建圖形和可視化的靈活庫。它很強大,但有點笨重。你可以跳過 Matplotlib 並從使用 Seaborn 開始(請參閱下面的 Seaborn)。

Scikit-Learn

安裝教程 https://scikit-learn.org/stable/documentation.html快速上手教程 https://elitedatascience.com/python-machine-learning-tutorial-scikit-learn

我可以說這是迄今為止我見過的設計得最完善的 ML 包。它實現了廣泛的機器學習演算法,並且很容易嵌入到實際應用程序中。你可以使用庫中大量的函數,比如回歸、聚類、模型選擇、預處理、分類等等。所以它值得全面學習和使用。它最大的優點是工作速度快,因此 Spotify、http://Booking.com、J.P.Morgan 等主流平臺都在使用 Scikit-Learn 是理所當然的。

第5步:開發結構化的項目

一旦掌握了基本語法和庫的基本知識,就可以開始自己完成項目了。

這是另外一些項目資料:

Dataquest——互動式地教授 Python 和數據科學。

Python for Data Analysis——作者寫了很多關於 Python數據分析的論文。

Scikit 文檔——Python 的主要計算機訓練庫。

CS109——哈佛大學數據科學的課程。

第6步:做出你自己的項目

你可以發現許多新東西,但重要的是找到那些你真正感興趣的項目。以下是在這方面最受歡迎的有用資源中,比較突出的一些:

StackOverflow :一個可以在上面討論所有可能的問題的多功能網站,提供了一系列問題和答案。此外,它受眾廣泛,所以你可以詢問你的錯誤並從大量用戶那裡得到答案

Python 文檔 : 另一個搜索參考資料的好地方儘可能參與所有與 Python 相關的活動,並找到從事有趣項目的人員。順便說一下, Github 是實現這一目標的絕佳場所。學習新知識並在同類中不斷調整 ,所有這些都將有助於提高你的水平!

寫在最後以及一點鼓勵

根據摩爾定律,集成電路上的晶體管數量每24個月翻一番。這意味著,我們的計算機性能每年都在進步,也意味著以前無法觸及的知識邊界再次「向右移動」——大數據和機器學習演算法的研究有很大空間!

希望對題主有幫助~


首先題主先把計算機學好,打好基礎,再來說機器學習,不管是一些基礎概念還是編程思維都需要前期打好基礎。比如我家小孩兒,作為資深碼農的孩子,從小就繼承了我的衣缽,編程從娃娃抓起,hhhhhh

但是既然題主問了,那我就分享一些方法給你,涉及到很多英文網站,建議用谷歌訪問

以下方法是基於利用Python 來進行機器學習

機器學習是人工智慧領域的一個重要研究課題,近年來一直倍受關注。這一領域可能會提供很有吸引力的一些機會,而且在這一領域開始職業生涯並不像乍看上去那麼困難。即使你在數學或編程方面沒有任何經驗,也不是問題。最重要的因素純粹是你自己的興趣和學習所有這些東西的動機。

如果你是一個新手,不知道從哪裡開始學習、為什麼需要機器學習、以及為什麼它最近越來越受歡迎,看本文就對了!我收集了所有必要信息和有用資源來幫助你學到新的知識和完成你的第一個項目。

為什麼選擇Python?

如果你的目標是成為一名成功的程序員,你需要知道很多事情。但是,對於機器學習和數據科學來說,掌握至少一種編程語言並能夠自信地運用它就足夠了。所以,冷靜點,你不必成為編程天才。

成功的機器學習之旅需要從一開始就選擇適當的編程語言,因為你的選擇將決定你的未來。在這一步,你必須有計劃地思考,正確安排優先事項,不要把時間花在不必要的事情上。

我的觀點是:Python 對於初學者來說是一個完美的選擇,可以讓你專註於機器學習和數據科學領域。它是一種極簡且直觀的語言,具有全功能的工具庫線(也稱為框架),大大減少了獲得第一個結果所需的時間。

你也可以考慮使用 R 語言,但就個人而言,我更傾向於使用 Python。

第1步:你需要了解的ML流程的簡要概述

機器學習是基於經驗的學習。舉個例子,它就像一個人通過觀察別人下棋來學習下棋。通過這種方式,計算機可以通過提供經過訓練的信息來編程,從而獲得高概率識別個體或其特徵的能力。

首先,你需要知道機器學習分為這些不同的階段:

關於提取模式,不同的演算法被使用,這些演算法被分為兩類:

在無監督學習的情況下,機器只接收一組輸入數據。此後,機器將決定輸入數據與任何其他假定數據之間的關係。與監督學習不同的是,當機器被提供一些用於學習的驗證數據時,獨立的無監督學習意味著計算機本身將發現不同數據集之間的模式和關係。無監督學習可以進一步分為聚類和關聯學習。

有監督學習意味著計算機能夠根據提供的樣本識別元素。計算機對其進行研究,並開發基於這些數據識別新數據的能力。例如,可以訓練你的計算機根據以前收到的信息過濾垃圾郵件。

一些監督學習演算法包括:

第2步:複習 Python 數學庫所需要的數學技能

一個在人工智慧和機器學習領域工作的不懂數學的人就像一個不懂說服技巧的政客。

如果沒有起碼的數學知識基礎,你就無法處理機器學習(Machine Learning,ML)和數據科學項目。然而,並不是說需要有數學學位。根據我的個人經驗,每天至少花 30-45 分鐘學習就會很有收穫,你會更快地理解和學習 Python 的應用數學和統計主題。

你需要不斷閱讀或更新基礎理論。不需要閱讀整個教程,只需要關注關鍵的概念。

以下是數據分析和機器學習所需數學的3個步驟:

用於數據分析的線性代數:標量、向量、矩陣和張量

  1. 例如,對於主成分法,你需要了解特徵向量,而回歸方法需要知道矩陣乘法。此外,機器學習通常使用高維數據(包含許多變數的數據)。這種數據類型最好由矩陣表示。

數學分析:導數和梯度

1.數學分析是許多機器學習演算法的基礎。優化問題需要理解導數和梯度。例如,最常見的優化方法之一就是梯度下降。 為了快速學習線性代數和數學分析,我推薦以下課程:

a.Khan Academy 提供線性代數和數學分析的短期實戰課程,基本涵蓋了最重要的內容。

b.MIT OpenCourseWare 為機器學習提供了很棒的數學學習課程,提供了所有視頻講座和學習材料。

2.梯度下降:從頭開始構建一個簡單的神經網路

數據分析和機器學習領域學習數學的最好方法之一是從零開始構建一個簡單的神經網路。你將會使用線性代數來表示網路,並使用數學分析來優化它。特別是,你將從零開始創建一個梯度下降過程。不需要太擔心神經網路間的細微差別。只按照說明編寫代碼就可以了。

以下是一些很好的練習:

《Python中的神經網路(Neural Network in Python?)》 這是一個很棒的教程,會教會你從頭構建一個簡單的神經網路。你也能夠找到有用的插圖來理解梯度下降是如何工作的。

有些更短的教程也能夠幫助你逐步掌握神經網路:

《如何在Python中從零開始構建自己的神經網路(How to build your own Neural Network from scratch in Python)》

《在Python中從零實現一個神經網路——導論(Implementing a Neural Network from Scratch in Python?—?An Introduction)》

《面向初學者的機器學習:神經網路導論(Machine Learning for Beginners: An Introduction to Neural Networks?)》關於神經網路如何工作以及如何在Python中從零開始實現的一個很棒的簡明解釋。

第3步:學習Python語法的基礎知識

好消息是:你不需要完整的學習課程,因為 Python 和數據分析並不是同義詞。

在開始深入研究語法之前,我想分享一個可以將你失敗可能性降到最低的建議。

通過閱讀有關游泳技巧的書籍來學習游泳是不可能的,但是在泳池訓練的同時閱讀這些書籍可以更有效地學會技能。

編程的學習也是類似的。只關注語法是不值當的,你很可能會因此而失去興趣。

你不需要記住所有的東西。嘗試邁出一小步,把理論知識和實踐結合起來,專註於直觀的理解。

例如,在特定的情況下哪個函數是合適的,以及條件運算符是如何工作的。在編寫代碼的過程中,你會通過閱讀文檔逐步記住語法。很快你就不再需要谷歌這些東西了。

如果你對編程沒有任何瞭解,建議閱讀《用Python自動處理那些無聊的事情(Automate the Boring Stuff With Python)》。這本書為初學者提供了實用編程的解釋,並從零開始教學。

閱讀第6章「字元串操作」,完成該課的實際任務,就足夠了。

下面是其他一些值得探索的好資源:

Codecademy——教授良好的通用語法。

Learn Python the Hard Way?—— 一本出色的手冊式書籍,解釋了基礎知識和更複雜的應用程序。Dataquest?—— 這個資源在教授數據科學的同時也教授語法。Python教程(The Python Tutorial)—— 官方文檔。

第4步 探索主要的數據分析庫

下一個階段是進一步學習適用於數據科學的 Python 庫或框架。如前所述, Python 擁有大量的庫。庫是現成函數和對象的集合,你可以直接將它們導入到腳本中,從而節省時間。

如何使用庫?以下是我的建議:

  1. 打開Jupyter Notebook(見下文)。
  2. 大約用半小時把庫文件看一遍。
  3. 將該庫導入到你的 Jupyter Notebook 中。
  4. 按照分步的指南查看正在運行的庫。
  5. 檢查文檔,瞭解它的其他功能。

我不建議立即投入到學習庫中,因為當你開始在項目中使用它們時,你可能會忘記所學的大部分內容。相反,你應該試著弄明白用到的每個庫都能做些什麼。

Jupyter Notebook

Jupyter Notebook 是一款輕量級的 IDE,是分析師們的最愛。在大多數情況下,Python 的安裝包裏已經包含了 Jupyter Notebook。你可以通過Anaconda Navigator 打開一個新項目,它包含在 Anaconda 包中。

你可能會需要的Python庫

Numpy

安裝教程 https://docs.scipy.org/doc/numpy/user/快速上手教程 https://docs.scipy.org/doc/numpy/user/quickstart.html

NumPy 由 Numerical Python 縮寫而來,它是專業人士和初學者最通用和使用最廣泛的庫。使用這個工具,你可以輕鬆舒適地操作多維數組和矩陣。像線性代數運算和數值轉換這樣的函數也是可用的。

Pandas

安裝教程 https://pandas.pydata.org/pandas-docs/stable/快速上手教程 https://pandas.pydata.org/pandas-docs/stable/getting_started/10min.html

Pandas 是一個眾所周知的高性能數據框表示工具。使用它,你幾乎可以從任何數據源載入數據,計算各種函數並創建新的參數,使用類似於 SQL 的聚合函數構建對數據的查詢。此外,還有各種矩陣變換函數、滑動窗口法等從數據中獲取信息的方法。所以這個庫對於一個優秀的專家來說是必不可少的。

Matplotlib

安裝教程 https://matplotlib.org/contents.html快速上手教程 https://matplotlib.org/users/pyplot_tutorial.html

Matplotlib 是一個用於創建圖形和可視化的靈活庫。它很強大,但有點笨重。你可以跳過 Matplotlib 並從使用 Seaborn 開始(請參閱下面的 Seaborn)。

Scikit-Learn

安裝教程 https://scikit-learn.org/stable/documentation.html快速上手教程 https://elitedatascience.com/python-machine-learning-tutorial-scikit-learn

我可以說這是迄今為止我見過的設計得最完善的 ML 包。它實現了廣泛的機器學習演算法,並且很容易嵌入到實際應用程序中。你可以使用庫中大量的函數,比如回歸、聚類、模型選擇、預處理、分類等等。所以它值得全面學習和使用。它最大的優點是工作速度快,因此 Spotify、http://Booking.com、J.P.Morgan 等主流平臺都在使用 Scikit-Learn 是理所當然的。

第5步:開發結構化的項目

一旦掌握了基本語法和庫的基本知識,就可以開始自己完成項目了。

這是另外一些項目資料:

Dataquest——互動式地教授 Python 和數據科學。

Python for Data Analysis——作者寫了很多關於 Python數據分析的論文。

Scikit 文檔——Python 的主要計算機訓練庫。

CS109——哈佛大學數據科學的課程。

第6步:做出你自己的項目

你可以發現許多新東西,但重要的是找到那些你真正感興趣的項目。以下是在這方面最受歡迎的有用資源中,比較突出的一些:

StackOverflow :一個可以在上面討論所有可能的問題的多功能網站,提供了一系列問題和答案。此外,它受眾廣泛,所以你可以詢問你的錯誤並從大量用戶那裡得到答案

Python 文檔 : 另一個搜索參考資料的好地方儘可能參與所有與 Python 相關的活動,並找到從事有趣項目的人員。順便說一下, Github 是實現這一目標的絕佳場所。學習新知識並在同類中不斷調整 ,所有這些都將有助於提高你的水平!

寫在最後以及一點鼓勵

根據摩爾定律,集成電路上的晶體管數量每24個月翻一番。這意味著,我們的計算機性能每年都在進步,也意味著以前無法觸及的知識邊界再次「向右移動」——大數據和機器學習演算法的研究有很大空間!

希望對題主有幫助~


推薦閱讀:
相關文章