手把手教你如何學習python

2021-02-20 Python研究院

作者 | Oleksii Kharkovyna

譯者 | 李潔

編輯 | Lemonbit

譯文出品 | Python數據之道

機器學習是人工智慧領域的一個重要研究課題,近年來一直倍受關注。這一領域可能會提供有吸引力的機會,而且在這一領域開始職業生涯並不像乍看上去那麼困難。

即使你在數學或編程方面沒有任何經驗,也不是問題。學會的最重要的因素純粹是你自己的興趣和學習所有這些東西的動機。

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

為什麼選擇Python?

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

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

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

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

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

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

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

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

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

一些監督學習算法包括:

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

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

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

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

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

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

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

2. 數學分析:導數和梯度

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

Khan Academy 提供線性代數和數學分析的短期實戰課程,基本涵蓋了最重要的內容。MIT OpenCourseWare 為機器學習提供了很棒的數學學習課程,提供了所有視頻講座和學習材料。

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



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

以下是一些很好的練習:

《Python中的神經網絡(Neural Network in Python )》 https://www.amazon.com/Neural-Network-Projects-Python-ultimate/dp/1789138906 這是一個很棒的教程,會教會你從頭構建一個簡單的神經網絡。你也能夠找到有用的插圖來理解梯度下降是如何工作的。

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

《如何在Python中從零開始構建自己的神經網絡(How to build your own Neural Network from scratch in Python)》 https://towardsdatascience.com/how-to-build-your-own-neural-network-from-scratch-in-python-68998a08e4f6

《在Python中從零實現一個神經網絡——導論(Implementing a Neural Network from Scratch in Python — An Introduction)》 http://www.wildml.com/2015/09/implementing-a-neural-network-from-scratch/

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

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

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

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

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

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

你不需要記住所有的東西。嘗試邁出一小步,把理論知識和實踐結合起來。專注於直觀的理解,例如,在特定的情況下哪個函數是合適的,以及條件運算符是如何工作的。在編寫代碼的過程中,你會通過閱讀文檔逐步記住語法。很快你就不再需要谷歌這些東西了。

如果你對編程沒有任何了解,建議閱讀《用Python自動處理那些無聊的事情(Automate the Boring Stuff With Python)》。https://automatetheboringstuff.com/  這本書為初學者提供了實用編程的解釋,並從零開始教學。閱讀第6章「字符串操作」,完成該課的實際任務,就足夠了。

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

Codecademy——https://www.codecademy.com/, 教授良好的通用語法。

Learn Python the Hard Way —— https://learnpythonthehardway.org/, 一本出色的手冊式書籍,解釋了基礎知識和更複雜的應用程式。

Dataquest —— https://www.dataquest.io/, 這個資源在教授數據科學的同時也教授語法。

Python教程The Python Tutorial)——https://docs.python.org/3/tutorial/, 官方文檔。

記住,你越早開始做真正的項目,你就會越早學會它。無論如何,如果需要的話,你總能夠回頭繼續學習語法。

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

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

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

將該庫導入到您的 Jupyter Notebook 中。

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

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、Booking.com、J.P.Morgan 等主流平臺都在使用 Scikit-Learn 是理所當然的。

第4步 開發結構化的項目

一旦掌握了基本語法和庫的基本知識,就可以開始自己完成項目了。多虧了這些項目,你將能夠學習新的東西,並為長遠的工作做投資。

已有足夠多的資源為結構化項目提供主題:

Dataquest——交互式地教授 Python 和數據科學。分析從中央情報局的文件到 NBA 比賽的統計數據等的一系列有趣的數據集,並開發包括神經網絡和決策樹在內的策略算法。https://www.dataquest.io/

Python for Data Analysis——作者寫了很多關於 Python數據分析的論文。http://bedford-computing.co.uk/learning/wp-content/uploads/2015/10/Python-for-Data-Analysis.pdf

Scikit 文檔——Python 的主要計算機訓練庫。https://scikit-learn.org/stable/documentation.html

CS109——哈佛大學數據科學的課程。https://cs109.github.io/2015/

第5步 做出你自己的項目

你可以發現許多新東西,但重要的是找到那些你真正感興趣的項目。然而,在找到理想工作的快樂時刻到來之前,你應該學會如何出色地處理程序中的錯誤。

以下是在這方面最受歡迎的有用資源中,比較突出的一些:

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

Python 文檔 —— 另一個搜索參考資料的好地方

不言而喻,你也不應該忽視任何機會或合作的邀請。儘可能參與所有與 Python 相關的活動,並找到從事有趣項目的人員。順便說一下, Github 是實現這一目標的絕佳場所。學習新知識並在同類中不斷調整 —— 所有這些都將有助於提高你的水平!



寫在最後以及一點鼓勵

你可能會問:「為什麼我要投身於機器學習領域;也許已經有很多其他優秀的專家了。」

知道嗎?我也曾落入這個陷阱,但現在我可以大膽地說——這類想法不會給你帶來任何好處而是你成功的巨大障礙。

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

誰知道將來會發生什麼。也許這些數字會增加得更多,機器學習也會變得更重要?很可能是的!

最可怕的就是你誤認為你的位置已經被其他專家取代了。我希望你有足夠的意願和力量去學習,然後擁有那些能點燃你內心之光的項目!

本文來源:

https://towardsdatascience.com/beginners-guide-to-machine-learning-with-python-b9ff35bc9c51

- END -

如果喜歡的話長按下方二維碼關注喲~

相關焦點

  • 手把手教你學Python之手寫數字識別
    問題描述:手寫數字識別是指給定一系列的手寫數字圖片以及對應的數字標籤,構建模型進行學習,目標是對於一張新的手寫數字圖片能夠自動識別出對應的數字
  • 手把手教你如何在VSCode裡調試python
    選擇配置會顯示一個列表,您可以從中選擇不同的配置:默認情況下,調試器使用與VS Code的其他功能相同的python.pythonPath工作空間設置。 要使用不同的解釋器進行特定的調試,請在launch.json中為pythonPath設置適用的調試器配置,如下一節所述。 或者,選擇狀態欄上的命名解釋器以選擇另一個更新python.pythonPath。
  • Python機器學習(微課視頻版)——手把手教你掌握150個精彩案例|文末贈書
    (4)微課視頻(共420分鐘)為了提高學習效果,本書為所有案例提供了完整的視頻講解,讀者可跟隨視頻中演示的步驟進行學習。《Python機器學習(微課視頻版)——手把手教你掌握150個精彩案例》由淺入深、圖文並茂地介紹了Python機器學習方面的相關內容,並通過150多個實際案例,手把手地教會讀者掌握用Python語言進行機器學習相關項目開發的方法與技巧。
  • 「Python+cv2」Python安裝opencv及圖像的基本操作
    檢查python環境上面可以看出python版本是3.7。調用exit()函數可以退出python。如果對Python安裝有疑問的可以參考我的文章:手把手教你搭建Python3開發環境手把手教你安裝python編輯器pycharm2、檢查pip3是否安裝
  • 學習Python必備的8本書
    基礎篇介紹基本的編程概念,實戰篇介紹如何利用新學到的知識開發功能豐富的項目:2D遊戲《外星人入侵》,數據可視化實戰,Web應用程式。讀者點評:從編程小白的角度看,入門極佳。手把手教的感覺,卻絕不囉嗦。什麼叫入門書?一本書讀下來,行文上不卡殼,邏輯上不跳躍,讀者如爬樓梯,一步一步即可登樓。
  • 手把手教你如何打邦邦!
    手把手教你如何打邦邦! 2019-05-09 19:55  bigfun畢方 文丨BuG_Dream@bigfun社區爺爺,你預約的邦邦國服終於開測啦
  • Python學習步驟
    Python10大特點:易於學習:Python有相對較少的關鍵字,結構簡單,和一個明確定義的語法,學習起來更加簡單。易於閱讀:Python代碼定義的更清晰。可擴展:如果你需要一段運行很快的關鍵代碼,或者是想要編寫一些不願開放的算法,你可以使用C或C++完成那部分程序,然後從你的Python程序中調用。資料庫:Python提供所有主要的商業資料庫的接口。GUI編程:Python支持GUI可以創建和移植到許多系統調用。
  • 手把手教你用python搶票回家過年 !(附代碼)
    本文教大家用Python寫出搶火車票代碼以及實戰。首先看看如何快速查看剩餘火車票?當你想查詢一下火車票信息的時候,你還在上12306官網嗎?或是打開你手機裡的APP?下面讓我們來用Python寫一個命令行版的火車票查看器, 只要在命令行敲一行命令就能獲得你想要的火車票信息!如果你剛掌握了Python基礎,這將是個不錯的小練習。接口設計一個應用寫出來最終是要給人使用的,哪怕只是給你自己使用。所以,首先應該想想你希望怎麼使用它?
  • 手把手教你用Pycharm連接遠程Python環境
    本次咱們來操作一下如何在
  • 手把手教你用Python抓取AWS的日誌(CloudTrail)數據
    本文手把手,教你使用python進行AWS的CloudTrail配置,進行日誌抓取。進行數據分析,發現數據價值!  如今是雲的時代,許多公司都把自己的IT架構部署在基礎架構雲(IaaS)上。著名的IaaS提供商有亞馬遜,微軟(Azure),IBM等,國內也有諸如阿里雲等。其中,亞馬遜毫無疑問是該市場的領軍者。
  • 手把手教你在手機或平板上配置Python環境!
    本文旨在講解如何在Android平板或手機上搭建Python開發環境,幫助Python初學者有效利用碎片化時間進行學習,從而達到良好的學習效果。對於大部分初學Python的人來說,由於工作、生活等因素常常無法進行連貫、系統的學習。初學者為了利用上下班通勤等碎片化時間進行學習,通常會在平板上觀看學習視頻並做記錄。雖然這種方法很好,但效果還是不如邊學邊練來得好。
  • 獨家 | 手把手教你運用深度學習構建視頻人臉識別模型(Python實現)
    提示:如果你想要了解計算機視覺的複雜性, 下面這個深度學習的計算機視覺是很好的起步課程。你一定碰到過類似的例子,但並沒有意識到這些場景背後到底使用了什麼技術!例如,對於每一張上傳到平臺的圖像,Facebook都用自動生成的標籤建議替代手動給圖像加標籤。Facebook使用了一個簡單的人臉識別算法來分析圖像中人臉的像素,同時將它和相關用戶做比較。我們將學習如何創建一個人臉識別模型,但是在我們描述相關的技術細節之前,先來探討一些其它的應用案例。
  • 手把手教你——深度學習環境搭建
    但是,只要你打破思維上的自我設限,去學習,去實踐,還是能夠學到一些東西,並且跑一些demo和應用出來的。你要是懶得去扒資料、扒網站,也可以報一家靠譜的培訓機構系統(比如我們雷課),來進行系統的學習。好了,廣告打完了,接下來是大家最喜歡的乾貨環節1. 學習的提前準備(1)部分數學內容的複習,高中數學、概率、線性代數等部分內容。
  • 手把手教你如何禁用腳本調試
    手把手教你如何禁用腳本調試時間:2018-03-27 07:56   來源:三聯   責任編輯:沫朵 川北在線核心提示:原標題:電腦總彈出腳本調試器怎麼破? 手把手教你如何禁用腳本調試 有習慣使用IE瀏覽器的朋友們經常會遇到瀏覽網頁時總是彈出腳本調試器選擇窗口,如果不解決的話一直這樣就會非常的煩人。
  • 乾貨 | 學Python,請避開這些坑!
    原因:python語法是以冒號結尾,而不是分號或者忘記。該類問題也是老程式設計師常見的問題,java 等語言的結束需要; 而python是冒號解決方法:修改分號為冒號掃一下美女吧,加入對你負責的圈子提供清晰的多系統學習路徑、快速學習運用python的圈子,已有1700+ 加入圈主是世界500強高級軟體工程師,多年編碼經驗
  • 代碼跑得慢甩鍋Python?手把手教你如何給代碼提速30%
    Medium上一位小哥就詳細講了講如何讓python提速30%,以此證明代碼跑得慢不是python的問題,而是代碼本身的問題。時序分析在開始進行任何優化之前,我們首先需要找出代碼的哪些部分使整個程序變慢。
  • 用Python 做機器學習不得不收藏的重要庫
    他基於兩個python庫:Numpy 和 Scipy 。 他為常見的機器學習和數據挖掘提供了一組算法:聚類,回歸和分類。甚至像數據轉換,特徵選擇,集成學習這樣的任務也可與通過簡短幾行代碼實現。 對於機器學習的新手來說,Scikit-learn 是一個夠用的工具,直到你自己開始實現更複雜的算法。
  • 如何使用華為保密櫃? 手把手教你使用華為保密櫃功能
    如何使用華為保密櫃? 手把手教你使用華為保密櫃功能時間:2018-05-10 00:17   來源:皮皮網   責任編輯:沫朵 川北在線核心提示:原標題:如何使用華為保密櫃? 手把手教你使用華為保密櫃功能 華為保密櫃功能如何使用呢?
  • 學習python需要多長時間?你知道嗎?
    我認為學習Python的時間因人而異,取決於情況,因為,每個人的情況都不一樣,自然學習也有一定差異。Python學習這件事實際上很難做得更好,無論是自學還是參加培訓班,都需要一定的時間和精力,一方面,您需要自己努力學習,另一方面,您需要有一位優秀而可靠的老師教您如何掌握良好的學習方法。
  • 如何在EXCEL中將單元格分成兩部分 手把手教你如何拆分單元格
    如何在EXCEL中將單元格分成兩部分 手把手教你如何拆分單元格時間:2017-07-11 13:36   來源:三聯   責任編輯:沫朵 川北在線核心提示:原標題:如何在EXCEL中將單元格分成兩部分 手把手教你如何拆分單元格 excel單元格分成2部分,excel把單元格分成兩個的辦法: 1、以下面這個表格為例